[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