Dealing with jittery clock

Tvrtko Ursulin tvrtko.ursulin at onelan.com
Mon Oct 3 08:14:18 PDT 2011


Hi all,

I am looking for strategies for dealing with a jittery clock provider,
and by dealing with, I mean preserving both AV sync and smooth video.

Use case in question is V4L2 streaming, in essence really only
gst-launch-0.10 v4l2src ! video/x-raw-yuv,... ! queue ! xvimagesink alsasrc ! alsasink.

Problem is that the audio coming from the capture card, on
delivery of which I understand pipeline clock is based, is
somewhat jittery (please see log at the bottom). Result of that
is that video frame rendering follows this jittery clock resulting
in a similarly jittery video (but in AV sync).

Is there something I can tweak in GStreamer so that the combined
pipeline is buffered somehow to help it weather these spikes, or
my only option is looking at the capture card driver and seeing
if I can make it provide a better quality clock?

Theoretically, I could also run with sync=false on the alsasink, but
that results in a AV sync offset. Which seems fixed so perhaps
a workaround could be if one stream could be moved statically
in time compared to another, but I haven't found a way to do that?

Many thanks,

Tvrtko Ursulin


0:00:02.974574279  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.004143369  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.034039056  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.035897855  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 1, 
jitter  0:00:00.001833334
0:00:03.108461897  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.039833333
0:00:03.138143501  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166667
0:00:03.167963506  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166667
0:00:03.208121558  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166667
0:00:03.209750033  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 1, 
jitter  0:00:00.001250000
0:00:03.274575484  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.041000000
0:00:03.304146984  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.334430862  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.337237149  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 1, 
jitter  0:00:00.000041667
0:00:03.374141625  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.031208333
0:00:03.434986959  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.040416666
0:00:03.474301635  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.503894654  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.542994459  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.009166666
0:00:03.569089728  1869  0x9ba4718 DEBUG               basesink gstbasesink.c:2566:gst_base_sink_do_sync:<xvimagesink0> clock returned 0, 
jitter -0:00:00.007958333


More information about the gstreamer-devel mailing list