[FFmpeg-devel] [PATCH] lavf/segment: pass the top level chanined muxer format context to segment_end()

Stefano Sabatini stefasab at gmail.com
Fri Jun 29 14:56:09 CEST 2012


Consistent with segment_start() and less confusing.
---
 libavformat/segment.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavformat/segment.c b/libavformat/segment.c
index 19d8855..deac49d 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -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;
-- 
1.7.5.4



More information about the ffmpeg-devel mailing list