From 73871dc96ff78053b9dcd0eb259b7f5a5308ec87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Sun, 26 Feb 2012 01:31:14 +0200 Subject: [PATCH] segment: Use the public av_write_header/av_write_trailer functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ö --- libavformat/segment.c | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/libavformat/segment.c b/libavformat/segment.c index ccd8a91e41..20adb73d24 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; }