Commit 4ad17bc7 authored by Stefano Sabatini's avatar Stefano Sabatini

lavf/segment: move list filename printing logic from segment_end() to segment_start()

Allow to deal with the list file printing only in a single point, thus
simplifying logic, and allow a bit of factorization (no special case
needed when printing the first file name of the list).
parent 71e5a140
...@@ -102,6 +102,18 @@ static int segment_end(AVFormatContext *s) ...@@ -102,6 +102,18 @@ static int segment_end(AVFormatContext *s)
av_log(s, AV_LOG_ERROR, "Failure occurred when ending segment '%s'\n", av_log(s, AV_LOG_ERROR, "Failure occurred when ending segment '%s'\n",
oc->filename); oc->filename);
if (seg->list) {
if (seg->list_size && !(seg->number % seg->list_size)) {
avio_close(seg->pb);
if ((ret = avio_open2(&seg->pb, seg->list, AVIO_FLAG_WRITE,
&s->interrupt_callback, NULL)) < 0)
goto end;
}
avio_printf(seg->pb, "%s\n", oc->filename);
avio_flush(seg->pb);
}
end:
avio_close(oc->pb); avio_close(oc->pb);
if (oc->oformat->priv_class) if (oc->oformat->priv_class)
av_opt_free(oc->priv_data); av_opt_free(oc->priv_data);
...@@ -172,11 +184,6 @@ static int seg_write_header(AVFormatContext *s) ...@@ -172,11 +184,6 @@ static int seg_write_header(AVFormatContext *s)
goto fail; goto fail;
} }
if (seg->list) {
avio_printf(seg->pb, "%s\n", oc->filename);
avio_flush(seg->pb);
}
fail: fail:
if (ret) { if (ret) {
if (oc) { if (oc) {
...@@ -213,17 +220,6 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt) ...@@ -213,17 +220,6 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt)
if (ret) if (ret)
goto fail; goto fail;
if (seg->list) {
avio_printf(seg->pb, "%s\n", oc->filename);
avio_flush(seg->pb);
if (seg->list_size && !(seg->number % seg->list_size)) {
avio_close(seg->pb);
if ((ret = avio_open2(&seg->pb, seg->list, AVIO_FLAG_WRITE,
&s->interrupt_callback, NULL)) < 0)
goto fail;
}
}
} }
ret = oc->oformat->write_packet(oc, pkt); ret = oc->oformat->write_packet(oc, pkt);
......
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