Changeset 248521 in webkit


Ignore:
Timestamp:
Aug 11, 2019 9:21:25 AM (5 years ago)
Author:
aboya@igalia.com
Message:

[MSE][GStreamer] Don't use vorbisparse
https://bugs.webkit.org/show_bug.cgi?id=200622

Reviewed by Philippe Normand.

Source/WebCore:

This patch has been splitted from the original WebKitMediaSrc rework
patch (https://bugs.webkit.org/show_bug.cgi?id=199719).

Unlike other parsers, vorbisparse has latency (in the sense that when
it gets a chain call with a series of complete frames, it may not emit
the parsed frames until another chain in the future), which makes it
inappropriate for AppendPipeline, as there is no good way I know to
flush it.

But actually vorbisparse is not known to be necessary and it was only
introduced for consistency with other formats. Parsers are used in
AppendPipeline to reconstruct information that is lost due to poor
muxes. There have been no reported cases of this being a problem with
Vorbis in WebM, so I'm just removing the parser.

Fixes imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::createOptionalParserForFormat):

LayoutTests:

  • platform/gtk/TestExpectations:
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r248514 r248521  
     12019-08-11  Alicia Boya García  <aboya@igalia.com>
     2
     3        [MSE][GStreamer] Don't use vorbisparse
     4        https://bugs.webkit.org/show_bug.cgi?id=200622
     5
     6        Reviewed by Philippe Normand.
     7
     8        * platform/gtk/TestExpectations:
     9
    1102019-08-10  Simon Fraser  <simon.fraser@apple.com>
    211
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r248479 r248521  
    229229webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-changetype.html [ Failure Crash ]
    230230webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html [ Failure ]
    231 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html [ Failure ]
    232231webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html [ Failure Pass ]
    233232# Crash is webkit.org/b/176020
  • trunk/Source/WebCore/ChangeLog

    r248517 r248521  
     12019-08-11  Alicia Boya García  <aboya@igalia.com>
     2
     3        [MSE][GStreamer] Don't use vorbisparse
     4        https://bugs.webkit.org/show_bug.cgi?id=200622
     5
     6        Reviewed by Philippe Normand.
     7
     8        This patch has been splitted from the original WebKitMediaSrc rework
     9        patch (https://bugs.webkit.org/show_bug.cgi?id=199719).
     10
     11        Unlike other parsers, vorbisparse has latency (in the sense that when
     12        it gets a chain call with a series of complete frames, it may not emit
     13        the parsed frames until another chain in the future), which makes it
     14        inappropriate for AppendPipeline, as there is no good way I know to
     15        flush it.
     16
     17        But actually vorbisparse is not known to be necessary and it was only
     18        introduced for consistency with other formats. Parsers are used in
     19        AppendPipeline to reconstruct information that is lost due to poor
     20        muxes. There have been no reported cases of this being a problem with
     21        Vorbis in WebM, so I'm just removing the parser.
     22
     23        Fixes imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html
     24
     25        * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
     26        (WebCore::createOptionalParserForFormat):
     27
    1282019-08-11  Antti Koivisto  <antti@apple.com>
    229
  • trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp

    r246490 r248521  
    646646        return GRefPtr<GstElement>(opusparse);
    647647    }
    648     if (!g_strcmp0(mediaType, "audio/x-vorbis")) {
    649         GstElement* vorbisparse = gst_element_factory_make("vorbisparse", parserName.get());
    650         ASSERT(vorbisparse);
    651         g_return_val_if_fail(vorbisparse, nullptr);
    652         return GRefPtr<GstElement>(vorbisparse);
    653     }
    654648    if (!g_strcmp0(mediaType, "video/x-h264")) {
    655649        GstElement* h264parse = gst_element_factory_make("h264parse", parserName.get());
Note: See TracChangeset for help on using the changeset viewer.