Video corruption in rtsp server with appsink->appsrc

Serj TorresSoldado torres.soldado at gmail.com
Thu Mar 31 13:35:08 UTC 2016


It seems that rtpbin should send an RTCP SDES before initiating RTP traffic.

https://trac.videolan.org/vlc/ticket/16774

On 29 March 2016 at 18:06, Serj TorresSoldado <torres.soldado at gmail.com>
wrote:

> Can't stop and start the appsink;s pipeline.. anyway if I do the PTS thing
> it works.
>
> Trying the gst-rtsp-server examples ("test-video") with vlc as a client
> and the corruption issue exists even on gstreamer 1.8.
>
> I am able to get a corruption free playback if I use gstreamer rtpsrc
> based client.
>
> My only idea at the moment it to capture and drop the event segment and
> see if it does anything.
>
>
> On 29 March 2016 at 11:29, Thornton, Keith <keith.thornton at zeiss.com>
> wrote:
>
>> Hi
>>
>> I have a similar pipeline based on the rtsp appsrc example. I use the
>> client_connected and client_closed callbacks to start and stop my pipeline.
>> I can attach and detach clients more than once.
>>
>>
>>
>> *Von:* gstreamer-devel [mailto:
>> gstreamer-devel-bounces at lists.freedesktop.org] *Im Auftrag von *Serj
>> TorresSoldado
>> *Gesendet:* Dienstag, 29. März 2016 11:34
>> *An:* Discussion of the development of and with GStreamer
>> *Betreff:* Re: Video corruption in rtsp server with appsink->appsrc
>>
>>
>>
>> I have just noticed this happens with the gst-rtsp-server examples as
>> well.
>>
>>
>>
>> I am using the 1.6 branch.
>>
>>
>>
>> On 28 March 2016 at 21:50, Serj TorresSoldado <torres.soldado at gmail.com>
>> wrote:
>>
>> Hi All,
>>
>>
>>
>>  I am doing a sink -> src push. The sink is in a separate pipeline and
>> the src is created by gst-rtsp-server when creating the media pipeline.
>>
>>
>>
>>  I have tried both using a pull (need-data signal) and push (new-sample)
>> methods and the result is the same.
>>
>>
>>
>>  I am copying the buffer from the sink to the source. I am setting the
>> PTS on the copied buffer otherwise after the first client disconnects I am
>> unable to connect again.
>>
>>
>>
>>  GST_BUFFER_PTS(bufcpy) = client->timestamp_;
>>
>>  client->timestamp_ += GST_BUFFER_DURATION(bufcpy);
>>
>>  gst_app_src_push_buffer(client->appsrc_, bufcpy);
>>
>>
>>
>>  When cofiguring the client I have "played" with the following appsrc
>> properties but they don't seem to make a difference:
>>
>>
>>
>>   gst_util_set_object_arg(reinterpret_cast<GObject*>(appsrc.Get()),
>> "format", "time");
>>
>>   g_object_set(reinterpret_cast<GObject*>(appsrc.Get()), "block", false,
>> nullptr);
>>
>>   g_object_set(reinterpret_cast<GObject*>(appsrc.Get()), "is-live", true,
>> nullptr);
>>
>>   g_object_set(reinterpret_cast<GObject*>(appsrc.Get()), "do-timestamp",
>> true, nullptr);
>>
>> //  g_object_set(reinterpret_cast<GObject*>(appsrc.Get()), "stream-type",
>> "random-access", nullptr);
>>
>> //  g_object_set(reinterpret_cast<GObject*>(appsrc.Get()), "max-bytes",
>> 1000, nullptr);
>>
>>
>>
>> Any help would be awesome, thanks.
>>
>>
>>
>> Serj
>>
>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160331/37a72d60/attachment.html>


More information about the gstreamer-devel mailing list