[Webkit-unassigned] [Bug 195855] New: [MSE][GStreamer] Fix handling of resolution changes in AppendPipeline

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Mar 16 13:01:59 PDT 2019


https://bugs.webkit.org/show_bug.cgi?id=195855

            Bug ID: 195855
           Summary: [MSE][GStreamer] Fix handling of resolution changes in
                    AppendPipeline
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKitGTK
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: aboya at igalia.com
                CC: bugs-noreply at webkitgtk.org

MediaSample instances produced by the AppendPipeline were not accounting for resolution changes. The causes of this are twofold:

1) m_presentationSize is set by connectDemuxerSrcPadToAppsink() (by calling parseDemuxerSrcPadCaps()), but not by appsinkCapsChanged().
2) appsinkCapsChanged() was being called in the main thread as an asynchronous task. In consequence, even if m_presentationSize is set there, many samples with the new resolution would still be wrapped in a MediaSampleGStreamer using the old resolution by the main thread running consumeAppsinkAvailableSamples() before appsinkCapsChanged() is dispatched.

This patch fixes these problems by updating m_presentationSize in appsinkCapsChanged() and making the streaming thread block until the main thread has dispatched appsinkCapsChanged(). This way the handling of caps changes is serialized with the handling of frames.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20190316/a2c147a8/attachment.html>


More information about the webkit-unassigned mailing list