[Webkit-unassigned] [Bug 78883] [GStreamer] AudioSourceProvider support in the MediaPlayer
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sun Dec 7 11:11:03 PST 2014
https://bugs.webkit.org/show_bug.cgi?id=78883
--- Comment #44 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Comment on attachment 218586
--> https://bugs.webkit.org/attachment.cgi?id=218586
rebased patch that works
View in context: https://bugs.webkit.org/attachment.cgi?id=218586&action=review
What's missing to land this? I have some comments here, but there's probably more missing? Is channels!=2 support mandatory? I can probably work on this a bit
> Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:62
> + GstBuffer* buffer = gst_buffer_list_get(buffers, 0);
Better iterate over all buffers here like in AudioFileReaderGStreamer. gst_buffer_list_get() will merge all buffers first, so you copy twice here.
> Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:67
> + gst_buffer_list_remove(buffers, 0, 1);
Maybe just unref the buffer list here and create a new one instead
> Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:181
> + GstElement* dataChopper = gst_element_factory_make("chopmydata", "dataChopper");
Instead of such dubious elements I would recommend to just use a GstAdapter or similar (in the appsink callback) to chop the data yourself
> Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:214
> + "format", G_TYPE_STRING, gst_audio_format_to_string(GST_AUDIO_FORMAT_F32),
GST_AUDIO_NE(F32)
> Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:228
> + gst_element_link_pads_full(audioTee.get(), 0, audioQueue, "sink", GST_PAD_LINK_CHECK_NOTHING);
Provide the pad name here: "src_%u"
> Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:320
> + GstIteratorResult result = gst_iterator_next(iter, &item);
Instead of all this you can simply use gst_iterator_foreach() (make sure to check the return value for resync!) here
> Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1832
> + if (m_preservesPitch) {
Maybe instead of all this we can just depend on GStreamer >= 1.4.2 and use the audio-filter property for scaletempo? That would considerably clean up this code
--
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/20141207/8f2d7e2a/attachment-0002.html>
More information about the webkit-unassigned
mailing list