summaryrefslogtreecommitdiff
path: root/libavformat/hls.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-07-30 10:03:02 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-07-30 10:03:02 +0200
commit5a270296cb014de3bf8d12aece0bdd7cecad5318 (patch)
tree1ca325405258c53f6d2b3de88829ee95f1d0970a /libavformat/hls.c
parent947f2d4d34f29a8bc51fd4a97718b1c163d7a55d (diff)
parente1d5b244761cf69db655ad7ece1dbf2c13dd4fce (diff)
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/hls.c')
-rw-r--r--libavformat/hls.c15
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;
}