Skip to content

fix: Reset media source before switching variant on MSE append failure#10336

Draft
avelad wants to merge 1 commit into
shaka-project:mainfrom
avelad:safe-reset
Draft

fix: Reset media source before switching variant on MSE append failure#10336
avelad wants to merge 1 commit into
shaka-project:mainfrom
avelad:safe-reset

Conversation

@avelad

@avelad avelad commented Jul 10, 2026

Copy link
Copy Markdown
Member

On MEDIA_SOURCE_OPERATION_FAILED/THREW, StreamingEngine was disabling the stream and switching variants before Player.onError_ got a chance to reset the MediaSource, so the next segment was appended into the same SourceBuffer that had just failed. On some platforms (e.g. embedded WebKit) this triggers an asynchronous native crash.

handleStreamingError_ now resets the MediaSource before switching variants, and Player.onError_ skips its own reset if the error was already handled, avoiding a double reset.

Fixes #10331

…pend failure

On MEDIA_SOURCE_OPERATION_FAILED/THREW, StreamingEngine was disabling
the stream and switching variants before Player.onError_ got a chance
to reset the MediaSource, so the next segment was appended into the
same SourceBuffer that had just failed. On some platforms (e.g.
embedded WebKit) this triggers an asynchronous native crash.

handleStreamingError_ now resets the MediaSource before switching
variants, and Player.onError_ skips its own reset if the error was
already handled, avoiding a double reset.

Fixes shaka-project#10331
@avelad
avelad marked this pull request as draft July 10, 2026 09:48
@avelad avelad changed the title fix(Streaming): Reset media source before switching variant on MSE append failure fix: Reset media source before switching variant on MSE append failure Jul 10, 2026
@avelad avelad added type: bug Something isn't working correctly priority: P2 Smaller impact or easy workaround labels Jul 10, 2026
@avelad avelad added this to the v5.3 milestone Jul 10, 2026
@shaka-bot

Copy link
Copy Markdown
Collaborator

Bundle Size Report for PR #10336

File HEAD Base Diff
controls.css 38.4 KiB (6.7 KiB) 38.4 KiB (6.7 KiB) 0.0 KiB
controls.modern.css 30.5 KiB (6.1 KiB) 30.5 KiB (6.1 KiB) 0.0 KiB
demo.compiled.debug.js 266.9 KiB (54.1 KiB) 266.9 KiB (54.1 KiB) 0.0 KiB
demo.compiled.js 266.9 KiB (54.1 KiB) 266.9 KiB (54.1 KiB) 0.0 KiB
demo.css 160.4 KiB (25.7 KiB) 160.4 KiB (25.7 KiB) 0.0 KiB
demo.modern.css 144.2 KiB (24.7 KiB) 144.2 KiB (24.7 KiB) 0.0 KiB
locales.js 44.5 KiB (11.0 KiB) 44.5 KiB (11.0 KiB) 0.0 KiB
receiver.compiled.debug.js 151.5 KiB (24.5 KiB) 151.5 KiB (24.5 KiB) 0.0 KiB
receiver.compiled.js 151.5 KiB (24.5 KiB) 151.5 KiB (24.5 KiB) 0.0 KiB
shaka-player.compiled-es2021.debug.js 1320.7 KiB (327.9 KiB) 1320.5 KiB (327.9 KiB) +0.2 KiB
shaka-player.compiled-es2021.js 694.3 KiB (234.0 KiB) 694.3 KiB (234.0 KiB) +0.1 KiB
shaka-player.compiled.debug.js 1608.4 KiB (371.3 KiB) 1608.1 KiB (371.2 KiB) +0.3 KiB
shaka-player.compiled.js 804.3 KiB (264.4 KiB) 804.1 KiB (264.4 KiB) +0.1 KiB
shaka-player.dash-es2021.debug.js 985.7 KiB (249.5 KiB) 985.5 KiB (249.5 KiB) +0.2 KiB
shaka-player.dash-es2021.js 489.4 KiB (168.1 KiB) 489.3 KiB (168.1 KiB) +0.1 KiB
shaka-player.dash.debug.js 1198.0 KiB (281.7 KiB) 1197.7 KiB (281.6 KiB) +0.3 KiB
shaka-player.dash.js 569.5 KiB (189.9 KiB) 569.4 KiB (189.9 KiB) +0.1 KiB
shaka-player.experimental-es2021.debug.js 1714.2 KiB (416.0 KiB) 1713.9 KiB (416.0 KiB) +0.2 KiB
shaka-player.experimental-es2021.js 950.2 KiB (306.3 KiB) 950.1 KiB (306.3 KiB) +0.1 KiB
shaka-player.experimental.debug.js 2070.0 KiB (469.1 KiB) 2069.7 KiB (469.1 KiB) +0.3 KiB
shaka-player.experimental.js 1084.2 KiB (342.8 KiB) 1084.1 KiB (342.8 KiB) +0.1 KiB
shaka-player.hls-es2021.debug.js 1008.2 KiB (253.3 KiB) 1008.0 KiB (253.3 KiB) +0.2 KiB
shaka-player.hls-es2021.js 517.3 KiB (177.0 KiB) 517.2 KiB (177.0 KiB) +0.1 KiB
shaka-player.hls.debug.js 1224.4 KiB (286.1 KiB) 1224.1 KiB (286.0 KiB) +0.3 KiB
shaka-player.hls.js 600.1 KiB (200.3 KiB) 600.0 KiB (200.2 KiB) +0.1 KiB
shaka-player.transmuxer-worker.debug.js 191.6 KiB (46.9 KiB) 191.6 KiB (46.9 KiB) -0.0 KiB
shaka-player.transmuxer-worker.js 83.5 KiB (28.5 KiB) 83.5 KiB (28.5 KiB) 0.0 KiB
shaka-player.ui-es2021.debug.js 1631.9 KiB (398.6 KiB) 1631.7 KiB (398.6 KiB) +0.2 KiB
shaka-player.ui-es2021.js 910.0 KiB (294.5 KiB) 909.9 KiB (294.5 KiB) +0.1 KiB
shaka-player.ui.debug.js 1957.7 KiB (447.7 KiB) 1957.4 KiB (447.6 KiB) +0.3 KiB
shaka-player.ui.js 1032.4 KiB (328.6 KiB) 1032.2 KiB (328.6 KiB) +0.1 KiB

@shaka-bot

Copy link
Copy Markdown
Collaborator

Incremental code coverage: 100.00%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: P2 Smaller impact or easy workaround type: bug Something isn't working correctly

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Xfinity app crash (APPS-04036) triggered by some 3014 errors

2 participants