Decoder Failed: c2.dolby.eac3.decoder
Version
Media3 main branch
More version details
This issue has been happening for over a year since I got my Pixel 8 Pro.
Devices that reproduce the issue
Pixel 8 Pro
Devices that do not reproduce the issue
Samsung Tab S8+
Reproducible in the demo app?
Yes
Reproduction steps
- Open video file that has a Dolby Digital Plus audio track
- Video doesn't play and error on screen displays: MediaCodecAudioRenderer error, index=2, format=Format(2, null, null, audio/eac3, null, -1, en, [-1, -1, -1.0, null], [6, 48000]), format_supported=YES
Expected result
Video plays Dolby Atmos files without workaround.
Here is the workaround found in the Just Player github:
- Open video with Dolby Digital Plus audio track
- Audio decoding error on screen
- Go to settings by long pressing the cog button
- Change Decoder priority from Prefer device decoders (default) to Prefer app decoders
- Exit settings
- Try to play video again and get the same audio decoding error
- Go back to settings by long pressing the cog button
- Change Decoder priority back to Prefer device decoders (default)
- Exit settings
- Play video again and video will play with audio and video
Actual result
The error shows: MediaCodecAudioRenderer error, index=2, format=Format(2, null, null, audio/eac3, null, -1, en, [-1, -1, -1.0, null], [6, 48000]), format_supported=YES
Then it shows "Decoder failed: c2.dolby.eac3.decoder"
Media
Using any recent pixel phones 6 - 8, I have seen this issue posted on Just Player github for the same issue and was told by the developer to report this issue here. Using any dolby digital plus video will reproduce this issue. Recently an update has fixed using a video file with TrueHD audio track.
Bug Report
- [ ] You will email the zip file produced by
adb bugreportto [email protected] after filing this issue.
The issue seems to be present on Google Pixel devices only, Pixel 8 and Pixel 9 in my case. On other devices such as Samsung galaxy a35, there aren't any issues. Playback fails when playing Dolby digital plus with Dolby Atmos (eac3 joc). Works fine when playing Dolby digital plus without Dolby Atmos
@imbotcode
Thank you for reporting your issue. Would you be able to send some sample Dolby Digital Plus content for us to test with? If you're unable to share test content publicly, please send them to [email protected] with the subject
Issue #2307. Please also update this issue to indicate you've done this.
@microkatz
Here are some samples:
-
Dolby Digital Plus without Atmos (this plays fine): https://mega.nz/file/eGpUEADR#iqOQcWbIMijoUzuZgdKK0H3jhQKnem2VUXfDSxmTNqo
-
Dolby Digital Plus with Atmos (this gives a playback error): https://drive.google.com/file/d/1_Gc0v7glw5hGJ6l37En5YKDPnPSLR6HM
You can find other file samples here: https://kodi.wiki/view/Samples More specifically in the section "HD/object-based Audio Test Clips"
Hey @seankim2398. We need more information to resolve this issue but there hasn't been an update in 14 weekdays. I'm marking the issue as stale and if there are no new updates in the next 7 days I will close it automatically.
If you have more information that will help us get to the bottom of this, just add a comment!
Since there haven't been any recent updates here, I am going to close this issue.
@seankim2398 if you're still experiencing this problem and want to continue the discussion just leave a comment here and we are happy to re-open this.
I still have this issue, the problem still exists, please reopen issue
Since there haven't been any recent updates here, I am going to close this issue.
@seankim2398 if you're still experiencing this problem and want to continue the discussion just leave a comment here and we are happy to re-open this.
Still requesting to reopen this issue, not resolved.
@imbotcode @seankim2398
Thank you for providing the content and for your patience!
So first off, Pixel devices do not currently support Atmos content.
However, the main issue is that you are trying to play Atmos content with the Dolby Digital Plus decoder, c2.dolby.eac3.decoder. Your provided mkv files for the Atmos content actually advertise the content as Dolby Digital Plus and not as Atmos content. See the Codec ID value.
From your mkv file:
| + Track
| + Track number: 2 (track ID for mkvmerge & mkvextract: 1)
| + Track UID: 5914639046878617325
| + Track type: audio
| + Codec ID: A_EAC3
| + Default duration: 00:00:00.032000000 (31.250 frames/fields per second for a video track)
| + Language (IETF BCP 47): en
| + Name: Dolby ATMOS
| + Audio track
| + Sampling frequency: 48000
| + Channels: 6
It is working as intended that the malformed content is causing the player to use the wrong decoder. The reason why it may work with the Samsung device is that its decoder may just be programmed to ignore the Atmos data.
To note: Currently, ExoPlayer only supports Dolby Atmos in adaptive streaming scenarios. With DASH the information is provided in supplemental in SupplementalProperty descriptors, https://ott.dolby.com/OnDelKits/DDP/Dolby_Digital_Plus_Online_Delivery_Kit_v1.5/Documentation/Content_Creation/SDM/help_files/topics/ddp_mpeg_dash_c_mpd_splprot.html. The MatroskaExtractor would need to be updated to support Atmos.
I'll leave the thread open for a little while in case you have any questions.
@imbotcode @seankim2398
As there have not been any additional questions based on the provided answer, I will close this thread. If you have any additional queries then please open up a new ticket.