[FFmpeg-cvslog] mpegts: fix pos47_full

Michael Niedermayer git at videolan.org
Sun Aug 18 23:28:49 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Aug 18 22:10:41 2013 +0200| [0f2f65bd583576ef8c12eea6088c84d4468f5804] | committer: Michael Niedermayer

mpegts: fix pos47_full

The value was off by a packet

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0f2f65bd583576ef8c12eea6088c84d4468f5804
---

 libavformat/mpegts.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 1213eca..9cff528 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -1862,7 +1862,8 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet)
         return 0;
 
     pos = avio_tell(ts->stream->pb);
-    ts->pos47_full = pos;
+    av_assert0(pos >= TS_PACKET_SIZE);
+    ts->pos47_full = pos - TS_PACKET_SIZE;
 
     if (tss->type == MPEGTS_SECTION) {
         if (is_start) {
@@ -1910,7 +1911,7 @@ static void reanalyze(MpegTSContext *ts) {
     int64_t pos = avio_tell(pb);
     if(pos < 0)
         return;
-    pos += ts->raw_packet_size - ts->pos47_full;
+    pos -= ts->pos47_full;
     if (pos == TS_PACKET_SIZE) {
         ts->size_stat[0] ++;
     } else if (pos == TS_DVHS_PACKET_SIZE) {



More information about the ffmpeg-cvslog mailing list