[Webkit-unassigned] [Bug 245876] [GStreamer] FLAC Audio Format Support

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 3 07:18:19 PDT 2022


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

--- Comment #27 from Philippe Normand <philn at igalia.com> ---
Trace looks a bit odd though:

Thread 1 (Thread 0x7ffb292bea80 (LWP 2)):
#0  0x00007ffb2c711e51 in g_logv () at /lib64/libglib-2.0.so.0
#1  0x00007ffb2c7120d3 in g_log () at /lib64/libglib-2.0.so.0
#2  0x00007ffb2c82df6a in g_type_check_instance () at /lib64/libgobject-2.0.so.0
#3  0x00007ffb2c8220bf in g_signal_connect_data () at /lib64/libgobject-2.0.so.0
#4  0x00007ffb30c7a66f in WebCore::AppendPipeline::AppendPipeline(WebCore::SourceBufferPrivateGStreamer&, WebCore::MediaPlayerPrivateGStreamerMSE&) (playerPrivate=<optimized out>, sourceBufferPrivate=..., this=0x7ffa55aaf2e0) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/redhat-linux-build/WTF/Headers/wtf/glib/GRefPtr.h:110
#5  WTF::makeUniqueRefWithoutFastMallocCheck<WebCore::AppendPipeline, WebCore::SourceBufferPrivateGStreamer&, WebCore::MediaPlayerPrivateGStreamerMSE&>(WebCore::SourceBufferPrivateGStreamer&, WebCore::MediaPlayerPrivateGStreamerMSE&) () at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/redhat-linux-build/WTF/Headers/wtf/UniqueRef.h:40
#6  WTF::makeUniqueRef<WebCore::AppendPipeline, WebCore::SourceBufferPrivateGStreamer&, WebCore::MediaPlayerPrivateGStreamerMSE&>(WebCore::SourceBufferPrivateGStreamer&, WebCore::MediaPlayerPrivateGStreamerMSE&) () at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/redhat-linux-build/WTF/Headers/wtf/UniqueRef.h:47
#7  WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer(WebCore::MediaSourcePrivateGStreamer*, WebCore::ContentType const&, WebCore::MediaPlayerPrivateGStreamerMSE&) (playerPrivate=<optimized out>, contentType=<optimized out>, mediaSource=0x7ffa76488c80, this=<optimized out>) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:73
#8  WebCore::SourceBufferPrivateGStreamer::create(WebCore::MediaSourcePrivateGStreamer*, WebCore::ContentType const&, WebCore::MediaPlayerPrivateGStreamerMSE&) (playerPrivate=<optimized out>, contentType=<optimized out>, mediaSource=0x7ffa76488c80) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:65
#9  WebCore::MediaSourcePrivateGStreamer::addSourceBuffer(WebCore::ContentType const&, bool, WTF::RefPtr<WebCore::SourceBufferPrivate, WTF::RawPtrTraits<WebCore::SourceBufferPrivate>, WTF::DefaultRefDerefTraits<WebCore::SourceBufferPrivate> >&) (this=this at entry=0x7ffa76488c80, contentType=..., sourceBufferPrivate=...) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:87
#10 0x00007ffb31049739 in WebCore::MediaSource::createSourceBufferPrivate(WebCore::ContentType const&) (incomingType=..., this=0x7ffaaa0101e0) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/Source/WebCore/Modules/mediasource/MediaSource.cpp:1067
#11 WebCore::MediaSource::addSourceBuffer(WTF::String const&) (type=..., this=0x7ffaaa0101e0) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/Source/WebCore/Modules/mediasource/MediaSource.cpp:692
#12 WebCore::jsMediaSourcePrototypeFunction_addSourceBufferBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::IDLOperation<WebCore::JSMediaSource>::ClassParameter) (lexicalGlobalObject=0x7ffb119f0e68, callFrame=<optimized out>, castedThis=0x7ffb19f42768) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/redhat-linux-build/WebCore/DerivedSources/JSMediaSource.cpp:471
#13 0x00007ffb31049f98 in WebCore::IDLOperation<WebCore::JSMediaSource>::call<WebCore::jsMediaSourcePrototypeFunction_addSourceBufferBody> (operationName=<optimized out>, callFrame=<optimized out>, lexicalGlobalObject=<optimized out>) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/Source/WebCore/bindings/js/JSDOMOperation.h:63
#14 WebCore::jsMediaSourcePrototypeFunction_addSourceBuffer(JSC::JSGlobalObject*, JSC::CallFrame*) (lexicalGlobalObject=<optimized out>, callFrame=<optimized out>) at /usr/src/debug/webkit2gtk3-2.38.0-2.fc36.x86_64/redhat-linux-build/WebCore/DerivedSources/JSMediaSource.cpp:476
#15 0x00007ffac4008338 in  ()
#16 0x00007ffc615681d0 in  ()
#17 0x00007ffb2eaba925 in op_call_slow_return_location () at /lib64/libjavascriptcoregtk-4.0.so.18
#18 0x0000000000000000 in  ()

There's anyway at least one issue in AppendPipeline, no demuxer is created for audio/flac SourceBuffers:

0:00:07.673421922     2 0x55bcf5856350 DEBUG              webkitmse AppendPipeline.cpp:143:AppendPipeline: SourceBuffer containerType: audio/flac

    GST_DEBUG("SourceBuffer containerType: %s", type.utf8().data());
    bool hasDemuxer = true;
    if (type.endsWith("mp4"_s) || type.endsWith("aac"_s)) {
        m_demux = makeGStreamerElement("qtdemux", nullptr);
        m_typefind = makeGStreamerElement("identity", nullptr);
    } else if (type.endsWith("webm"_s)) {
        m_demux = makeGStreamerElement("matroskademux", nullptr);
        m_typefind = makeGStreamerElement("identity", nullptr);
    } else if (type == "audio/mpeg"_s) {
        m_demux = makeGStreamerElement("identity", nullptr);
        m_typefind = makeGStreamerElement("typefind", nullptr);
        hasDemuxer = false;
    } else
        ASSERT_NOT_REACHED();

If you had a Debug build you would see an ASSERT+crash there.

-- 
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/20221003/6cabc17c/attachment-0001.htm>


More information about the webkit-unassigned mailing list