diff options
-rw-r--r-- | libavcodec/mpegvideo_parser.c | 3 | ||||
-rw-r--r-- | tests/seek.regression.ref | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/mpegvideo_parser.c b/libavcodec/mpegvideo_parser.c index 25d1ddc045..30f149d547 100644 --- a/libavcodec/mpegvideo_parser.c +++ b/libavcodec/mpegvideo_parser.c @@ -29,6 +29,7 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s, { ParseContext1 *pc = s->priv_data; const uint8_t *buf_end; + const uint8_t *buf_start= buf; uint32_t start_code; int frame_rate_index, ext_type, bytes_left; int frame_rate_ext_n, frame_rate_ext_d; @@ -43,6 +44,8 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s, bytes_left = buf_end - buf; switch(start_code) { case PICTURE_START_CODE: + ff_fetch_timestamp(s, buf-buf_start-4, 1); + if (bytes_left >= 2) { s->pict_type = (buf[1] >> 3) & 7; } diff --git a/tests/seek.regression.ref b/tests/seek.regression.ref index 63bd454dc7..9d8ca2e36d 100644 --- a/tests/seek.regression.ref +++ b/tests/seek.regression.ref @@ -3481,7 +3481,7 @@ ret:-1 st:-1 ts:0.460008 flags:0 ret:-1 st:-1 ts:-0.645825 flags:1 ---------------- tests/data/b-libav.ts -ret: 0 st: 0 dts:-0.040000 pts:0.000000 pos:-1 size:24921 flags:1 +ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:-1 size:24921 flags:1 ret: 0 st:-1 ts:-1.000000 flags:0 ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:-1 size:22036 flags:1 ret: 0 st:-1 ts:1.894167 flags:1 |