From patchwork Sat Sep 10 04:37:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodger Combs X-Patchwork-Id: 512 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp631885vsd; Fri, 9 Sep 2016 21:38:57 -0700 (PDT) X-Received: by 10.194.200.36 with SMTP id jp4mr6734775wjc.26.1473482337036; Fri, 09 Sep 2016 21:38:57 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id py14si5926721wjb.249.2016.09.09.21.38.52; Fri, 09 Sep 2016 21:38:57 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 53A4A689ED5; Sat, 10 Sep 2016 07:38:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi0-f67.google.com (mail-oi0-f67.google.com [209.85.218.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2FE4A689E8C for ; Sat, 10 Sep 2016 07:37:55 +0300 (EEST) Received: by mail-oi0-f67.google.com with SMTP id a144so5164672oii.1 for ; Fri, 09 Sep 2016 21:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=3RAW+AdFAAP8YxUoKH8A41rVn5eXOeAhGJBo1k6mTDY=; b=mHDVQvuqiOzPnUmQMjjPkL9ZkA77aO5+3E5S3SUcZ+SikXSNJ8OY1XSZPZVyegoC6J Ic+z8ICUH1Sptl2dWldmI8rRIwFrOTpAD0y7zt2flAaxoVP9Ym1C3zWlTftXwumkpiCK V0YApmkOAXAJfnsAJpePF7XiA9l1tdJw+kqKHuSq/mVNBCKsAILFd7gkcp9IV+zc6rRg qvH+ddvRX/co5cV++qNPfBHlvbntbEYydWWHu36CX9FLWwpLaaULwM5JdE5KP/VyL8hQ A2skFCJQgmR0Q+zIwjte1yfA06njb3m8ji94smim0scvOGMejJoqDQMlu+JZyzMtOerd SYOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=3RAW+AdFAAP8YxUoKH8A41rVn5eXOeAhGJBo1k6mTDY=; b=Sxxj4MCPNldFxibmdoBVozTRJtu3tjZWUL2L/ZlSiefiOsI4KrXXANtfTLEfgAheQi RbIUt6W/LCt4d/wPsAKmnvgqdLLS4mGUU/r2aCUZ1Ef3zcg97pDKP6X1jW4lF2kdM8Gh KwPnro8AFWTr8aePuERKdW9rmaGz3nvUxvbLUkeePYhVjGJ0tCiCyYcXx+5aY059s+M5 V2mAjxvkmZ4YBLQWLxO3yAzzmgPe0EsQdr96nD9gxJmy+jMfSek3psuay2/D4TBLeOMP cCph50CXgo/NwCwuEHP+kRN5yITsltj7zyACljmmXH08mpcaTeyHr7ZaeBWpojsVQgrC nkHg== X-Gm-Message-State: AE9vXwOF03h0wtiW1lgLoeoX/3ZLM+1PyH2/KBo+yhKf5sBdQsjK1Y5HoXxFrr5jeCyZwg== X-Received: by 10.202.223.215 with SMTP id w206mr11392075oig.78.1473482284732; Fri, 09 Sep 2016 21:38:04 -0700 (PDT) Received: from Rodgers-MacBook-Pro.local.net (c-73-209-137-129.hsd1.il.comcast.net. [73.209.137.129]) by smtp.gmail.com with ESMTPSA id s185sm3616106ita.21.2016.09.09.21.38.04 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 09 Sep 2016 21:38:04 -0700 (PDT) From: Rodger Combs To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Sep 2016 23:37:20 -0500 Message-Id: <20160910043725.98484-6-rodger.combs@gmail.com> X-Mailer: git-send-email 2.10.0 In-Reply-To: <20160910043725.98484-1-rodger.combs@gmail.com> References: <20160910043725.98484-1-rodger.combs@gmail.com> Subject: [FFmpeg-devel] [PATCH 06/11] lavf/dashenc: add deinit function X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavformat/dashenc.c | 51 +++++++++++++++++---------------------------------- 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 519f9c4..0848052 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -580,16 +580,12 @@ static int dash_write_header(AVFormatContext *s) *ptr = '\0'; oformat = av_guess_format("mp4", NULL, NULL); - if (!oformat) { - ret = AVERROR_MUXER_NOT_FOUND; - goto fail; - } + if (!oformat) + return AVERROR_MUXER_NOT_FOUND; c->streams = av_mallocz(sizeof(*c->streams) * s->nb_streams); - if (!c->streams) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!c->streams) + return AVERROR(ENOMEM); for (i = 0; i < s->nb_streams; i++) { OutputStream *os = &c->streams[i]; @@ -606,17 +602,13 @@ static int dash_write_header(AVFormatContext *s) int level = s->strict_std_compliance >= FF_COMPLIANCE_STRICT ? AV_LOG_ERROR : AV_LOG_WARNING; av_log(s, level, "No bit rate set for stream %d\n", i); - if (s->strict_std_compliance >= FF_COMPLIANCE_STRICT) { - ret = AVERROR(EINVAL); - goto fail; - } + if (s->strict_std_compliance >= FF_COMPLIANCE_STRICT) + return AVERROR(EINVAL); } ctx = avformat_alloc_context(); - if (!ctx) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!ctx) + return AVERROR(ENOMEM); os->ctx = ctx; ctx->oformat = oformat; ctx->interrupt_callback = s->interrupt_callback; @@ -624,10 +616,8 @@ static int dash_write_header(AVFormatContext *s) ctx->io_close = s->io_close; ctx->io_open = s->io_open; - if (!(st = avformat_new_stream(ctx, NULL))) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!(st = avformat_new_stream(ctx, NULL))) + return AVERROR(ENOMEM); avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar); st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio; st->time_base = s->streams[i]->time_base; @@ -635,10 +625,8 @@ static int dash_write_header(AVFormatContext *s) ctx->flags = s->flags; ctx->pb = avio_alloc_context(os->iobuf, sizeof(os->iobuf), AVIO_FLAG_WRITE, os, NULL, dash_write, NULL); - if (!ctx->pb) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!ctx->pb) + return AVERROR(ENOMEM); if (c->single_file) { if (c->single_file_name) @@ -651,13 +639,12 @@ static int dash_write_header(AVFormatContext *s) snprintf(filename, sizeof(filename), "%s%s", c->dirname, os->initfile); ret = s->io_open(s, &os->out, filename, AVIO_FLAG_WRITE, NULL); if (ret < 0) - goto fail; + return ret; os->init_start_pos = 0; av_dict_set(&opts, "movflags", "frag_custom+dash+delay_moov", 0); - if ((ret = avformat_write_header(ctx, &opts)) < 0) { - goto fail; - } + if ((ret = avformat_write_header(ctx, &opts)) < 0) + return ret; os->ctx_inited = 1; avio_flush(ctx->pb); av_dict_free(&opts); @@ -693,15 +680,11 @@ static int dash_write_header(AVFormatContext *s) if (!c->has_video && c->min_seg_duration <= 0) { av_log(s, AV_LOG_WARNING, "no video stream and no min seg duration set\n"); - ret = AVERROR(EINVAL); + return AVERROR(EINVAL); } ret = write_manifest(s, 0); if (!ret) av_log(s, AV_LOG_VERBOSE, "Manifest written to: %s\n", s->filename); - -fail: - if (ret) - dash_free(s); return ret; } @@ -992,7 +975,6 @@ static int dash_write_trailer(AVFormatContext *s) unlink(s->filename); } - dash_free(s); return 0; } @@ -1029,6 +1011,7 @@ AVOutputFormat ff_dash_muxer = { .write_header = dash_write_header, .write_packet = dash_write_packet, .write_trailer = dash_write_trailer, + .deinit = dash_free, .codec_tag = (const AVCodecTag* const []){ ff_mp4_obj_type, 0 }, .priv_class = &dash_class, };