From patchwork Tue Jun 15 23:32:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28337 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp4313222iol; Tue, 15 Jun 2021 16:37:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxuHPmKqjvTcQPykNelTIhWK8DjXvYRz2jyUjnUxGRfNDXX69Pc4A+5N/QoC/spKQDVLpVD X-Received: by 2002:a17:907:2636:: with SMTP id aq22mr1421529ejc.48.1623800279361; Tue, 15 Jun 2021 16:37:59 -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 ck28si277691edb.315.2021.06.15.16.37.59; Tue, 15 Jun 2021 16:37:59 -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=@outlook.com header.s=selector1 header.b=AjQLFRRY; arc=fail (body hash mismatch); 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 sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 69961689E05; Wed, 16 Jun 2021 02:33:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2013.outbound.protection.outlook.com [40.92.91.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A2D5E680454 for ; Wed, 16 Jun 2021 02:33:56 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EcpOBbgkMEHAus1mCRpHj8RGJaJIx5eWctuxu5xQKS3OvmfX/cwexPxo8/rZlUeRiyBJDjySww9GQBsf/Mq1a8nV0KdU16ysPitRLXAUNud1/cFs0YP/JMOp4o/UPdP/7t/eZBXWL2aj+mxsyNgo5d8nfdzSKV+HzC3GDKL28Eqlg9KzYmCZH6qA9FfmdyTUdGVDlO36eru19ioYM7i418b6kWcMG2lap+rd/+H+1mSf87g2GI0/ZEjH4nmf1Dd/g5qIVAcg5JW/q5kmFGvobpymBkwX9JLmgF/TXeIsIjq7NBckU56MG2ndY15SIMzEAv/ILCNl+AS3OUqEq3HeZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l88/KW70dmBGLhAPLajIGzkMNtYPhI6yDUI2qhWniNE=; b=nwe7kp663Vuy7SpfOgbsr46d+i9rWmd8GWAk1/DyZuADOLafoewl7oJdA41Bq7+/P6huzDqMES4IGiVAnsB5mSxojJ+tDtOxo7PyeLCqKfm8wTzEAAe6DCIyj9SCcUexXAlpe4UKzwMaGo5kCKwOa9vuDP8vHLgaxgqts2GC7UrtyYAtn67jIfejWnMQBzHLC0iRKUMBj0tGDiS5VPnF4IWwJ7wgIUI3b1zQVwvEpfQP+RXih3N1vM7fdlNmKufP0Tfjm4qvNIGKvUoyM4Z4VKOMg0YmPbYNeL/2ZGnCkjh+c4regyx/sMFo9Gf5i/djPONQcSFd/NT9EdQ+stCdsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l88/KW70dmBGLhAPLajIGzkMNtYPhI6yDUI2qhWniNE=; b=AjQLFRRY2SsF7OwcgQIaqns9D5Ew20mLXtqksJZzAvbUomzoqrYpdZ/clAnt6FETts3SdbkMbR5M/X0+gzW1FNisVxHU9SaXxkWc+QgCfJ9Xf4DYJV1HKu/He6PHELytCmLVEgdtCa4Jn589aYmH7j/Mq9n4xljodXnhCXkTLeqyuo4Soz4cOWXxAh/niuBgo55oa5LpKk6tN6cGxpmkZYonSJOSynrL79I/1ia6/BTFLuARwHNqX4YncrmARR97WfaCiW55x0/I0PiZjsR505F2o4u3+7yl9AC4Eq5KX5YjFbaWxnuOFoTLxgtY/d/eY07VPV5dqWDi5cLEXX9UHg== Received: from DB8EUR05FT030.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::4f) by DB8EUR05HT042.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::331) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Tue, 15 Jun 2021 23:33:55 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc0f::40) by DB8EUR05FT030.mail.protection.outlook.com (2a01:111:e400:fc0f::228) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend Transport; Tue, 15 Jun 2021 23:33:54 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:748EDC798CFE220DA88F3D18AC84D379477340B054D16B5FB4D9E39B78A57AC1; UpperCasedChecksum:A640908BE4B9925C125C21F4A7590115B8AF95C93BEBB16610E32E6CFA6A7FA3; SizeAsReceived:7757; Count:50 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb%6]) with mapi id 15.20.4219.025; Tue, 15 Jun 2021 23:33:54 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 16 Jun 2021 01:32:22 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [cPsDS+HywZeFZjhI4halT0qaASOyq043] X-ClientProxiedBy: PR3P189CA0063.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::8) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210615233243.1173928-32-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.97.82) by PR3P189CA0063.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Tue, 15 Jun 2021 23:33:54 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 2144fb1d-be0e-4887-aea3-08d930560a37 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR9SlwCHtPrt+MV8TUUwp4pWhkGqqrkWQI9iFk+2+eJIDJWKWaMe93iaYAQv9ZGrjk1M4WfsoZBaS7wse3fAN1ZCLoPQwWb0DxVzrWd9bWPYp9yKHg9Zqd+Kpx7D/1h6/UYk+P4RhdpYm9DsQUcQILdXALdRCVBTu5M7lEgYmLEkaVcJAagxx+5NQXrGv10yLKiDNOJbHcBKiVDp+ihrvMrfrSX25Yiiv8A1NgSrILs062VO1SMYS5eGfE9u/yaLsLJ2B9k3ind+Lr/CLtEdnkl/ycChGhx38GeoN+Aa4Y86E24cOeySZc1o5wCePiV1gXyfVDAhCIyPei9yk98rktoqFG4/PpDiQj3jNG7SbbhYPu8f5QrXGtjStWabgrqAgBjCVbxaVcKX3LRGdoiqTVCVQKuRjaT0SvbOHLqfjpfaopFvh//qsXIXW2yfCgSGOrauJDqMLyJUiPOLNTZPvWihkB5Yyd7KK2qAioLRkaq6h+mdzTbPL1D7vzxggXHR6sr9Ywb+v081F53nQKtSMn9sE1RUPiO3Q/SG+lvFBtR5rG/9PxB8Y6PCMYXJnnjtzdJml6ugdujH+ocUdobVDjpPww6Wjo5Zn8liB7rxJ95E6D00pmU70D05Gx0PRk+PNJIXQ3HO46VkBe3hf/ijbN9ZfMtHQYWT9tGYxkd471IBtgonvjFP8rEb5tyRQpsHAt2ZQ9karIvJbjKMljAxJvzxzT8aSMVBc1yGikwMi2ZjjRIZBHbl5175htGMcrM0XA= X-MS-TrafficTypeDiagnostic: DB8EUR05HT042: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PgliU+KfueuYLfWZY+aDCw15hkjdwTu/4n+ivp2dgxcCx0NYH5kX//qaFXOKIA69KD83LyUHykrrh/ZBOfJrlB915c4CcWxyM23DejqhTZQbiSgpEPALQ89sJL2Rqre4Qqpfa0nJbyHGwOw50E0su1ofWgw1SRo3VNBAfp3u5fi9MY+A0AumEOj6EVAcojLmdstP7gLkh91lJPyLhh4ccQx6Tw7uuxhU0MHM7yas+idZUEi/bqPMMJFQ6DMRFM7MzPZyPCOZb74NMu1XhCul6FWvGlX4QUf1vW18S9R93wL0LOHu7k64XxIi9WvY5uq1YmydrZ3TPZodAD4Rz9k1BS/z70avGw5Az9dfcZtqwvw1CnnF/c5494TWBhGUffj+xS5yL4I3lOQCuM8OUw1k4A== X-MS-Exchange-AntiSpam-MessageData: kBLjBf4shXu+6eU1ahBkqOba3NWLk3vShYKifY5e76ifktZolLrvPSGeXTvze/2okTVpRGjp84DbaN5xOvpHz4EPxmJoMK7d9/cQevLOZpGxzYIFaChmYa5mylF9qdaG0cRTGIBLI1iB/sCEK9bMhw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2144fb1d-be0e-4887-aea3-08d930560a37 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 23:33:54.8906 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT030.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8EUR05HT042 Subject: [FFmpeg-devel] [PATCH 33/54] avformat/omadec: Simplify cleanup after read_header failure X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: L7wp6qwzYGxv by setting the FF_FMT_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavformat/omadec.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/libavformat/omadec.c b/libavformat/omadec.c index 8891cfc4b6..d2f7408709 100644 --- a/libavformat/omadec.c +++ b/libavformat/omadec.c @@ -449,10 +449,8 @@ static int oma_read_header(AVFormatContext *s) codec_params = AV_RB24(&buf[33]); st = avformat_new_stream(s, NULL); - if (!st) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!st) + return AVERROR(ENOMEM); st->start_time = 0; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; @@ -467,8 +465,7 @@ static int oma_read_header(AVFormatContext *s) samplerate = ff_oma_srate_tab[(codec_params >> 13) & 7] * 100; if (!samplerate) { av_log(s, AV_LOG_ERROR, "Unsupported sample rate\n"); - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } if (samplerate != 44100) avpriv_request_sample(s, "Sample rate %d", samplerate); @@ -486,7 +483,7 @@ static int oma_read_header(AVFormatContext *s) /* fake the ATRAC3 extradata * (wav format, makes stream copy to wav work) */ if ((ret = ff_alloc_extradata(st->codecpar, 14)) < 0) - goto fail; + return ret; edata = st->codecpar->extradata; AV_WL16(&edata[0], 1); // always 1 @@ -503,8 +500,7 @@ static int oma_read_header(AVFormatContext *s) if (!channel_id) { av_log(s, AV_LOG_ERROR, "Invalid ATRAC-X channel id: %"PRIu32"\n", channel_id); - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } st->codecpar->channel_layout = oma_chid_to_native_layout[channel_id - 1]; st->codecpar->channels = oma_chid_to_num_channels[channel_id - 1]; @@ -512,8 +508,7 @@ static int oma_read_header(AVFormatContext *s) samplerate = ff_oma_srate_tab[(codec_params >> 13) & 7] * 100; if (!samplerate) { av_log(s, AV_LOG_ERROR, "Unsupported sample rate\n"); - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } st->codecpar->sample_rate = samplerate; st->codecpar->bit_rate = samplerate * framesize / (2048 / 8); @@ -553,16 +548,12 @@ static int oma_read_header(AVFormatContext *s) break; default: av_log(s, AV_LOG_ERROR, "Unsupported codec %d!\n", buf[32]); - ret = AVERROR(ENOSYS); - goto fail; + return AVERROR(ENOSYS); } st->codecpar->block_align = framesize; return 0; -fail: - oma_read_close(s); - return ret; } static int oma_read_packet(AVFormatContext *s, AVPacket *pkt) @@ -628,6 +619,7 @@ const AVInputFormat ff_oma_demuxer = { .name = "oma", .long_name = NULL_IF_CONFIG_SMALL("Sony OpenMG audio"), .priv_data_size = sizeof(OMAContext), + .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = oma_read_probe, .read_header = oma_read_header, .read_packet = oma_read_packet,