google / google/ExoPlayer

Use ExoPlay to play a web video URL and open the camera at the same time, the player fails to play

Open
#10,526 0 comments 1 reaction 1 assignee Assigned to @microkatz View on GitHub
bug needs triage
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

### ExoPlayer Version

2.15.1

### Devices that reproduce the issue

Android9 SDK28 device

### Devices that do not reproduce the issue

Android9 SDK28 device

### Reproducible in the demo app?

No

### Reproduction steps

1、Open Camera
2、play video by exoplayer

### Expected result

Playback failed,
player code:
`
val mediaSourceFactory: MediaSourceFactory = DefaultMediaSourceFactory(context)
player = SimpleExoPlayer.Builder(context)
.setMediaSourceFactory(mediaSourceFactory)
.setUseLazyPreparation(false).build()

player.setMediaItem(MediaItem.fromUri(url))
player.repeatMode =Player.REPEAT_MODE_OFF // 播放循环模式
volume(SysVolumeManager.getStreamVolume())
viewPlayer.setKeepContentOnPlayerReset(true)
viewPlayer.player = player
viewPlayer.resizeMode = RESIZE_MODE_FIXED_WIDTH
player.playWhenReady = isPlay
player.prepare()
`
here is the log:
`
E/ACodec: [OMX.amlogic.avc.decoder.awesome] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648
I/AmAVUtils: AmAVUtils::isAudioExtendFormat input = video/avc
I/ACodec: codec does not support config priority (err -1010)
D/SurfaceUtils: disconnecting from surface 0x12479808, reason setNativeWindowSizeFormatAndUsage
D/SurfaceUtils: connecting to surface 0x12479808, reason setNativeWindowSizeFormatAndUsage
D/SurfaceUtils: set up nativeWindow 0x12479808 for 720x1278, color 0x11, rotation 0, usage 0x402b00
W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 9 failed: -1010
W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 8 failed: -1010
W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 7 failed: -1010
W/: buffer descriptor with invalid usage bits 0x2000
E/GraphicBufferAllocator: Failed to allocate (720 x 1278) layerCount 1 format 17 usage 402b00: 5
E/BufferQueueProducer: [SurfaceTexture-0-4236-17] dequeueBuffer: createGraphicBuffer failed
E/ACodec: dequeueBuffer failed: Out of memory (12)
E/ACodec: Failed to allocate buffers after transitioning to IDLE state (error 0xfffffff4)
E/ACodec: signalError(omxError 0x80001001, internalError -12)
E/MediaCodec: Codec reported err 0xfffffff4, actionCode 0, while in state 5
W/AHierarchicalStateMachine: Warning message AMessage(what = 'omxI') = {
int32_t type = 0
int32_t event = 0
int32_t data1 = 0
int32_t data2 = 1
} unhandled in root state.
D/SurfaceUtils: disconnecting from surface 0x12479808, reason disconnectFromSurface
W/MediaCodecRenderer: Failed to initialize decoder: OMX.amlogic.avc.decoder.awesome
android.media.MediaCodec$CodecException: start failed
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2068)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:57)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1121)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1027)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
E/MediaCodecVideoRenderer: Video codec error
com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.amlogic.avc.decoder.awesome, Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1034)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: android.media.MediaCodec$CodecException: start failed
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2068)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:57)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1121)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1027)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
E/ExoPlayerImplInternal: Playback error
com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:558)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.amlogic.avc.decoder.awesome, Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1034)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: android.media.MediaCodec$CodecException: start failed
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2068)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:57)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1121)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1027)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
D/Barbell-StreamLesson: ╔════════════════════════════════════════════════════════════════════════════════════════
D/Barbell-StreamLesson: ║ Thread: main
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ ListenerSet$$ExternalSyntheticLambda1.run (null:6)
D/Barbell-StreamLesson: ║ ListenerSet.lambda$queueEvent$0 (ListenerSet.java:170)
D/Barbell-StreamLesson: ║ ListenerSet$ListenerHolder.invoke (ListenerSet.java:261)
D/Barbell-StreamLesson: ║ ExoPlayerImpl$$ExternalSyntheticLambda24.invoke (null:4)
D/Barbell-StreamLesson: ║ ExoPlayerImpl.lambda$updatePlaybackInfo$12 (ExoPlayerImpl.java:1308)
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ 4001 : MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES
D/Barbell-StreamLesson: ╚════════════════════════════════════════════════════════════════════════════════════════
D/StreamLesson: 4001 : MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES
D/Barbell-StreamLesson: ╔════════════════════════════════════════════════════════════════════════════════════════
D/Barbell-StreamLesson: ║ Thread: main
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ ListenerSet$$ExternalSyntheticLambda1.run (null:6)
D/Barbell-StreamLesson: ║ ListenerSet.lambda$queueEvent$0 (ListenerSet.java:170)
D/Barbell-StreamLesson: ║ ListenerSet$ListenerHolder.invoke (ListenerSet.java:261)
D/Barbell-StreamLesson: ║ ExoPlayerImpl$$ExternalSyntheticLambda4.invoke (null:4)
D/Barbell-StreamLesson: ║ ExoPlayerImpl.lambda$updatePlaybackInfo$18 (ExoPlayerImpl.java:1349)
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ state = 1
D/Barbell-StreamLesson: ╚════════════════════════════════════════════════════════════════════════════════════════
D/StreamLesson: state = 1
`

### Actual result

Playback failed:4001 : MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES

### Media

any network video url

### Bug Report

- [ ] You will email the zip file produced by `adb bugreport` to dev.exoplayer@gmail.com after filing this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.