question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

NVIDIA SHIELD Decoder init failed: OMX.Nvidia.h264.decode after moving a player to another view

See original GitHub issue

Issue description

After moving a player to a different view using playerView.setPlayer(player); and stopping the app (pressing home) After resume when trying to reuse the original playerView get a error Decoder init failed: OMX.Nvidia.h264.decode

Reproduction steps

  1. Load a player to a playerView_1, move the player playerView_2 (that before this had no player on it) using playerView_2.setPlayer(player); then call playerView_1.setPlayer(null);
  2. Press home key to stop the app, open the app again to resume playerView_2 resumes the video that was playing
  3. Try to load a player on the playerView_1 get the error
  4. One more try to load a player to that playerView_1 all fine, so after one error things get cleanup some how

If after I do step 1. I do the bellow I don’t get the error all works fine

playerView_1_Holder.removeView(playerView_1);
playerView_1_Holder.addView(playerView_1);

Oddly on the Android Studio emulator running Android 10 TV, If I do the steps I don’t get the error, but I can’t see the SurfaceView of playerView_1 after resume on step 3, the video loads but the surface is invisible, unless I do the removeView/addView.

Seems that something is be held to the view somehow after the change…

Link to test content

https://github.com/fgl27/SmartTwitchTV/raw/master/release/githubio/temp/shield_test_clip.mp4

A full bug report captured from the device

bugreport-darcy-PPR1.180610.011-2020-10-05-04-52-37.zip

On the above we have the bellow error when the issue happens

10-05 04:52:17.249  7240  7549 I OMXClient: IOmx service obtained
10-05 04:52:17.250  3456  3456 I OMXMaster: makeComponentInstance(OMX.Nvidia.h264.decode) in omx@1.0-service process
10-05 04:52:17.266  7240  7548 D SurfaceUtils: connecting to surface 0x308f3df010, reason connectToSurface
10-05 04:52:17.266  3368  3788 E BufferQueueProducer: [SurfaceView - com.fgl27.twitch.debug/com.fgl27.twitch.PlayerActivity#1] connect: BufferQueue has been abandoned
10-05 04:52:17.266  7240  7548 E SurfaceUtils: Failed to connect to surface 0x308f3df010, err -19
10-05 04:52:17.266  7240  7548 E MediaCodec: nativeWindowConnect returned an error: No such device (-19)
10-05 04:52:17.267  7240  7540 E MediaCodec: configure failed with err 0xffffffed, resetting...
10-05 04:52:17.273  7240  7549 I OMXClient: IOmx service obtained
10-05 04:52:17.274  3456  3950 I OMXMaster: makeComponentInstance(OMX.Nvidia.h264.decode) in omx@1.0-service process
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer: Failed to initialize decoder: OMX.Nvidia.h264.decode
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:   android.media.MediaCodec$CodecException: Error 0xffffffed
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at android.media.MediaCodec.native_configure(Native Method)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at android.media.MediaCodec.configure(MediaCodec.java:2199)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at android.media.MediaCodec.configure(MediaCodec.java:2089)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.configure(SynchronousMediaCodecAdapter.java:43)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.configureCodec(MediaCodecVideoRenderer.java:580)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1082)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:987)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1409)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:640)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readToFlagsOnlyBuffer(MediaCodecRenderer.java:941)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:791)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:923)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:469)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at android.os.Handler.dispatchMessage(Handler.java:102)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at android.os.Looper.loop(Looper.java:193)
10-05 04:52:17.282  7240  7540 W MediaCodecRenderer:       at android.os.HandlerThread.run(HandlerThread.java:65)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal: Playback error
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:   com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(0, null, null, video/avc, avc1.64002A, 6697561, null, [1920, 1080, 60.0], [-1, -1]), format_supported=YES
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:547)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at android.os.Handler.dispatchMessage(Handler.java:102)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at android.os.Looper.loop(Looper.java:193)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at android.os.HandlerThread.run(HandlerThread.java:65)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:   Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.Nvidia.h264.decode, Format(0, null, null, video/avc, avc1.64002A, 6697561, null, [1920, 1080, 60.0], [-1, -1])
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:994)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1409)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:640)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readToFlagsOnlyBuffer(MediaCodecRenderer.java:941)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:791)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:923)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:469)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       ... 3 more
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:   Caused by: android.media.MediaCodec$CodecException: Error 0xffffffed
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at android.media.MediaCodec.native_configure(Native Method)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at android.media.MediaCodec.configure(MediaCodec.java:2199)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at android.media.MediaCodec.configure(MediaCodec.java:2089)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.configure(SynchronousMediaCodecAdapter.java:43)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.configureCodec(MediaCodecVideoRenderer.java:580)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1082)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:987)
10-05 04:52:17.289  7240  7540 E ExoPlayerImplInternal:       ... 10 more
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: onPlayerError pos 4 isBehindLiveWindow false e 
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(0, null, null, video/avc, avc1.64002A, 6697561, null, [1920, 1080, 60.0], [-1, -1]), format_supported=YES
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:547)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at android.os.Handler.dispatchMessage(Handler.java:102)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at android.os.Looper.loop(Looper.java:193)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at android.os.HandlerThread.run(HandlerThread.java:65)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.Nvidia.h264.decode, Format(0, null, null, video/avc, avc1.64002A, 6697561, null, [1920, 1080, 60.0], [-1, -1])
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:994)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1409)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:640)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readToFlagsOnlyBuffer(MediaCodecRenderer.java:941)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:791)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:923)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:469)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	... 3 more
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: Caused by: android.media.MediaCodec$CodecException: Error 0xffffffed
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at android.media.MediaCodec.native_configure(Native Method)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at android.media.MediaCodec.configure(MediaCodec.java:2199)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at android.media.MediaCodec.configure(MediaCodec.java:2089)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.configure(SynchronousMediaCodecAdapter.java:43)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.configureCodec(MediaCodecVideoRenderer.java:580)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1082)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:987)
10-05 04:52:17.295  7240  7240 W STTV_PlayerActivity: 	... 10 more

Version of ExoPlayer being used

dev-v2

Device(s) and version(s) of Android being used

NVIDIA SHIELD 2017, darcy Android 9

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:9 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
andrewlewiscommented, Feb 15, 2021

Had a look at the green flickering issue too. I can repro that and just need to file a bug with Nvidia, then I will update #7998.

1reaction
andrewlewiscommented, Feb 14, 2021

I wasn’t able to reproduce this issue on NVIDIA/darcy/darcy:9/PPR1.180610.011/4079199_2513.0256:userdebug/release-keys. I did the following:

  • Added a linear layout and put another StyledPlayerView alongside the first one, and added a button that triggers a call to switchTargetView toggling between the two views.
  • Removed calls to initialize/release the player in activity lifecycle methods (except when started for the first time).
  • Opened the first video in the demo app, switched target view, pressed home to background, double-pressed home to open recent apps then resumed the app and pressed the button to switch target view again. Everything was working as expected.

Please try the same and see if it’s reproducible for you still. It seems likely that the problem is related to the lifecycle of different surfaces. I think that BufferQueue has been abandoned means the decoder is outputting to a Surface belonging to a SurfaceView that has been destroyed. To debug on your side you could adding some logging for when the MediaCodecVideoRenderer’s surface changes and when the SurfaceHolder callbacks in SimpleExoPlayer are called.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Nvidia Shield - OMX.Nvidia.h264.decode error
Try going into the app settings and see if there's a way to switch from software decoding to hardware decoding.
Read more >
NBA app error on Nvidia Shield Pro : r/ShieldAndroidTV - Reddit
I'm using the NBA app, Version 4.0.58. I'm using a Nvidia Shield Pro, Version 9.0.1 (33.1.0.283). When watching a game on League Pass, ......
Read more >
How To Fix Most Nvidia Shield TV Issues in Just 3 Steps
Nvidia Shield Purchase Link: https://amzn.to/2PAKN82Get Great Deals at Amazon: https://amzn.to/2DAC8heHow to Fix Nvidia Shield Remote: ...
Read more >
[ROM] [OFFICIAL] LineageOS for the Shield Tablet | Page 10
When I start (the lockscreen is correctly displayed) and unlock the screen, its going black (just the "symbols" in top/bottom bar. i can...
Read more >
Decoder init failed: OMX.qcom.video.decoder.avc
Are you releasing and reinitializing the player each time you move from one video to the other? If not try to do so....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found