Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[StreamController] Video Element Error: MEDIA_ERR_DECODE (PIPELINE_ERROR_DECODE on Android #3728

Closed
5 tasks done
JeanCarlosChavarriaHughes opened this issue Aug 6, 2021 · 10 comments
Labels
Milestone

Comments

@JeanCarlosChavarriaHughes
Copy link

JeanCarlosChavarriaHughes commented Aug 6, 2021

Environment
Steps to reproduce
  1. Open https://reference.dashif.org/dash.js/v4.0.1/samples/dash-if-reference-player/index.html
  2. Enter the MPD https://dash.akamaized.net/dash264/TestCases/2c/qualcomm/1/MultiResMPEG2.mpd
  3. Tap LOAD button.
  4. Wait about 1:45 min of playback (the bug is consistently reproduced)
Observed behavior

Playback fails with the following error:

[143324][StreamController] Video Element Error: MEDIA_ERR_DECODE (PIPELINE_ERROR_DECODE: {"causes":[],"data":{},"stack":[{"file":"../../media/gpu/android/media_codec_video_decoder.cc","line":1132}],"status_code":271,"status_message":""})
Console output

Link to Complete Errors

Expected behavior

Playback continues until the end, as in Desktop Browsers tested (Chrome, Safari, Opera, Firefox, Microsoft Edge, Brave ).

@JeanCarlosChavarriaHughes
Copy link
Author

Please evaluate if this is the same as in #3664

@dsilhavy
Copy link
Collaborator

Can you please add the logs for loglevel set to 5. You can enable it in the reference client by setting to "Debug" instead of "Info"

@JeanCarlosChavarriaHughes
Copy link
Author

Hello @dsilhavy
Please find the logs with loglevel set to Debug in this file

Finally it fails with this error:

Debug.js:169 [198127][StreamController] Video Element Error: MEDIA_ERR_DECODE (PIPELINE_ERROR_DECODE: {"causes":[],"data":{},"stack":[{"file":"../../media/gpu/android/media_codec_video_decoder.cc","line":1132}],"status_code":271,"status_message":""}) 
doLog @ Debug.js:169
fatal @ Debug.js:124
onPlaybackError @ StreamController.js:1255
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
onPlaybackError @ PlaybackController.js:589
error (async)
addEventListener @ VideoModel.js:311
addAllListeners @ PlaybackController.js:938
_initializeForFirstStream @ PlaybackController.js:94
initialize @ PlaybackController.js:83
_switchStream @ StreamController.js:396
_initializeForFirstStream @ StreamController.js:356
(anonymous) @ StreamController.js:260
Promise.then (async)
_composeStreams @ StreamController.js:258
_onTimeSyncCompleted @ StreamController.js:213
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
attemptSync @ TimeSyncController.js:159
(anonymous) @ StreamController.js:1174
Promise.then (async)
_onManifestUpdated @ StreamController.js:1172
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
update @ ManifestUpdater.js:222
onManifestLoaded @ ManifestUpdater.js:243
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
onXlinkReady @ ManifestLoader.js:90
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
onXlinkAllElementsLoaded @ XlinkController.js:193
resolve @ XlinkController.js:128
onXlinkAllElementsLoaded @ XlinkController.js:189
resolve @ XlinkController.js:128
resolveManifestOnLoad @ XlinkController.js:103
success @ ManifestLoader.js:200
onload @ HTTPLoader.js:225
load (async)
load @ XHRLoader.js:82
internalLoad @ HTTPLoader.js:303
load @ HTTPLoader.js:349
load @ URLLoader.js:68
load @ ManifestLoader.js:114
load @ StreamController.js:1300
_initializePlayback @ MediaPlayer.js:2196
attachSource @ MediaPlayer.js:1751
$scope.doLoad @ main.js:856
fn @ VM23:4
b @ angular.min.js:126
e @ angular.min.js:276
$eval @ angular.min.js:145
$apply @ angular.min.js:146
(anonymous) @ angular.min.js:276
dispatch @ jquery-3.1.1.min.js:3
q.handle @ jquery-3.1.1.min.js:3
Debug.js:169 [198128][StreamController] [object MediaError] 
doLog @ Debug.js:169
fatal @ Debug.js:124
onPlaybackError @ StreamController.js:1257
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
onPlaybackError @ PlaybackController.js:589
error (async)
addEventListener @ VideoModel.js:311
addAllListeners @ PlaybackController.js:938
_initializeForFirstStream @ PlaybackController.js:94
initialize @ PlaybackController.js:83
_switchStream @ StreamController.js:396
_initializeForFirstStream @ StreamController.js:356
(anonymous) @ StreamController.js:260
Promise.then (async)
_composeStreams @ StreamController.js:258
_onTimeSyncCompleted @ StreamController.js:213
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
attemptSync @ TimeSyncController.js:159
(anonymous) @ StreamController.js:1174
Promise.then (async)
_onManifestUpdated @ StreamController.js:1172
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
update @ ManifestUpdater.js:222
onManifestLoaded @ ManifestUpdater.js:243
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
onXlinkReady @ ManifestLoader.js:90
(anonymous) @ EventBus.js:124
trigger @ EventBus.js:124
onXlinkAllElementsLoaded @ XlinkController.js:193
resolve @ XlinkController.js:128
onXlinkAllElementsLoaded @ XlinkController.js:189
resolve @ XlinkController.js:128
resolveManifestOnLoad @ XlinkController.js:103
success @ ManifestLoader.js:200
onload @ HTTPLoader.js:225
load (async)
load @ XHRLoader.js:82
internalLoad @ HTTPLoader.js:303
load @ HTTPLoader.js:349
load @ URLLoader.js:68
load @ ManifestLoader.js:114
load @ StreamController.js:1300
_initializePlayback @ MediaPlayer.js:2196
attachSource @ MediaPlayer.js:1751
$scope.doLoad @ main.js:856
fn @ VM23:4
b @ angular.min.js:126
e @ angular.min.js:276
$eval @ angular.min.js:145
$apply @ angular.min.js:146
(anonymous) @ angular.min.js:276
dispatch @ jquery-3.1.1.min.js:3
q.handle @ jquery-3.1.1.min.js:3
main.js:346 {error: DashJSError, type: "error"}
Debug.js:169 [198150][FragmentModel][video] abort requests 
Debug.js:169 [198152][FragmentModel][audio] abort requests 

@dsilhavy
Copy link
Collaborator

@JeanCarlosChavarriaHughes We have merged a new feature today that should enable the player to recover from media decode errors. The corresponding PR can be found here: #3743 Can you give the nightly version of dash.js a try? https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html I would be interested if the player recovers from the error you described.

@JeanCarlosChavarriaHughes
Copy link
Author

Thanks @dsilhavy . I'll test it on Monday EOD.

@JeanCarlosChavarriaHughes
Copy link
Author

@dsilhavy can you provide the correct reference.dashif.org that points to the ?
https://reference.dashif.org/dash.js/<nighly-version>/samples/dash-if-reference-player/index.html

@wilaw
Copy link
Member

wilaw commented Aug 30, 2021

All the versions, including nightly, are available here: https://reference.dashif.org/dash.js/index.html

The nightly version is accessible at https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html

@JeanCarlosChavarriaHughes
Copy link
Author

Hi @dsilhavy @wilaw
The issue seems fixed in nightly version. I executed a confirmation test and it worked in the same device without issues.
Full Logs

Any idea about which version it will become published. 4.0.2 ?

@dsilhavy
Copy link
Collaborator

dsilhavy commented Sep 2, 2021

Thanks for testing I can see in the logs that the failover mechanism we implemented worked:

[207946][StreamController] A MEDIA_ERR_DECODE occured: Resetting the MediaSource 
[207956][StreamController] MediaSource has been resetted. Resuming playback from time 107.540841

What I don't understand is how the stream plays without errors in v3.2.2. I would assume that a segment of a certain representation is broken and it depends on the quality that is played whether the error occurs or not.

We are aiming to release dash.js 4.1.0 end of September. We will do the code freeze between 17th and 24th of September and then have a one week testing period.

@dsilhavy dsilhavy added this to the 4.1.0 milestone Sep 2, 2021
@dsilhavy
Copy link
Collaborator

dsilhavy commented Sep 8, 2021

Closing this as #3743 fixes the issue

@dsilhavy dsilhavy closed this as completed Sep 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants