lavf/segment: pass the top level chained muxer format context to segment_end()

Consistent with segment_start() and less confusing.
This commit is contained in:
Stefano Sabatini 2012-01-13 23:24:13 +01:00
parent 91ce7c21f0
commit 3bee286ad2
1 changed files with 6 additions and 4 deletions

View File

@ -89,15 +89,17 @@ fail:
return err;
}
static int segment_end(AVFormatContext *oc)
static int segment_end(AVFormatContext *s)
{
SegmentContext *seg = s->priv_data;
AVFormatContext *oc = seg->avf;
int ret = 0;
if (oc->oformat->write_trailer)
ret = oc->oformat->write_trailer(oc);
if (ret < 0)
av_log(oc, 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);
avio_close(oc->pb);
@ -204,7 +206,7 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt)
av_log(s, AV_LOG_DEBUG, "Next segment starts at %d %"PRId64"\n",
pkt->stream_index, pkt->pts);
ret = segment_end(oc);
ret = segment_end(s);
if (!ret)
ret = segment_start(s);
@ -242,7 +244,7 @@ static int seg_write_trailer(struct AVFormatContext *s)
{
SegmentContext *seg = s->priv_data;
AVFormatContext *oc = seg->avf;
int ret = segment_end(oc);
int ret = segment_end(s);
if (seg->list)
avio_close(seg->pb);
oc->streams = NULL;