diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-07-30 10:03:02 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-07-30 10:03:02 +0200 |
commit | 5a270296cb014de3bf8d12aece0bdd7cecad5318 (patch) | |
tree | 1ca325405258c53f6d2b3de88829ee95f1d0970a /libavformat | |
parent | 947f2d4d34f29a8bc51fd4a97718b1c163d7a55d (diff) | |
parent | e1d5b244761cf69db655ad7ece1dbf2c13dd4fce (diff) | |
download | ffmpeg-5a270296cb014de3bf8d12aece0bdd7cecad5318.tar.gz |
Merge commit 'e1d5b244761cf69db655ad7ece1dbf2c13dd4fce'
* commit 'e1d5b244761cf69db655ad7ece1dbf2c13dd4fce':
hls: Store first_timestamp in units of AV_TIME_BASE
Conflicts:
libavformat/hls.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/hls.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/libavformat/hls.c b/libavformat/hls.c index 55dcf63b1b..04117a4eb7 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -679,8 +679,11 @@ start: reset_packet(&var->pkt); break; } else { - if (c->first_timestamp == AV_NOPTS_VALUE) - c->first_timestamp = var->pkt.dts; + if (c->first_timestamp == AV_NOPTS_VALUE && + var->pkt.dts != AV_NOPTS_VALUE) + c->first_timestamp = av_rescale_q(var->pkt.dts, + var->ctx->streams[var->pkt.stream_index]->time_base, + AV_TIME_BASE_Q); } if (c->seek_timestamp == AV_NOPTS_VALUE) @@ -780,11 +783,9 @@ static int hls_read_seek(AVFormatContext *s, int stream_index, /* Reset reading */ struct variant *var = c->variants[i]; int64_t pos = c->first_timestamp == AV_NOPTS_VALUE ? 0 : - av_rescale_rnd(c->first_timestamp, 1, stream_index >= 0 ? - s->streams[stream_index]->time_base.den : - AV_TIME_BASE, flags & AVSEEK_FLAG_BACKWARD ? - AV_ROUND_DOWN : AV_ROUND_UP); - if (var->input) { + av_rescale_rnd(c->first_timestamp, 1, AV_TIME_BASE, + flags & AVSEEK_FLAG_BACKWARD ? AV_ROUND_DOWN : AV_ROUND_UP); + if (var->input) { ffurl_close(var->input); var->input = NULL; } |