[FFmpeg-trac] #3221(undetermined:new): best effort time stamp is wrong after av_seek_frame is called.
FFmpeg
trac at avcodec.org
Thu Dec 12 08:31:19 CET 2013
#3221: best effort time stamp is wrong after av_seek_frame is called.
-------------------------------------+-------------------------------------
Reporter: hxuanyu | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I built the latest ffmpeg libs and ran a test app to test av_seek_frame
Basically what I did is
1. read packet + decode frame
2. av_seek_frame to a previous position
3. continue to read + decode
but seems the best effort time stamps were wrong after seek was called.
Below is part of the log
to play av_divx_24_yuv420p_mp3_44100_2_1.avi
rhbc73 pFormatCtx->start_time = 0
video stream index = 0
rhbc73 Packet [0] dts = 0, pts = -9223372036854775808, KEY =1
rhbc73 **************** NO complete frame
rhbc73 Packet [1] dts = 1, pts = -9223372036854775808, KEY =1
rhbc73 **************** NO complete frame
rhbc73 Packet [2] dts = 2, pts = -9223372036854775808, KEY =0
rhbc73 **************** NO complete frame
rhbc73 Packet [3] dts = 3, pts = -9223372036854775808, KEY =1
rhbc73 **************** NO complete frame
rhbc73 Packet [4] dts = 4, pts = -9223372036854775808, KEY =1
rhbc73 ======= got a complete
frame, pkt_dts = 0, best effort time stamp = 0
rhbc73 Packet [5] dts = 5, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 1, best effort time stamp = 1
rhbc73 Packet [6] dts = 6, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 2, best effort time stamp = 2
rhbc73 Packet [7] dts = 7, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 3, best effort time stamp = 3
rhbc73 Packet [8] dts = 8, pts = -9223372036854775808, KEY =1
rhbc73 ======= got a complete
frame, pkt_dts = 4, best effort time stamp = 4
rhbc73 Packet [9] dts = 9, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 5, best effort time stamp = 5
rhbc73 Packet [10] dts = 10, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 6, best effort time stamp = 6
rhbc73 now try to seek to packet where dts = 3
rhbc73 seek succeed, then continue to read
rhbc73 Packet [11] dts = 3, pts = -9223372036854775808, KEY =1
rhbc73 ======= got a complete
frame, pkt_dts = 7, best effort time stamp = 7
rhbc73 Packet [12] dts = 4, pts = -9223372036854775808, KEY =1
rhbc73 ======= got a complete
frame, pkt_dts = 8, best effort time stamp = 8
rhbc73 Packet [13] dts = 5, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 9, best effort time stamp = 9
rhbc73 Packet [14] dts = 6, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 10, best effort time stamp = 10
rhbc73 Packet [15] dts = 7, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 3, best effort time stamp = 3
rhbc73 Packet [16] dts = 8, pts = -9223372036854775808, KEY =1
rhbc73 ======= got a complete
frame, pkt_dts = 4, best effort time stamp = 4
rhbc73 Packet [17] dts = 9, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 5, best effort time stamp = 5
rhbc73 Packet [18] dts = 10, pts = -9223372036854775808, KEY =0
rhbc73 ======= got a complete
frame, pkt_dts = 6, best effort time stamp = 6
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3221>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list