GNOME Bugzilla – Bug 511683
gstrtpbin fails to associate streams together for lipsync
Last modified: 2008-01-27 21:50:48 UTC
GstRtpBin will not associate streams together for lip-sync unless they have the clock-rate set. The only way their clock-rate can be set it from the pad that comes out of the ssrc demux, but this pad never has caps on it (the caps are just set on the buffer later in the pt demuxer!). So the association never happens. I'm attaching a patch that uses the ptdemuxer's payload-type-changed signal to signal what is the last pt that was received on that stream, this PT is then used to request the pt-map and then get the clock-rate.
Created attachment 103589 [details] [review] patch to get the clockrate from the request-pt-map signal
Patch by: Olivier Crete <tester@tester.ca> * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), (create_stream), (payload_type_change), (new_ssrc_pad_found): Also handle lip-sync when the clock-rate is not provided with caps but with a signal.
I'd like to point out, that after applying this patch, I have issues with the TS jumping forward about 300,000 seconds after a few seconds (but I haven't had time to investigate yet).