Merge commit 'e519dcd937c7c98815ba9884867590e302272016'

* commit 'e519dcd937c7c98815ba9884867590e302272016':
  dashenc: separate segments based on current segment duration

Merged-by: Clément Bœsch <u@pkh.me>
This commit is contained in:
Clément Bœsch 2017-05-20 16:55:22 +02:00
commit 1a950f32ab

View File

@ -926,7 +926,6 @@ static int dash_write_packet(AVFormatContext *s, AVPacket *pkt)
DASHContext *c = s->priv_data; DASHContext *c = s->priv_data;
AVStream *st = s->streams[pkt->stream_index]; AVStream *st = s->streams[pkt->stream_index];
OutputStream *os = &c->streams[pkt->stream_index]; OutputStream *os = &c->streams[pkt->stream_index];
int64_t seg_end_duration = (os->segment_index) * (int64_t) c->min_seg_duration;
int ret; int ret;
ret = update_stream_extradata(s, os, st->codecpar); ret = update_stream_extradata(s, os, st->codecpar);
@ -956,8 +955,8 @@ static int dash_write_packet(AVFormatContext *s, AVPacket *pkt)
if ((!c->has_video || st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) && if ((!c->has_video || st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) &&
pkt->flags & AV_PKT_FLAG_KEY && os->packets_written && pkt->flags & AV_PKT_FLAG_KEY && os->packets_written &&
av_compare_ts(pkt->pts - os->first_pts, st->time_base, av_compare_ts(pkt->pts - os->start_pts, st->time_base,
seg_end_duration, AV_TIME_BASE_Q) >= 0) { c->min_seg_duration, AV_TIME_BASE_Q) >= 0) {
int64_t prev_duration = c->last_duration; int64_t prev_duration = c->last_duration;
c->last_duration = av_rescale_q(pkt->pts - os->start_pts, c->last_duration = av_rescale_q(pkt->pts - os->start_pts,