Changeset 249477 in webkit


Ignore:
Timestamp:
Sep 4, 2019 2:04:50 AM (5 years ago)
Author:
Philippe Normand
Message:

[GStreamer] Sound is down-pitched when playing video from YLE Areena
https://bugs.webkit.org/show_bug.cgi?id=201399

Reviewed by Xabier Rodriguez-Calvar.

If the FDK-AAC decoder is available, promote it and downrank the
libav AAC decoders, due to their broken LC support, as reported in:
https://ffmpeg.org/pipermail/ffmpeg-devel/2019-July/247063.html

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r249474 r249477  
     12019-09-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        [GStreamer] Sound is down-pitched when playing video from YLE Areena
     4        https://bugs.webkit.org/show_bug.cgi?id=201399
     5
     6        Reviewed by Xabier Rodriguez-Calvar.
     7
     8        If the FDK-AAC decoder is available, promote it and downrank the
     9        libav AAC decoders, due to their broken LC support, as reported in:
     10        https://ffmpeg.org/pipermail/ffmpeg-devel/2019-July/247063.html
     11
     12        * platform/graphics/gstreamer/GStreamerCommon.cpp:
     13        (WebCore::initializeGStreamer):
     14
    1152019-09-04  Pablo Saavedra  <psaavedra@igalia.com>
    216
  • trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp

    r246677 r249477  
    254254            gst_mpegts_initialize();
    255255#endif
     256
     257        // If the FDK-AAC decoder is available, promote it and downrank the
     258        // libav AAC decoders, due to their broken LC support, as reported in:
     259        // https://ffmpeg.org/pipermail/ffmpeg-devel/2019-July/247063.html
     260        GRefPtr<GstElement> aacDecoder = adoptGRef(gst_element_factory_make("fdkaacdec", nullptr));
     261        if (aacDecoder) {
     262            GstElementFactory* factory = gst_element_get_factory(aacDecoder.get());
     263            gst_plugin_feature_set_rank(GST_PLUGIN_FEATURE_CAST(factory), GST_RANK_PRIMARY);
     264
     265            const char* const elementNames[] = {"avdec_aac", "avdec_aac_fixed", "avdec_aac_latm"};
     266            for (unsigned i = 0; i < G_N_ELEMENTS(elementNames); i++) {
     267                GRefPtr<GstElement> avAACDecoder = adoptGRef(gst_element_factory_make(elementNames[i], nullptr));
     268                if (avAACDecoder)
     269                    gst_plugin_feature_set_rank(GST_PLUGIN_FEATURE_CAST(gst_element_get_factory(avAACDecoder.get())), GST_RANK_MARGINAL);
     270            }
     271        }
     272
    256273#endif
    257274    });
Note: See TracChangeset for help on using the changeset viewer.