[webkit-changes] [WebKit/WebKit] 6c1817: [GStreamer] Improvements regarding track configura...
Philippe Normand
noreply at github.com
Tue May 2 04:42:42 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6c181705f176c643952399c00565224aec8b1f14
https://github.com/WebKit/WebKit/commit/6c181705f176c643952399c00565224aec8b1f14
Author: Philippe Normand <philn at igalia.com>
Date: 2023-05-02 (Tue, 02 May 2023)
Changed paths:
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
M Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h
M Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h
Log Message:
-----------
[GStreamer] Improvements regarding track configuration updates
https://bugs.webkit.org/show_bug.cgi?id=256147
Reviewed by Xabier Rodriguez-Calvar.
When playbin2 is used for playback the pad associated to each track has raw caps, so the pbutils
caps->codec API is useless since it expects caps representing an encoded format. So we now monitor
the sink pad of each decoder in the player, waiting for the first caps event and we cache the
streamId and corresponding codec, that can be later on retrieved from each track in order to update
the configuration accordingly.
In practice this patch also makes the modern media controls video stats overlay actually useful. It
was nearly empty before this patch.
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
(WebCore::ensureDebugCategoryInitialized):
(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):
(WebCore::AudioTrackPrivateGStreamer::capsChanged):
(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromTags):
(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):
* Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::configureElement):
(WebCore::MediaPlayerPrivateGStreamer::setupCodecProbe):
(WebCore::MediaPlayerPrivateGStreamer::configureAudioDecoder):
(WebCore::MediaPlayerPrivateGStreamer::configureVideoDecoder):
(WebCore::MediaPlayerPrivateGStreamer::codecForStreamId):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::setPad):
(WebCore::TrackPrivateBaseGStreamer::objectForLogging const):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):
* Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::capsChanged):
* Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):
(WebCore::VideoTrackPrivateGStreamer::capsChanged):
(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromTags):
(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):
* Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
Canonical link: https://commits.webkit.org/263585@main
More information about the webkit-changes
mailing list