|
@@ -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;
|