ffplay: use start_time as next audio pts on flush when seeking is not supported
authorMarton Balint <cus@passwd.hu>
Sat, 13 Jul 2013 11:55:43 +0000 (13:55 +0200)
committerMarton Balint <cus@passwd.hu>
Sat, 20 Jul 2013 00:32:43 +0000 (02:32 +0200)
Theoretically using start_time should also work if seeking is available and we
could determine that the next packet after a flush packet is the first packet
of a stream, but I could not think of an easy and clean way to do that, that is
why I sticked to the no seeking available condition for now.

Fixes ticket #2647.

Signed-off-by: Marton Balint <cus@passwd.hu>
ffplay.c

index 6ed8a85..9b5dce0 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -2333,6 +2333,8 @@ static int audio_decode_frame(VideoState *is)
             avcodec_flush_buffers(dec);
             is->audio_buf_frames_pending = 0;
             is->audio_frame_next_pts = AV_NOPTS_VALUE;
+            if ((is->ic->iformat->flags & (AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK)) && !is->ic->iformat->read_seek)
+                is->audio_frame_next_pts = is->audio_st->start_time;
         }
 
         *pkt_temp = *pkt;