When changing video tracks in Live + Dash + DRM Widevine + HEVC Media the first 2 seconds frame are pixled
See original GitHub issueI am playing live dash drm hevc media on the demo app with the following bitrates: 384000, 560000, 920000, 2200000, 4520000
when track selection is done manually I can see that the first frames are not fluent and pixels are shown
when I run this media on Android TV I do not see this issue on tracks selection but on mobile device it is happening.
when I perform track selection using the dialog for example to 920000 i can see in the logs the following: I am not sure whether it is the decoders of the hevc/ stream encoding/ drm or the player please advice.
Buffer can't be freed
2021-06-21 21:46:08.467 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: ]
2021-06-21 21:46:08.526 7370-7370/? D/io_stats: !@ 8,0 r 792441 33311320 w 833211 25950896 d 82212 109294680 f 251192 364721 iot 750080 583182 th 102400 102400 65496 pt 560 inp 0 0 159525.421
2021-06-21 21:46:08.576 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: downstreamFormat [eventTime=18.81, mediaPos=7189.84, window=0, period=0, id=3, mimeType=video/hevc, bitrate=920000, codecs=hev1.1.6.L93.B0, res=1024x576, fps=25.0]
2021-06-21 21:46:08.576 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: videoInputFormat [eventTime=18.81, mediaPos=7189.84, window=0, period=0, id=3, mimeType=video/hevc, bitrate=920000, codecs=hev1.1.6.L93.B0, res=1024x576, fps=25.0]
2021-06-21 21:46:09.151 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: videoSize [eventTime=19.38, mediaPos=7189.84, window=0, period=0, 1280, 720]
2021-06-21 21:46:09.152 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: renderedFirstFrame [eventTime=19.38, mediaPos=7189.84, window=0, period=0, Surface(name=null)/@0xea63667]
2021-06-21 21:46:09.152 7430-7430/? W/adbd: timeout expired while flushing socket, closing
2021-06-21 21:46:09.166 5508-4065/? I/EXYNOS_BASE_PORT: [0xe6745c00][Exynos_OMX_PortDisableProcess] Before disabling output port, do flush
2021-06-21 21:46:09.166 5508-3574/? E/EXYNOS_VIDEO_DECCONTROL: [0xe6745c00][Exynos_OMX_FreeBuffer] Buffer can't be freed because this(0xe67b3820) is already in component
2021-06-21 21:46:09.166 5508-3574/? E/EXYNOS_VIDEO_DECCONTROL: [0xe6745c00][Exynos_OMX_FreeBuffer] output port : invalid state : comp state(0x3), port state(0x2), enabled(0x1)
2021-06-21 21:46:09.166 5508-4073/? W/libexynosv4l2: failed to ioctl: VIDIOC_DQBUF (22 - Invalid argument)
2021-06-21 21:46:09.167 5508-4065/? I/EXYNOS_BASE_PORT: [0xe6745c00][Exynos_OMX_PortDisableProcess] Disable output Port
2021-06-21 21:46:09.167 3911-4063/com.google.android.exoplayer2.demo I/ACodec: [OMX.Exynos.hevc.dec] Now handling output port settings change
2021-06-21 21:46:09.463 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: timeline [eventTime=19.70, mediaPos=7183.84, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2021-06-21 21:46:09.463 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: period [?]
2021-06-21 21:46:09.463 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: window [7200.00, seekable=true, dynamic=true]
2021-06-21 21:46:09.464 3911-3911/com.google.android.exoplayer2.demo D/EventLogger: ]
- ExoPlayer version number - 2.14.1
- Android version - android 10
- Android device - galaxy s10e
on pixel 3 android 12 i get this log but there the playback is totally broken:
1-06-21 19:26:49.372 1112-20752/? E/QC2Comp: [hevcD_20] Codec returned output for non-existant input-index(12)!
2021-06-21 19:26:49.819 1112-20752/? E/QC2Comp: [hevcD_20] Codec returned output for non-existant input-index(16)!
2021-06-21 19:26:49.901 1112-20752/? E/QC2Comp: [hevcD_20] Codec returned output for non-existant input-index(20)!
2021-06-21 19:26:49.984 1112-20752/? E/QC2Comp: [hevcD_20] Codec returned output for non-existant input-index(22)!
2021-06-21 19:26:50.066 1112-20752/? E/QC2Comp: [hevcD_20] Codec returned output for non-existant input-index(24)!
I am Sending the configuration I was using in the Demo app to the dev mail.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:33 (14 by maintainers)
Top Results From Across the Web
Unable to play dash with widevine drm · Issue #260 - GitHub
Explain in detail the exact steps necessary to reproduce the issue. <video-js id="my_video_1" class="vjs-default-skin" controls preload="auto" ...
Read more >Live DRM - Video Cloud Studio Documentation
Your Live account must be enabled first by Brightcove Support in order to ... [1-1] Widevine can be applied to DASH outputs instead...
Read more >What is Google Widevine DRM? How Does Widevine Work?
Widevine is a popular DRM solution and has support for the Android operating system, several SmartTVs, browsers, etc. It also supports MPEG-DASH ......
Read more >Google Widevine DRM: Simple Guide to Security & Integration
Widevine DRM for video streaming to protect piracy. Hollywood grade video DRM license for content. Chrome, Firefox, Android support.
Read more >DASH and HLS DRM support - Radiant Media Player
The below article explains how to use DASH & HLS with Widevine/PlayReady/Clear Key DRM. Documentation for Apple FairPlay Streaming can be found here....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@icbaker @ojw28
I have investigated this issue some more I can tell that this issue behaviour was not there on v2.9.6 and first observed on v2.10.0
I think this information is a good starting point for understanding the root cause.
this behavior is in production and we would be happy if this can be prioritized by the team
10x
Gilad.
@icbaker
Regarding the c2.android.* decoder.
Could you tell why this is happening there and how to workaround this without hacking the code? should we open issue for Android Platform?
If I apply the below code then I have the playback working (though audio is not playing the c2.android audio decoder seems not to be working on my Pixel1/android 10 and there is only one decoder coming from MediaCodecUtil for “audio/mp4a-latm” on this device