GNOME Bugzilla – Bug 762013
curlhttpsink: Problem in curlhttpsink when qtmux uses faststart, don't send empty buffers
Last modified: 2016-04-14 17:43:37 UTC
Created attachment 321089 [details] [review] gstcurlbasesink: Avoid start if the length of the buffer data Hi, I have detected that when I use curlhttpsink after a qtmux with faststart the sink doesn't work fine. The sink receives a first empty buffer and it doesn't receive more buffers until the end of the video. However, the sink starts to send empty http requests with the first buffer and the sending never works fine. I attach a patch that resolves the problem this avoiding empty buffers. You can check the bug with this simple pipeline: gst-launch-1.5 videotestsrc num-buffers=1000! x264enc ! qtmux faststart=TRUE ! curlhttpsink location=http://127.0.0.1:8080/ If you put a http-server you will be able to detect empty packages since the begining of the execution and the execution never ends. With my patch, this doesn't occur. Thank you. David.
Created attachment 321378 [details] [review] gstcurlbasesink: Avoid start if the length of the buffer data I forgot unmap the buffer.
Makes sense I think. I have modified your patch slightly to move the GST_OBJECT_LOCK after the check, which avoids the need to unlock in your if branch. commit 55ba6f1ee898a9acc1bbac8dd3c53885eb9fe285 Author: David Fernandez <d.fernandezlop@gmail.com> Date: Tue Feb 16 15:10:34 2016 +0100 curlbasesink: don't send empty buffers Fixes problem in curlhttpsink when qtmux uses faststart. https://bugzilla.gnome.org/show_bug.cgi?id=762013
Thanks for the change!! It is the better way!
Comment on attachment 321378 [details] [review] gstcurlbasesink: Avoid start if the length of the buffer data Committed with minor changes.