From patchwork Tue Jun 15 23:32:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28329 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp4311662iol; Tue, 15 Jun 2021 16:35:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwQJ+zF8zaKR2imMxRloBKG73iHry3Nrg4fdwel5WyCcbYt0J9sEww0DDCuf8qGtSjfxtSB X-Received: by 2002:aa7:d158:: with SMTP id r24mr665471edo.171.1623800132189; Tue, 15 Jun 2021 16:35:32 -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 rv24si377696ejb.690.2021.06.15.16.35.31; Tue, 15 Jun 2021 16:35:32 -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=SVCLAnFv; 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 0D37A689A29; Wed, 16 Jun 2021 02:33:31 +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-am6eur05olkn2079.outbound.protection.outlook.com [40.92.91.79]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4EB536899DA for ; Wed, 16 Jun 2021 02:33:26 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nn3UmJ54c17RJDEK+CLUNtcTKaTQYlRa1DKzoSFtbaRnvj+WBgDEIwp8ynAvkfJ4fNTN6pjLjW0vO8PvQHn6G6tjZimbiEnHW9iJyBqgY/nfnHkyXxj3JZD08XTfJZC0qlOekKIrJSV+zo8ZXtwA/edMtOAFX1bBDvFRfDrI4PaTr63ViBIWPvENtb/r4LjNluxywWmhOvbdd6e9KC3/wgD8lxmf3lorZdhe6iaAEe8DUs+lHZW1q/c0kBiY1qB/h+oJxQ98N2bqG4MtesXx6PqrHbZ7URmtX8r+VdmWy23Gs65HeU52tG70PGQYevqvjD1DWykoi08DgGXgMsAwwQ== 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=FKPj4G+eF3fkt4xWY9vCiZuc7vEnbiVG9M7YztGrIak=; b=XkX0PibFAuwKtCDZ7qK1ttwUzTZ2ec5lQggV741BwVz8N8lLJS6h7+HlnJryD3G/bKxkQwBoQ/YaSpQBlgQL2Vp3/jM1sohSaxzrU8ybWxo7gGTaGW0GQzJrnfbuwqEVSyy5q3yQ/kkoFj9YlPIPMZllb+3PMta2ddbH2HqRpNIf0w0ZiZP11eAw5rtYUaFPyiU9Vj0gVKhCSjPU0dRBLqSC0HZRTY5NaWexHcuvEdzdLXZwfciJ5e+PDQiBgx+k11Q67mDZ6Qzbq44aHrOmobJWjhgnGo1LqGKVTweRzDx1XD/E9OP7HdyNVJ6Ae7vYChH3okk9KguozF0uVkuiDA== 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=FKPj4G+eF3fkt4xWY9vCiZuc7vEnbiVG9M7YztGrIak=; b=SVCLAnFv9jkptmgJ5A21uRkrmLMIgCsQoDmjdcTMEo+nl1EmWiz/OI7Ic9sve7X9rjFddRVrla4dUkBc1Ky/hYBintUFibA5za6XhSnaKyuzXKEbmxDa0451bFQSqVtq76Kgf35PdH7dCmNnJDqmnaLxPdITyT6lnSLzPzspISqFqUWNDa7BTsQCj+1kniSH97sDw9E3rq7F2avuoG76x4cBan9jjFCsF9GyioQOQycIAs/ZZekhTcGiFO6vaJUB3azRuH12JTQ9FZq8mNfN9YX1kU5QlmhRRdD2Yu4hfubWj9V6fs/8OrGHuXbitYKy+qpTvKeZZUiArE+hrzUg5g== Received: from DB8EUR05FT045.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::4c) by DB8EUR05HT121.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::154) 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:19 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc0f::46) by DB8EUR05FT045.mail.protection.outlook.com (2a01:111:e400:fc0f::383) 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:19 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:6172F0A23303E7A92B8235AC44F52491322828DF5D8786C109123AA69EC77E43; UpperCasedChecksum:77B8B7DA30154C9CC6A653B85B611EE8DB764619E1D9E8117C076D3DE212B415; SizeAsReceived:7585; Count:48 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:19 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 16 Jun 2021 01:32:02 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [kEIb6h1vcOK8++42pvCC3san1UJb5z20] 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-12-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:19 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: eaed22a2-895a-4f1c-5bc0-08d93055f52c X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR9SlwCHtPrt+MV8TUUwp4p0OETr0+Jrn2aW1jxIgMYUaObSqmwskCosDNop5Tk9ulp1lMTaYQPkFInZvPm5D64+pJsg4rlxgyc4SIZinPikudzzjc56ZcTCZcAnvApxMdeSTo2TqspD5dbb9kLqKtctQC9fuUZ9K4ANI4amc8yW0bxXQoMKD4FtymuLlel52Yi1SCyTY604ARtWjr4ztp8PnB6t4Rt7/MruaBj/xVJsw9bYcF9/Y1KPwTYHke0SjX8ea3/WMb+0Q0hyH7waDw1DquDXFDHZhkI3Mohcbbc9SCpYxnb1nycm5XeQpHkL6OONXXambLnDBkNeIMspNAp4A4bZR9u1PN8PGHTXHsgYdmSf4sg0ipN4t7cykddoFcVQQKUMRLyo5kykkwGXyLWpixHi5u7xR8Nantikf3h/wdAn7mAPVmureikRfA0dkP5R/7sVYseWaILDSCSJ9EmZkMncFVJWud5c7oMHqsyBB3oWOwx586dnvLi7/PF/xpy8sKvP0RoOFD7Jnx/6iFfspll8cfArkAqJw8YXMQy+1zAuqo9NMzcaIxPvr8JqBaGfLoBf5vlFyyE0QfiqwhPQHzBUwjJAKcDJUeHAR9ByzGf5fS7ptfFs/2ZrWkFlt6OJ1Tq9yrdEsEFf2GTiEgHVc4n/9nxTTP2xjnQWU0H1ofEt/n9NwaMfQJ99u7eYRFFe+2nIckLAxkVKy5fevkv80lCGPKQ0cLugSIiAsnj8DfHfH5dya0oz+OFQsfz8OM= X-MS-TrafficTypeDiagnostic: DB8EUR05HT121: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZtcLoZIG+PbjG9yaqp0eUgZ8yxTiBnKRqPx/obGARR9GKwmtb4zBLx5IlpGpBCpx7jAOK4M9kZg9KYoUTvuXSeqd2jSldXg4uXK1PMafLNKH9yHs9sxLh55oK61cgYsG7F0iENdp1Gxuqp4jkjG5dSlExGHzTSeenukBmGxtXN7oIdK/v4oRvT50daXuK3B0k/6ByySUiluhI9aQz3JiRti6r7NnT2x6pXNYXCFfvOv7ArfyRFbZv3VKZye0/1mNghOZLUd2VQJYkQG7vxTCcMl7iODGVsYSs8dae0QjCXmJlG64QlFW4Tf+QcMvXhkE+Aeln9SlWUH3VL410d5IpLGqfcdnkMwUfeNHvEWdDWXmXrGcgg0ffZWFD+0p4NA8oMiZ2CpaPEWJYwD1/bPO4w== X-MS-Exchange-AntiSpam-MessageData: IOm1rOU+OriVgZd41SZoiCiQOwtEtUl4/rVjlPa6kHOVAeukitAnlG3PGpYb6sRrABsCt15ZvHPPVu+S8OOtlnuXvNklAR4cPvFfzsrjoRFWhqaFE0jxvw1gJt6ZCmMDsC1l69Sso2aqVwwnVyDz6w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: eaed22a2-895a-4f1c-5bc0-08d93055f52c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 23:33:19.5743 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT045.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: DB8EUR05HT121 Subject: [FFmpeg-devel] [PATCH 13/54] avformat/dashdec: 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: Xc+wSBo3oiFz by setting the FF_FMT_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavformat/dashdec.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index bc27c96c97..11966f905c 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -2037,8 +2037,6 @@ static int copy_init_section(struct representation *rep_dest, struct representat return 0; } -static int dash_close(AVFormatContext *s); - static void move_metadata(AVStream *st, const char *key, char **value) { if (*value) { @@ -2059,10 +2057,10 @@ static int dash_read_header(AVFormatContext *s) c->interrupt_callback = &s->interrupt_callback; if ((ret = save_avio_options(s)) < 0) - goto fail; + return ret; if ((ret = parse_manifest(s, s->url, s->pb)) < 0) - goto fail; + return ret; /* If this isn't a live stream, fill the total duration of the * stream. */ @@ -2081,12 +2079,12 @@ static int dash_read_header(AVFormatContext *s) if (i > 0 && c->is_init_section_common_video) { ret = copy_init_section(rep, c->videos[0]); if (ret < 0) - goto fail; + return ret; } ret = open_demux_for_component(s, rep); if (ret) - goto fail; + return ret; rep->stream_index = stream_index; ++stream_index; } @@ -2099,12 +2097,12 @@ static int dash_read_header(AVFormatContext *s) if (i > 0 && c->is_init_section_common_audio) { ret = copy_init_section(rep, c->audios[0]); if (ret < 0) - goto fail; + return ret; } ret = open_demux_for_component(s, rep); if (ret) - goto fail; + return ret; rep->stream_index = stream_index; ++stream_index; } @@ -2117,27 +2115,23 @@ static int dash_read_header(AVFormatContext *s) if (i > 0 && c->is_init_section_common_subtitle) { ret = copy_init_section(rep, c->subtitles[0]); if (ret < 0) - goto fail; + return ret; } ret = open_demux_for_component(s, rep); if (ret) - goto fail; + return ret; rep->stream_index = stream_index; ++stream_index; } - if (!stream_index) { - ret = AVERROR_INVALIDDATA; - goto fail; - } + if (!stream_index) + return AVERROR_INVALIDDATA; /* Create a program */ program = av_new_program(s, 0); - if (!program) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!program) + return AVERROR(ENOMEM); for (i = 0; i < c->n_videos; i++) { rep = c->videos[i]; @@ -2165,9 +2159,6 @@ static int dash_read_header(AVFormatContext *s) } return 0; -fail: - dash_close(s); - return ret; } static void recheck_discard_flags(AVFormatContext *s, struct representation **p, int n) @@ -2402,6 +2393,7 @@ const AVInputFormat ff_dash_demuxer = { .long_name = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"), .priv_class = &dash_class, .priv_data_size = sizeof(DASHContext), + .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = dash_probe, .read_header = dash_read_header, .read_packet = dash_read_packet,