Commit 65dcb544 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '9d64f236'

* commit '9d64f236':
  hls: Respect the different stream time bases when comparing dts

Conflicts:
	libavformat/hls.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 2f9e97b3 9d64f236
......@@ -705,21 +705,27 @@ start:
/* Check if this stream still is on an earlier segment number, or
* has the packet with the lowest dts */
if (var->pkt.data) {
if (minvariant < 0 ||
var->cur_seq_no < c->variants[minvariant]->cur_seq_no) {
struct variant *minvar = c->variants[minvariant];
if (minvariant < 0 || var->cur_seq_no < minvar->cur_seq_no) {
minvariant = i;
} else if (var->cur_seq_no == c->variants[minvariant]->cur_seq_no) {
struct variant *minvar = c->variants[minvariant];
int64_t dts = var->pkt.dts;
int64_t mindts = minvar->pkt.dts;
AVStream *st = var->ctx->streams[ var->pkt.stream_index];
AVStream *minst= minvar->ctx->streams[minvar->pkt.stream_index];
} else if (var->cur_seq_no == minvar->cur_seq_no) {
int64_t dts = var->pkt.dts;
int64_t mindts = minvar->pkt.dts;
AVStream *st = var->ctx->streams[var->pkt.stream_index];
AVStream *minst = minvar->ctx->streams[minvar->pkt.stream_index];
if( st->start_time != AV_NOPTS_VALUE) dts -= st->start_time;
if(minst->start_time != AV_NOPTS_VALUE) mindts -= minst->start_time;
if (av_compare_ts(dts, st->time_base, mindts, minst->time_base) < 0)
if (dts == AV_NOPTS_VALUE) {
minvariant = i;
} else if (mindts != AV_NOPTS_VALUE) {
if (st->start_time != AV_NOPTS_VALUE)
dts -= st->start_time;
if (minst->start_time != AV_NOPTS_VALUE)
mindts -= minst->start_time;
if (av_compare_ts(dts, st->time_base,
mindts, minst->time_base) < 0)
minvariant = i;
}
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment