GNOME Bugzilla – Bug 320644
RTP packetizer does't set the packet timestamps correctly
Last modified: 2005-12-01 17:03:32 UTC
The RTP packetizer base class doesn't set the timestamps correctly in the packets. This is because the timestamp of the segment is never substracted from the packet's timestamp. If you use rtpbin, it will overwrite the packet's timestamp so you you won't notice it. You can see this problem by using udpsink.
Created attachment 54291 [details] [review] Proposed fix
The fix changes the size of GstBaseRtpPayload so I think it should go in before 0.10.
Not to mention that the structure has no padding even though it's an installed header. Could you update your patch to add /*< private *>/ gpointer _gst_reserver[GST_PADDING]; at the end of both structs (the instance and the class struct)? Cheers -Tim
Created attachment 55376 [details] [review] updated fix Adds the padding bytes at the end of the instance and class structures.
There is a lot more support for this in the core nowadays (see GstSegment). When receiving the newsegment, update the GstSegment. The total running time can then be retrieved with gst_segment_to_running_time(). This will be more correct when dealing with looping elements and other elements that update or start new segments without flushing.
Created attachment 55427 [details] [review] Improved patch improved patch, uses GstSegment to manage segments. Also adds padding.
aplied in CVS