Branch: refs/heads/webkitglib/2.38
  Home:   https://github.com/WebKit/WebKit
  Commit: 91f25cfd87a60b3a03d791f438680212cdf161e6
      
https://github.com/WebKit/WebKit/commit/91f25cfd87a60b3a03d791f438680212cdf161e6
  Author: Xabier Rodriguez-Calvar <[email protected]>
  Date:   2022-09-23 (Fri, 23 Sep 2022)

  Changed paths:
    M LayoutTests/TestExpectations
    A 
LayoutTests/media/encrypted-media/encrypted-media-append-encrypted-unencrypted-expected.txt
    A 
LayoutTests/media/encrypted-media/encrypted-media-append-encrypted-unencrypted.html
    M LayoutTests/media/encrypted-media/medias-enc.js
    M LayoutTests/media/media-source/media-source-loader-simple.js
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
    M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h

  Log Message:
  -----------
  Merge 254788@main - [GStreamer][MSE] Parser should be replaced when caps 
change in the append pipeline
https://bugs.webkit.org/show_bug.cgi?id=245518

Reviewed by Philippe Normand.

In the cases of some transitions, for example from unencrypted to encrypted 
content,
the demuxer creates a new pad that we try to link to the the existing track
but the parser won't link with those new caps so we need to replace it.
This patch ensures that, when unlinking and relinking, we have the right parser 
by
removing the old one and creating a new one for the given caps.

Test: media/encrypted-media/encrypted-media-append-encrypted-unencrypted.html.

For the test we are using the media-source-loader-simple but it was needed to 
enhance it
to be able to apply timestamp offsets and so to be able to wait until
all appends are done before checking the final result. In this case, it's the 
duration.

* LayoutTests/TestExpectations:
* 
LayoutTests/media/encrypted-media/encrypted-media-append-encrypted-unencrypted-expected.txt:
 Added.
* 
LayoutTests/media/encrypted-media/encrypted-media-append-encrypted-unencrypted.html:
 Added.
* LayoutTests/media/encrypted-media/medias-enc.js:
* LayoutTests/media/media-source/media-source-loader-simple.js:
(SourceBufferLoaderSimple):
(SourceBufferLoaderSimple.prototype.appendSegment):
(SourceBufferLoaderSimple.prototype.onupdateend):
(SourceBufferLoaderSimple.prototype.start):
(MediaSourceLoaderSimple.prototype.createSourceBuffer):
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::recycleTrackForPad):
(WebCore::AppendPipeline::Track::emplaceOptionalParserForFormat):
(WebCore::AppendPipeline::Track::initializeElements):
* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:

Canonical link: https://commits.webkit.org/254788@main

(cherry picked from commit 3ae8ab127a94eb5a0e874cc41f4d353cfcdbda22)


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to