--- libavformat/dashenc.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 1b74bce060..e4f7843e03 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -144,6 +144,8 @@ typedef struct DASHContext { int ignore_io_errors; int lhls; int master_publish_rate; + int nr_of_streams_to_flush; + int nr_of_streams_flushed; } DASHContext; static struct codec_string { @@ -1079,6 +1081,7 @@ static int dash_init(AVFormatContext *s) char *ptr; char basename[1024]; + c->nr_of_streams_to_flush = 0; if (c->single_file_name) c->single_file = 1; if (c->single_file) @@ -1274,12 +1277,18 @@ static int dash_init(AVFormatContext *s) os->max_pts = AV_NOPTS_VALUE; os->last_dts = AV_NOPTS_VALUE; os->segment_index = 1; + + if (s->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) + c->nr_of_streams_to_flush++; } if (!c->has_video && c->seg_duration <= 0) { av_log(s, AV_LOG_WARNING, "no video stream and no seg duration set\n"); return AVERROR(EINVAL); } + + c->nr_of_streams_flushed = 0; + return 0; } @@ -1565,8 +1574,14 @@ static int dash_flush(AVFormatContext *s, int final, int stream) } } - if (ret >= 0) + if (ret >= 0) { + c->nr_of_streams_flushed++; + if (c->nr_of_streams_flushed != c->nr_of_streams_to_flush) + return ret; + + c->nr_of_streams_flushed = 0; ret = write_manifest(s, final); + } return ret; } -- 2.17.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".