From patchwork Tue Jun 15 23:01:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28317 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp4289031iol; Tue, 15 Jun 2021 16:02:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTtLJv3dREj9Sr8hc8E/U16m9RpDNCT9x2mnhC9J2AofkVGzUbl64fUBNoTxtcNVB8vW7b X-Received: by 2002:a17:906:d97:: with SMTP id m23mr1951813eji.392.1623798157291; Tue, 15 Jun 2021 16:02:37 -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 f12si179431edw.443.2021.06.15.16.02.36; Tue, 15 Jun 2021 16:02:37 -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=pJhtW7Pr; 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 56FAE688124; Wed, 16 Jun 2021 02:02:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2052.outbound.protection.outlook.com [40.92.90.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B5810687EBB for ; Wed, 16 Jun 2021 02:02:25 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EomBrZ9hGTw76ZEWBySxR7/w362wvZx4o37kAaNhGqcEOfyTJI5kNAWE1Iijig8d1i1bHA4/h9DDl/MXedZjI1OXzS2du6rYePLjnL2JMwiDN2MGzuvT2bxxQe8YmCYQdfDKNw+twww8DQ2E3Hiv+Z8+Z7F//uJshazTZnAaOC1wrHMAywd7hwofI31JDI1A0uy3M3N34/bj24kR7C+HUcmLl0kPaktbDLueZFzJvQfiKNyVxVNuGF7swby8AUIwTY42V45vxF2kzoe0TECvDlorl4hKDjMxWpuxWqzUMjxfokiak5x+Jkkmhn0jAK9titxTFq078+J+qOc/I6byfw== 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=8khWXV5oDDtp3rHzk/+yYJzbAelwOe55XfF6Fz09a/0=; b=DkISLHWTH2i2Iux8JPOhoZ5l1VuggnWZYTf8yZDGIDLvQJHm5zDAJ1NZUhlYhKGjpGzukIJ2d7EcDFmB8AU0gZZyOf0Bih4xbMnTbtNnaGtKE9+sdwwMo/W7DnIK/l0iu6Ny3wFzTfMKAFv16JoE9dwE9EGjxRwvV7Mjgqj6Njzv4OEem6N4seBxWiVZHfDk4d9XfVqNKCAtVEGyUYuReZATVAsF/CNB/kSCio/vbirK20eiTiGqr/Xn27bmLrNtwPVXTND8cb8+r59/CVlE/QgI+3n4h29lT3bqGN4gvPk1Kzn73pSB4pORhx6oREDHTBcQx3sF/S0XKnMy0Vg2pQ== 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=8khWXV5oDDtp3rHzk/+yYJzbAelwOe55XfF6Fz09a/0=; b=pJhtW7PrlnHh0p/HMdMSqj315DUK5COswTEzoFzWoguDhdsK0MleoNrFYAN9kZyJyVJWDAOHEkYuHtMpGIawlSSmtYbBZyYMDSDNNWzSZp4NDN48FtwvqE5jrdOzmrAoUd7RL2LQ+jEJ7/EE/IF88WlOBhmpFSFplvwRahI1IGsfuFAR2QafQD99FOT0HLVhTbcRhDpz+m9DpOUZh7AA0R8ca6xFvG5XvfuqEIxMC8XCcWn/BsbjknFQrPkuEMMggsNAJHxbf4GNS7lf/OcGnuKF4SY42QWjF3+KhNkpeeHI3XOtmODbjLepa//Mk+RROQo2M4bYNuFxe3ZWe2/X9g== Received: from DB8EUR05FT006.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::51) by DB8EUR05HT248.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::227) 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:02:23 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc0f::4c) by DB8EUR05FT006.mail.protection.outlook.com (2a01:111:e400:fc0f::162) 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:02:23 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:3FD0FFF6308256AF9CADE38EB2DEA6A6FAB5E077C698820DB850A8EC22514E72; UpperCasedChecksum:79FD277A3E34A215A52AC0650A0D54F4CE640A70290C0754CC7F0ADDE143D4E8; SizeAsReceived:7389; Count:46 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:02:22 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 16 Jun 2021 01:01:18 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 X-TMN: [yHgsHmI3rve1J0ARBrlfweeJMFlWZytx] X-ClientProxiedBy: PR2P264CA0043.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::31) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210615230211.1173416-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.97.82) by PR2P264CA0043.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::31) 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:02:22 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 67ac1dd7-9ffc-48e4-50ce-08d93051a251 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU6vmsC8bKdN9dIlRoJ20bm3dTCv2UohWyieMA44hAHSa85/5tXeHYv4iRatLIqXvwIZsxFoNraP/Gef+jjM2EdzecUWpcDIVFXEYsiYB+QpMjQ6YC/tLDuD2nsqOZr5noHVAbmdR2zHolcaCAXcu28eBOQVgdxvcB7bwq+WAuU29t88EJN3dybIlZARUrhVokH5SmkGGNlkNFZpeAuoKZ0ZkowwJZfp6PunEM/RC+YMLkTNyKfYqYJ6/QMZUceLHcqB2UxlSrs400dqIOWyVoMFufaiyHXBusShQUYkKns44gwgS2SJW3I8DNJbEKAkj5R9SuDzMSjzMJT9APmjiEbLTH3QbSCAVKMGkHDV+/cUrbnbafXlA5VrCJE+kBM8x8XwcuvZk/7fL3J6uavjs+SdoXmZVcfEwZKbXpk4sbnKyU1Qd79FrCpBsDRcHTlLawOwGUYNBr/00xy50IusX8wc31QNk9srNfsF6cHwiIsLUsoSq39A5smDkx3pnrbM8NNQ927asymzsG7b4Q1zxuJ9FH+8DSpXAoPQqRsNSbhw4XIRDY8ADEjn6aBRqL9WyczXjTymoiNf3NblnZuhnJnYMK8d+35VkGf3tgVI9GqST5ttQkwzAytYJL0mHf+C1WZemPj6olUkd/3+LAZEH/26u1s1gam3kkm8r/R7v3MSrP5p6o6KGkwkpG2kG7HWb5NgVqKyvCWYSvUz27pbFC9ah2gdoZgLNI= X-MS-TrafficTypeDiagnostic: DB8EUR05HT248: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: emwko9bGExarNczRNRhuEgd3CiNCUQWPcCCLOM+O3lPGn60irW7teT1HXsb2VQb5B012KoSGVN5y7Fj2PriRn3gnygoRJ5ktv2Vfz2XAJo+zyyXypPywUbNw4kztpDLnSX32hlgnw4Uljk4F8nw/31ZLM1QpR8i9fTwncmdsTxs2bCmgWt12L0wS3oaoWVIG/tyND4ViYNG7XNHxnsSuntxNRry7cUzSIVj8QPV1lu0bKTtLty+VJ9J+Q6rNMFGD5oFrk/2h0Fc0icWpmTa5CcuaUJF/otNkZpiN+/fU1riNJnC+nC3ZrjgYnQRlOPhwLzsorWbcSeH8rTXQLQHLVQcag1q/TIz8dzyvd9fFgMn592i0SBUNqUqpYktl5MymYiFXeygLOTRC7VcaMptmug== X-MS-Exchange-AntiSpam-MessageData: ZKfxLApfy+T/oemfcLkJfnQ2Ry99iu83ETXNdEg4GdagSF+NJfOkbo45wuZc6/+YnouN+I3ygX+hrld8Dczm7FzAK1i+kk+sTH3g45XRHo5y8FYeNwh0tWvxjdYg2iFAaxaOZGtKQKO9OPNPEOYwwg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67ac1dd7-9ffc-48e4-50ce-08d93051a251 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 23:02:22.6996 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT006.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: DB8EUR05HT248 Subject: [FFmpeg-devel] [PATCH 01/54] avformat: Add internal flags for AV(In|Out)putFormat 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: iYqcAt09FeHj Both AVInputFormat and AVOutputFormat currently lack an equivalent to AVCodec's caps_internal. E.g. if reading a header fails, each demuxer is currently required to clean up manually, which often means to just call the demuxer's read_close function. This could (and will) be done generically via an equivalent of FF_CODEC_CAP_INIT_CLEANUP. Because of the unholy ABI-relationship between libavdevice and libavformat adding such a flag is only possible when the ABI is open (despite the flag not being part of the public API), such as now. Therefore such a flag is also added to AVOutputFormat, despite there being no immediate use for it. Signed-off-by: Andreas Rheinhardt --- libavformat/avformat.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index cd7b0d941c..81d2ac38d0 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -535,6 +535,11 @@ typedef struct AVOutputFormat { */ int priv_data_size; + /** + * Internal flags. See FF_FMT_FLAG_* in internal.h. + */ + int flags_internal; + int (*write_header)(struct AVFormatContext *); /** * Write a packet. If AVFMT_ALLOW_FLUSH is set in flags, @@ -674,6 +679,11 @@ typedef struct AVInputFormat { */ int priv_data_size; + /** + * Internal flags. See FF_FMT_FLAG_* in internal.h. + */ + int flags_internal; + /** * Tell if a given file has a chance of being parsed as this format. * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes