[FFmpeg-cvslog] segment: Use the public av_write_header/av_write_trailer functions
Martin Storsjö
git at videolan.org
Fri Oct 5 15:17:21 CEST 2012
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Sun Feb 26 01:31:14 2012 +0200| [73871dc96ff78053b9dcd0eb259b7f5a5308ec87] | committer: Martin Storsjö
segment: Use the public av_write_header/av_write_trailer functions
With this change, the segmenter muxer doesn't rely on anything
not available/supported to libavformat external users, making
the segmenter muxer do things just like a normal segmenter
application using libavformat would do.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=73871dc96ff78053b9dcd0eb259b7f5a5308ec87
---
libavformat/segment.c | 30 +++---------------------------
1 file changed, 3 insertions(+), 27 deletions(-)
diff --git a/libavformat/segment.c b/libavformat/segment.c
index ccd8a91..20adb73 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -62,42 +62,18 @@ static int segment_start(AVFormatContext *s)
&s->interrupt_callback, NULL)) < 0)
return err;
- if (!oc->priv_data && oc->oformat->priv_data_size > 0) {
- oc->priv_data = av_mallocz(oc->oformat->priv_data_size);
- if (!oc->priv_data) {
- avio_close(oc->pb);
- return AVERROR(ENOMEM);
- }
- if (oc->oformat->priv_class) {
- *(const AVClass**)oc->priv_data = oc->oformat->priv_class;
- av_opt_set_defaults(oc->priv_data);
- }
- }
-
- if ((err = oc->oformat->write_header(oc)) < 0) {
- goto fail;
- }
+ if ((err = avformat_write_header(oc, NULL)) < 0)
+ return err;
return 0;
-
-fail:
- avio_close(oc->pb);
- av_freep(&oc->priv_data);
-
- return err;
}
static int segment_end(AVFormatContext *oc)
{
int ret = 0;
- if (oc->oformat->write_trailer)
- ret = oc->oformat->write_trailer(oc);
-
+ av_write_trailer(oc);
avio_close(oc->pb);
- if (oc->oformat->priv_class)
- av_opt_free(oc->priv_data);
- av_freep(&oc->priv_data);
return ret;
}
More information about the ffmpeg-cvslog
mailing list