problem with synchronization between multiple audio clients

Nathan zjustc at gmail.com
Wed Oct 3 07:20:34 PDT 2012


Hi dv,

I am also little bit confused by the way of a/v syn of RTP/RTCP of
gstreamer.
In our usecase, one tx will send a/v data to multiple clients using the
multicasting mode.
 I found when there is only one client, the lip sync is ok. However, when
there is more than one client, all the clients starting to lose the lip
sync. 
Here is the way I use the gstreamer: 
Tx side:

	g_object_set(G_OBJECT(app->video_rtpsink),  "host",contents.new_mcaddr,
"port", VIDEO_RTPSINK_PORT, "sync",FALSE,"async",FALSE
,"auto-multicast",TRUE,NULL);
	g_object_set(G_OBJECT(app->audio_rtpsink),  "host",contents.new_mcaddr,
"port", AUDIO_RTPSINK_PORT, "sync",FALSE,"async",FALSE
,"auto-multicast",TRUE,NULL);
	
	
	g_object_set(G_OBJECT(app->video_rtcpsink), "host",contents.new_mcaddr,
"port", VIDEO_RTCPSINK_PORT,"sync",FALSE,"async",FALSE
,"auto-multicast",TRUE,NULL);
	g_object_set(G_OBJECT(app->audio_rtcpsink), "host",contents.new_mcaddr,
"port", AUDIO_RTCPSINK_PORT,"sync",FALSE,"async",FALSE
,"auto-multicast",TRUE,NULL);
	
	g_object_set(G_OBJECT(app->video_rtcpsrc), "multicast-group",
contents.new_mcaddr, "port", VIDEO_RTCPSRC_PORT, NULL);
	g_object_set(G_OBJECT(app->audio_rtcpsrc), "multicast-group",
contents.new_mcaddr, "port", AUDIO_RTCPSRC_PORT, NULL);


Rx side:
	g_object_set(G_OBJECT(vsource), "timeout", G_GUINT64_CONSTANT(5000000),
"port", params.vrtp_port, "caps", video_caps, NULL);
	g_object_set(G_OBJECT(vsource), "multicast-group", params.mcaddr,
"auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(vrtcpsrc), "port", VIDEO_RTCP_SRC_PORT,
"multicast-group", params.mcaddr, "auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(vrtcpsink), "port", VIDEO_RTCP_SINK_PORT, "host",
params.mcaddr, "auto-multicast", TRUE,
			"sync", FALSE, "async", FALSE, NULL);

	g_object_set(G_OBJECT(asource), "port", params.artp_port, "caps",
audio_caps, NULL);
	g_object_set(G_OBJECT(asource), "multicast-group", params.mcaddr,
"auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(artcpsrc), "port", AUDIO_RTCP_SRC_PORT,
"multicast-group", params.mcaddr, "auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(artcpsink), "port", AUDIO_RTCP_SINK_PORT, "host",
params.mcaddr, "auto-multicast", TRUE,
			"sync", FALSE, "async", FALSE, NULL);
	g_object_set(G_OBJECT(asink), "sync", FALSE, NULL);


Did I do anything wrong here? What is the right way of seting the gstreamer
for the 1 to M mode?

Thanks,

John



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/problem-with-synchronization-between-multiple-audio-clients-tp4656124p4656446.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list