diff options
author | Marton Balint <cus@passwd.hu> | 2013-07-07 02:54:22 +0200 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2013-07-09 20:19:54 +0200 |
commit | f07cb53ab95172f7c15e14b004c4ebcb04aad44c (patch) | |
tree | 85507b99f8e5f735b4fb7f73f2d15da5eb2c18b2 /ffplay.c | |
parent | 3886572a83bf868b51d840071e27f40fc94fbd6b (diff) | |
download | ffmpeg-f07cb53ab95172f7c15e14b004c4ebcb04aad44c.tar.gz |
ffplay: assume 0 stream start time if start time is unset in duration check
Fixes ticket #2103 and #2743.
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'ffplay.c')
-rw-r--r-- | ffplay.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -2685,6 +2685,7 @@ static int read_thread(void *arg) int st_index[AVMEDIA_TYPE_NB]; AVPacket pkt1, *pkt = &pkt1; int eof = 0; + int64_t stream_start_time; int pkt_in_play_range = 0; AVDictionaryEntry *t; AVDictionary **opts; @@ -2926,8 +2927,9 @@ static int read_thread(void *arg) continue; } /* check if packet is in play range specified by user, then queue, otherwise discard */ + stream_start_time = ic->streams[pkt->stream_index]->start_time; pkt_in_play_range = duration == AV_NOPTS_VALUE || - (pkt->pts - ic->streams[pkt->stream_index]->start_time) * + (pkt->pts - (stream_start_time != AV_NOPTS_VALUE ? stream_start_time : 0)) * av_q2d(ic->streams[pkt->stream_index]->time_base) - (double)(start_time != AV_NOPTS_VALUE ? start_time : 0) / 1000000 <= ((double)duration / 1000000); |