Bug 201322

Summary: [MSE][GStreamer] Gracefully fail on invalid non-first initialization segment
Product: WebKit Reporter: Alicia Boya García <aboya>
Component: WebKitGTKAssignee: Alicia Boya García <aboya>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, calvaris, commit-queue
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Alicia Boya García 2019-08-29 17:44:54 PDT
In normal operation of AppendPipeline, except during tear down,
qtdemux never removes a pad. Even if a new initialization segment is
appended, the pad is reused.

There is an exception though: when the new initialization segment has
an incompatible set of tracks. This is invalid under the MSE spec and
should produce an error, but in this case this was making an assertion
fail -- in particular by sending an EOS to the to-be-removed pad, which
AppendPipeline doesn't expect.

This patch changes the assertion with graceful error handling for that
error.

Fixes media/media-source/media-source-seek-detach-crash.html
Comment 1 Alicia Boya García 2019-08-29 17:46:26 PDT
Created attachment 377661 [details]
Patch
Comment 2 WebKit Commit Bot 2019-08-30 08:15:00 PDT
Comment on attachment 377661 [details]
Patch

Clearing flags on attachment: 377661

Committed r249325: <https://trac.webkit.org/changeset/249325>
Comment 3 WebKit Commit Bot 2019-08-30 08:15:01 PDT
All reviewed patches have been landed.  Closing bug.