Not able to push RTP data from appsrc to rtpjitterbuffer

avbagno bagno.vladimirovna at gmail.com
Mon Nov 28 13:36:31 UTC 2016


avbagno wrote
> Hi!
> I have similar problem with appsrc and rtpklvpay. I'm using Gstreamet
> 1.9.1. Here is my code
> if (NULL == (video_ctx->pipeline = gst_pipeline_new("receiver")))
> 		{
> 			ERROR_LOG("Can't create pipeline");
> 			return;
> 		}
> 
> 	    if (NULL == (video_ctx->klv_sink = 
> gst_element_factory_make("udpsink", NULL)))
> 		{
> 			ERROR_LOG("Can't create klv sink element");
> 			return;
> 		}
> 		g_object_set(G_OBJECT(video_ctx->klv_sink), "host", "192.168.0.112",
> NULL);
> 		g_object_set(G_OBJECT(video_ctx->klv_sink), "port", 3600,  NULL);
> 
> 		video_ctx->klv_src = gst_element_factory_make ("appsrc", NULL);
> 		g_object_set (G_OBJECT (video_ctx->klv_src), "caps",
> 			gst_caps_new_empty_simple("meta/x-klv"), NULL);
> 
> 		//init rtp klvpay
> 		if (NULL == (video_ctx->rtpklvpay =
> gst_element_factory_make("rtpklvpay", NULL)))
> 		{
> 			ERROR_LOG("Can't create rtp klv pay");
> 			return;
> 		}
> 
> 		gst_bin_add_many(GST_BIN(video_ctx->pipeline),
> 		   video_ctx->klv_src,
> 			video_ctx->rtpklvpay, video_ctx->klv_sink,
> 			NULL);
> 
> 
> 		if (0 == gst_element_link(video_ctx->klv_src, video_ctx->rtpklvpay))
> 		{
> 			 ERROR_LOG("Can't link klv_src and rtpklvpay element");
> 			 return;
> 		}
> 		if (0 == gst_element_link(video_ctx->rtpklvpay, video_ctx->klv_sink))
> 		{
> 			 ERROR_LOG("Can't link rtpklvpay and klvsink");
> 			 return;
> 		}
> 
> 		g_object_set (G_OBJECT (video_ctx->klv_src),
> 			"stream-type", 0,
> 			"format", GST_FORMAT_TIME, NULL);
> 		g_signal_connect (video_ctx->klv_src, "need-data",
> G_CALLBACK(klv_src_nedd_data), video_ctx->klv_ctx);
> 
> 		if ((bus = gst_pipeline_get_bus(GST_PIPELINE(video_ctx->pipeline))) !=
> NULL) {
> 			gst_bus_add_watch(bus, &onBusMessage, video_ctx);
> 			gst_object_unref(bus);
> 			bus = NULL;
> 		}
> 
> 		success = gst_element_set_state(video_ctx->pipeline, GST_STATE_PLAYING)
> != GST_STATE_CHANGE_FAILURE;
> 
> static void
> klv_src_nedd_data(GstElement *appsrc,
> 	guint unused_size,
> 	gpointer user_data)
> {
> 	...
> 	buffer = gst_buffer_new_allocate (NULL, buf->buf_len, NULL);
> 	/* this makes the image black/white */
> 	gst_buffer_fill (buffer, 0, buf->buffer, buf->buf_len);
> 
> 	GST_BUFFER_PTS (buffer) = timestamp;
> 	GST_BUFFER_DURATION (buffer) = gst_util_uint64_scale_int (1, GST_SECOND,
> 2);
> 
> 	timestamp += GST_BUFFER_DURATION (buffer);
> 
> 	DEBUG_LOG("Push buffer to appsrc");
> 	g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret);
> 	gst_buffer_unref (buffer);
> 	...
> }
> 
> Logs from appsrc
> 0:00:00.031915510 21224 0x7fb634005360 DEBUG                 appsrc
> gstappsrc.c:1305:gst_app_src_set_caps:
> <appsrc0>
>  setting caps to meta/x-klv
> 0:00:00.033226895 21224 0x7fb634005360 DEBUG                 appsrc
> gstappsrc.c:673:gst_app_src_internal_get_caps:
> <appsrc0>
>  caps: (NULL)
> 0:00:00.033255827 21224 0x7fb634005360 DEBUG                 appsrc
> gstappsrc.c:673:gst_app_src_internal_get_caps:
> <appsrc0>
>  caps: (NULL)
> 0:00:00.033287408 21224 0x7fb634005360 DEBUG                 appsrc
> gstappsrc.c:1469:gst_app_src_set_stream_type:
> <appsrc0>
>  setting stream_type of 0
> 0:00:00.033440116 21224 0x7fb634005360 DEBUG                 appsrc
> gstappsrc.c:850:gst_app_src_start:
> <appsrc0>
>  starting
> 0:00:00.033589791 21224       0xbd5b70 DEBUG                 appsrc
> gstappsrc.c:673:gst_app_src_internal_get_caps:
> <appsrc0>
>  caps: (NULL)
> 0:00:00.033672264 21224       0xbd5b70 DEBUG                 appsrc
> gstappsrc.c:1792:gst_app_src_push_buffer_full:
> <appsrc0>
>  queueing buffer 0x7fb638005060
> 0:00:00.033681282 21224       0xbd5b70 DEBUG                 appsrc
> gstappsrc.c:1202:gst_app_src_create:
> <appsrc0>
>  we have buffer 0x7fb638005060 of size 47
> 
> After first call to need_data pipe stopped.
> Please give me a prompt, what I'm doing wrong.
> Thanks!
> Sebastian Dröge-3 wrote
>> On Tue, 2016-11-15 at 04:34 -0800, ShivaKumar wrote:
>>> Hi All,
>>> 
>>> I have an issue in pushing data from appsrc to rtpjitterbuffer in Gst
>>> 1.0.
>>> Thee pipeline goes like this.
>>> 
>>> appsrc   !  "application/x-rtp, media=(string)video,
>>> clock-rate=(int)90000,
>>> payload=(int)33" ! rtpjitterbuffer ! .... 
>>> 
>>> I am getting the internal data flow error with error -5
>>> 
>>> ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal
>>> data flow error.
>>> streaming task paused, reason error (-5)
>>> 
>>> Can anyone help to analyse what is wrong here.
>> 
>> You have to provide more details about your pipeline, what other
>> elements are there, what are you pushing from the appsrc? Also a debug
>> log should point you to where things actually go wrong.
>> 
>> -- 
>> Sebastian Dröge, Centricular Ltd · http://www.centricular.com
>> _______________________________________________
>> gstreamer-devel mailing list

>> gstreamer-devel at .freedesktop

>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> 
>> 
>> signature.asc (981 bytes)
>> <http://gstreamer-devel.966125.n4.nabble.com/attachment/4680698/0/signature.asc>


Hi all,

I've checked logs from basesrc, and I've got next errors 

0:00:00.033425854 24899       0xf3b720 DEBUG                basesrc
gstbasesrc.c:2887:gst_base_src_loop:<appsrc0> Not negotiated
0:00:00.033430186 24899       0xf3b720 DEBUG                basesrc
gstbasesrc.c:2903:gst_base_src_loop:<appsrc0> pausing task, reason
not-negotiated
0:00:00.033438814 24899       0xf3b720 WARN                 basesrc
gstbasesrc.c:2952:gst_base_src_loop:<appsrc0> error: Internal data flow
error.
0:00:00.033443052 24899       0xf3b720 WARN                 basesrc
gstbasesrc.c:2952:gst_base_src_loop:<appsrc0> error: streaming task paused,
reason not-negotiated (-4)

I would be realy appreciate if someone give me a tip how to fix this
problem.  
Thanks!




--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Not-able-to-push-RTP-data-from-appsrc-to-rtpjitterbuffer-tp4680696p4680911.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list