mpegvideoparse: Apply previous timestamp when there isn't any newer.
authorJan Schmidt <thaytan@noraisin.net>
Tue, 15 Jun 2010 07:16:12 +0000 (17:16 +1000)
committerJan Schmidt <thaytan@noraisin.net>
Tue, 15 Jun 2010 07:16:12 +0000 (17:16 +1000)
If the current incoming packet didn't carry a timestamp, but a
previous packet had one we didn't yet use, then apply that timestamp
to the next picture.
Fixes: #618336
gst/mpegvideoparse/mpegpacketiser.c

index d035edaff01053bc78f50f40255b78451ccecc1e..994b4afc9970ad096023ff0b226dd5986de0c373 100644 (file)
@@ -319,7 +319,8 @@ handle_packet (MPEGPacketiser * p, guint64 offset, guint8 pack_type)
        * previous buffer in order to handle this correctly. It would still be
        * possible to get it wrong if there was a PES packet smaller than 3 bytes
        * but anyone that does that can suck it.  */
-      if (offset >= p->tracked_offset) {
+      if ((offset >= p->tracked_offset)
+          && (p->cur_buf_ts != GST_CLOCK_TIME_NONE)) {
         /* sync word started within this buffer - take the cur ts */
         ts = p->cur_buf_ts;
         p->cur_buf_ts = GST_CLOCK_TIME_NONE;