[gst-devel] render-delay base sink property for lip-sync?

pl bossart bossart.nospam at gmail.com
Fri Jan 22 22:12:30 CET 2010


> A sink subclassing basesink can call
> gst_base_sink_set_render_delay() when the latency towards the backend has changed. This posts a latency message to the application (bus) and updates the sink latency.
> The new latency is used in gst_base_sink_do_sync() which is used by gst_base_sink_render_object() and that finaly is used from the chin function.
>
> I think it should work fine :)

Thanks Stefan. What I was thinking of is indeed to call
gst_base_sink_set_render_delay() when pulseaudio updates the latency
information in gst_pulsering_stream_latency_cb(). However I am not
sure the sink latency (the time needed for a new sample to be played)
is compatible with the gstreamer expectations at the pipeline level.
The latency reported by pulseaudio is initially zero in a prerolled
state, and it'll increase during the first seconds until the reported
latency oscillates around a stable value.

Along the same line, pulseaudio updates the latency every second or
so, not sure what the effect is if the pipeline latency is changed too
often.

Last, do video sinks update the render-delay information as well? If
only the audio sink updates the back-end delay, we might end-up with a
worse experience...
Thanks for your feedback
- Pierre




More information about the gstreamer-devel mailing list