[FFmpeg-devel] [PATCH] mpegts demuxer gives bogus data after seeking

Wolfram Gloger wmglo
Mon May 4 23:18:30 CEST 2009


Hi,

Please take a look at tests/seek.regression.ref for the file
tests/data/b-lavf.ts.  The packet "pos" values after a seek are rather
obviously bogus -- they don't correlate at all with the timestamp
seeked to.  Rather, they correlate with the _previous_ timestamp
seeked to.

This is fixed by the appended patch.
I also append a diff for seek.regression.ref.

Note: there are _still_ bogosities after seeking in b-lavf.ts (dts far
off the timestamped seeked to), but these are due to bugs in the
mpegts muxer IMHO.

Regards,
Wolfram.

--- ffmpeg-test/libavformat/mpegts.c.orig	2009-04-12 11:04:12.000000000 +0200
+++ ffmpeg-test/libavformat/mpegts.c	2009-05-04 23:10:00.000000000 +0200
@@ -1437,6 +1437,15 @@
     MpegTSContext *ts = s->priv_data;
     uint8_t buf[TS_PACKET_SIZE];
     int64_t pos;
+    int i;
+
+    // make sure that no old PES data is handed out in any case
+    for (i=0;i<NB_PID_MAX;i++)
+        if (ts->pids[i] && ts->pids[i]->type == MPEGTS_PES) {
+            PESContext *pes = ts->pids[i]->u.pes_filter.opaque;
+
+            pes->state = MPEGTS_SKIP;
+        }
 
     if(av_seek_frame_binary(s, stream_index, target_ts, flags) < 0)
         return -1;

--- ffmpeg-test/tests/seek.regression.ref.orig	2009-04-12 02:25:37.000000000 +0200
+++ ffmpeg-test/tests/seek.regression.ref	2009-05-04 23:14:21.000000000 +0200
@@ -3605,57 +3605,57 @@
 tests/data/b-lavf.ts
 ret: 0 st: 0 dts:0.660000 pts:0.700000 pos:564 size:24921 flags:1
 ret: 0 st:-1 ts:-1.000000 flags:0
-ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:29328 size:22036 flags:1
+ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:4136 size:21991 flags:1
 ret: 0 st:-1 ts:1.894167 flags:1
-ret: 0 st: 0 dts:1.887078 pts:-102481911520608.625000 pos:29328 size:7907 flags:1
+ret: 0 st: 0 dts:1.887078 pts:-102481911520608.625000 pos:94376 size:7864 flags:1
 ret: 0 st: 0 ts:0.788333 flags:0
-ret: 0 st: 0 dts:0.795878 pts:-102481911520608.625000 pos:101520 size:9043 flags:1
+ret: 0 st: 0 dts:0.795878 pts:-102481911520608.625000 pos:40232 size:9000 flags:1
 ret: 0 st: 0 ts:-0.317500 flags:1
-ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:50948 size:22036 flags:1
+ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:4136 size:21991 flags:1
 ret: 0 st: 1 ts:2.576667 flags:0
-ret: 0 st: 0 dts:2.580444 pts:-102481911520608.625000 pos:29328 size:5727 flags:1
+ret: 0 st: 0 dts:2.580444 pts:-102481911520608.625000 pos:130472 size:5148 flags:1
 ret: 0 st: 1 ts:1.470833 flags:1
-ret: 0 st: 0 dts:1.466511 pts:-102481911520608.625000 pos:134044 size:10244 flags:1
+ret: 0 st: 0 dts:1.466511 pts:-102481911520608.625000 pos:76328 size:8577 flags:1
 ret: 0 st:-1 ts:0.365002 flags:0
-ret: 0 st: 0 dts:0.379100 pts:-102481911520608.625000 pos:83472 size:7376 flags:1
+ret: 0 st: 0 dts:0.379100 pts:-102481911520608.625000 pos:22184 size:7341 flags:1
 ret: 0 st:-1 ts:-0.740831 flags:1
-ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:29328 size:22036 flags:1
+ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:4136 size:21991 flags:1
 ret: 0 st: 0 ts:2.153333 flags:0
-ret: 0 st: 0 dts:2.156089 pts:-102481911520608.625000 pos:29328 size:8674 flags:1
+ret: 0 st: 0 dts:2.156089 pts:-102481911520608.625000 pos:108664 size:8639 flags:1
 ret: 0 st: 0 ts:1.047500 flags:1
-ret: 0 st: 0 dts:1.042156 pts:-102481911520608.625000 pos:115996 size:11942 flags:1
+ret: 0 st: 0 dts:1.042156 pts:-102481911520608.625000 pos:54520 size:11897 flags:1
 ret: 0 st: 1 ts:-0.058333 flags:0
-ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:68996 size:22036 flags:1
+ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:4136 size:21991 flags:1
 ret: 0 st: 1 ts:2.835833 flags:1
-ret: 0 st: 0 dts:2.822933 pts:-102481911520608.625000 pos:29328 size:10429 flags:1
+ret: 0 st: 0 dts:2.822933 pts:-102481911520608.625000 pos:141188 size:10394 flags:1
 ret: 0 st:-1 ts:1.730004 flags:0
-ret: 0 st: 0 dts:1.731733 pts:-102481911520608.625000 pos:152092 size:13769 flags:1
+ret: 0 st: 0 dts:1.731733 pts:-102481911520608.625000 pos:87044 size:13724 flags:1
 ret: 0 st:-1 ts:0.624171 flags:1
-ret: 0 st: 0 dts:0.617800 pts:-102481911520608.625000 pos:101520 size:14905 flags:1
+ret: 0 st: 0 dts:0.617800 pts:-102481911520608.625000 pos:32900 size:14860 flags:1
 ret: 0 st: 0 ts:-0.481667 flags:0
-ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:50948 size:22036 flags:1
+ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:4136 size:21991 flags:1
 ret: 0 st: 0 ts:2.412500 flags:1
 ret: 0 st: 0 dts:2.406156 pts:-102481911520608.625000 pos:119568 size:13938 flags:1
 ret: 0 st: 1 ts:1.306667 flags:0
 ret: 0 st: 0 dts:1.314956 pts:-102481911520608.625000 pos:65424 size:3107 flags:1
 ret: 0 st: 1 ts:0.200844 flags:1
-ret: 0 st: 0 dts:0.193444 pts:-102481911520608.625000 pos:68996 size:16166 flags:1
+ret: 0 st: 0 dts:0.193444 pts:-102481911520608.625000 pos:11280 size:16131 flags:1
 ret: 0 st:-1 ts:-0.904994 flags:0
-ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:29328 size:22036 flags:1
+ret: 0 st: 0 dts:0.030522 pts:-102481911520608.625000 pos:4136 size:21991 flags:1
 ret: 0 st:-1 ts:1.989173 flags:1
-ret: 0 st: 0 dts:1.981800 pts:-102481911520608.625000 pos:29328 size:2039 flags:1
+ret: 0 st: 0 dts:0.860000 pts:0.900000 pos:101520 size:2004 flags:1
 ret: 0 st: 0 ts:0.883344 flags:0
-ret: 0 st: 0 dts:0.890600 pts:-102481911520608.625000 pos:101520 size:3175 flags:1
+ret: 0 st: 0 dts:0.890600 pts:-102481911520608.625000 pos:47376 size:3140 flags:1
 ret: 0 st: 0 ts:-0.222489 flags:1
-ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:50948 size:22036 flags:1
+ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:4136 size:21991 flags:1
 ret: 0 st: 1 ts:2.671678 flags:0
-ret: 0 st: 0 dts:2.682744 pts:-102481911520608.625000 pos:29328 size:2253 flags:1
+ret: 0 st: 0 dts:0.940000 pts:0.980000 pos:134044 size:2218 flags:1
 ret: 0 st: 1 ts:1.565844 flags:1
-ret: 0 st: 0 dts:1.557444 pts:-102481911520608.625000 pos:134044 size:5682 flags:1
+ret: 0 st: 0 dts:1.557444 pts:-102481911520608.625000 pos:79900 size:5647 flags:1
 ret: 0 st:-1 ts:0.460008 flags:0
-ret: 0 st: 0 dts:0.466244 pts:-102481911520608.625000 pos:83472 size:4446 flags:1
+ret: 0 st: 0 dts:0.466244 pts:-102481911520608.625000 pos:25756 size:4411 flags:1
 ret: 0 st:-1 ts:-0.645825 flags:1
-ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:29328 size:22036 flags:1
+ret: 0 st: 0 dts:0.019156 pts:-102481911520608.625000 pos:4136 size:21991 flags:1



More information about the ffmpeg-devel mailing list