From patchwork Wed Mar 20 02:12:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47253 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8ba5:b0:1a3:31a3:7958 with SMTP id m37csp121161pzh; Tue, 19 Mar 2024 19:14:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXpqwPCC9wcQ4fY9vHI/Gl+FOpJZdr1BDzyUoG+exuUySCBtKhSMZGKtCB8zrSruun+HRYNZ1Q4zlDnDqD5uLv+Li4wV7mcBOAt0g== X-Google-Smtp-Source: AGHT+IGK4+KdOW+VoViUaNDo93NO3oQMowkilDsb9T3gk5hDsxffYFupC8+w44FIQ3EcnBRMPUDO X-Received: by 2002:a17:906:5948:b0:a46:bf6a:2a27 with SMTP id g8-20020a170906594800b00a46bf6a2a27mr4980047ejr.40.1710900864187; Tue, 19 Mar 2024 19:14:24 -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 l17-20020a170906795100b00a4645016301si6146232ejo.155.2024.03.19.19.14.23; Tue, 19 Mar 2024 19:14:24 -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=VzoGAd7R; 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 9283268D48F; Wed, 20 Mar 2024 04:14:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03olkn2037.outbound.protection.outlook.com [40.92.59.37]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C707268D464 for ; Wed, 20 Mar 2024 04:14:08 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PO30BGqxcv9yO/wDoQObFNksvl0ItGkafSXWgpeZK2QsCAukZi0Qg8e8Ia6QN0VdV2/ny6pqsmcD8yWAGN8j956n6Mr5CW51nk10ENoqfO7KJPIfLZiw2YDp/NF0VgeHZzoPjmvaWKWwEUMJ3gedDyKOB1T8jK67w2wSKlYIQQVWnZRMsw2jwsKvrDWZdmVrQMPWDXJJ8ILlL++Qn3ExDr8qfjAstNg41mFfhIfmy0x7dczHwJxAQA3Rpe78dX43dg1sTg5hK1W2laZVBLtkw/CDf/wANqzijCShSNZf9W7K19w+9gRsK1M7PfsHTukxQl8RMSwF6UT7gTcRR9w2iA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d962hRGydD8JVj1o3sbanfijMWu8kcCRLUhiz9DpUKc=; b=D41j8f5xPJhNkOJ2VyKupFNH8AKpD0DpgjVtYk/SbBbqdy+ngHI5RFaGcNTYdvd3l+9RoZAAIsDrDV0BUCel4qrb9TzPXx4xhV98sLBVMXwbhXdu4zXopTB38+hb6Xhr6c6SGONIgmnm1dMPn4lVUx7kxn7i0NADeov0LznPJf//G4LUJkwMLg29fGJ8H9Re1ePk2buRC3RSUsqCQSlrO58wPUA/NXtQeK3n4fCBAg3fsHhexdS8xrF4bUq9FnC0tMq7QoSk8yKolMF7VNhushNlsp2OhbCfP0tKmNfegJ1040/NY4Fee07hmKFKCfsHcjhWhU9muWJJJ8y+rRRKnw== 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=d962hRGydD8JVj1o3sbanfijMWu8kcCRLUhiz9DpUKc=; b=VzoGAd7RA3KCBtR9K2t1mnmpBg/XVoK3c620smewCWu2IJKJo9wvqTzYo5amtrezIKGG1Br13M1HQbLjp+BTlPMSKeKXeSAL4lef1PFIMMOBjm2AuzFltEoHUR2GanuBf9fzm1yrRJgiTQ6n4jF8tRiBQiPbL23k3a5D8NMAgJm6gQmMTDZWr0PiNRzy5vdyLtTDZXPFkoXK0jiNKnITOf8/3zfTQSe6Bqf76xLke0P7l2SfkBiRv4EMJnzWpwtxjPbzf8gdvoyTTIO7iS3Rgt/+jnwXGFguts6nnVDKxnHJsQri9ZmShZyx3vA/jvyTDjD0Xkgo/3gIHllbsjYHKw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PAXP250MB0543.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:28c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.28; Wed, 20 Mar 2024 02:14:07 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb%7]) with mapi id 15.20.7362.035; Wed, 20 Mar 2024 02:14:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 20 Mar 2024 03:12:52 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [ZAzi6s1AaAal7FIAUT9ZimSR17fCUjuihH6welJcdto=] X-ClientProxiedBy: ZR0P278CA0062.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::13) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240320021256.107338-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PAXP250MB0543:EE_ X-MS-Office365-Filtering-Correlation-Id: 8744dddb-d304-4121-9e60-08dc48836c3a X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpHlru1h1vRfamsRCbuNA5Un6GgEY50+l709eHc5nIX0aJ6iu97RLIGyfl4melpHfUr6fOjilpDQ40LFR7TPH8IOxVgBxiuOSdQQlM4e6E22PqHsHgDKoJPngc2cGVo6FSv1mVfcafONqTYX2CWHSMqaE473NCgM1UsnEdNwxcBE+GecHo9ofCk+2cLk958dqt8RDVjWhrLzqxu6yXo/SANKz1IQX7osSjR59O9Kh4tfkrA0BwdrOmbPiiYOhio/AbpauyBn0WGLKxD2bC+DFWvkkXvvwH+c6cmLgAmaPQucC1tTiNY201eb3eW9m+iQ9ORgEATPzCcitXcNLCHLGTtY1T4Iryg8Idjjx4Iyci87yZ6lKG5um5PhFHePEnCvG1370GPdj+muthdjjT8oXGiyx6JYY+pLbLW6SdN0rSLhzixbhiCrYadFCWbwqhcgGJfIhOJ12AIXCp0mJKnpYt1buFOQYtZlVbDkZG9XdjttWkPjIvUekoF7m4ysdFEFBvpzyBkbHCV51N3C7W0EUISyVJlbDrxQURRkVNQ6GtbxcFn8JQgeZJxVtmZTcoW4W5nIAy83ZQ+mqxtNhf+32yHo1t2oWpvR2WYCvQb4NPA/zR0omTsmfaWd/w7/yUes4kEb+jX6ic/qr7QVFQ8bMWg21dh6HAckX7KRLvZn/3vLpiv1Lfm8u6mj2AxpioQ1/yJ0Yn3Eefto90iowfnUdPVKW07rMp5HrJBhpojzrwxXFhu+/YE80tmBYSYgIT8Tgo= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gJq8Yd5lA5X6wARcIs9UrWZynmMJaRjypCMX79X2FbpA+OMdYb/TC8jcarAD2sAUrjIwVfSw2mcFbCa/ceiX7WwrvBUkbEUkO204ACT8wpRlsskQ3lm6EJmK3BmbCp6tEQR0RMix4S3JkazuyzMyDpMWCtC6XlP6OOH/tnEwMoi0OqNYMuSqDeHC/PufKDpOa6zRn2cZ7+qmSkX3oQmROg5RHHujTgjz0usHwyYT22bZULyj1fJY06kxuhCtCZYzYLkKKDTgX13FcN0BdVpvlMyewr2/l72IGpaaDHLNIWpU+lIEQw+/jklR7le0LUvhl/+uD1uJoLVJkiQjQtG7OhnYEIBSPhWq26i07y3rzcOlc6T8Aioav9sbGs7RWnp/KU9Z4X//08gbFRGfM+ntf4TEObx07V6Kj47Nro2GvUdk1kYr0Ldv1UuktQXfvSaVGSUUn1PeCfSGKjwH+VoQRV+UEYJz17/vR2WwrpJfBvmmGyLoDC8gHLgWRxPaMnVvFI87qOiPw031j84Ul+r4BDL6Buwotk2Ba/0Goik8OjMIHbHeReT/61OFVf6aL4pR28LMSSjxNpUAHTjtZWfOQmuNkBDg5eIZqfdjafcKN3BgwbTTt5T0w+ULiOKEjQQa X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZZwt5FgrIcAGrn6V/7jAoYTOpet5DMH+vGMmKk2gMfXANS9ss1idcmw3Iaefy0w1JFTrxoxEbcDcVHa7CTyR/L47jR37JkIHiZOASeQFCtQodj5rHG0dFjTiIFTwmz6ikOSEKv/TActREV9Ee0MlEMmejuV3Cn8d+KQF2KUIK+WtZ9GVGc9gEC3bC7vGk+Ytquk0IEDe6sUxUPlqH51GKqieuPoQsiabn9suxAcckpEw7lIEMHNc8n+TPVi4HYzLe4Jh81WsipSBkS4+nKHbYWxnDfuYx45gJgT0xGff5Ap1nkNZ3XUOMLwoyPdiUYZe8ionEsTmEpP/y2pv4pDl6drieV2JDfpfByK4k8tF/Hp+uE4oFhIG2f07OAnn0dX1tDoUbtohADR+05PuXfPs2vs30E996TkFlyoiE+5Oay5hq9GGcLEtRA5mlLCDMw5LKpcMKxNYzc0lwoYU/egz15dJhqLosM5TFhnU/vIDNbu392J8vjuilYG4rot55vJkK+0vl/2ZOlFoRmjAPjQBowSf4GW786PeqluoB/cUISt3IF0Vrhh++jnUfId+IK33W8KWSO2s9tp8pISOWzt4bf7lmggj3ckYcT4xDtUMtOZeF9o0f1K4FCQGljIy+RsealQYjIDrtgVfKpdQFG2e85G5+NVhFXJsDvjryZpn6DfksPqtkdSJ8DHdTh6Y34jELLyuMspHWeccjSrBIRKtn4u5NRjXdWcS0axCRekw7+Qjltye5YqOiiOob++gqDoiFEtRkY5KOFN4iceBsYKkYoCHL92Wyg9fOgmNKDJJlQdCGdasz41umYRLa7BhkpuJiYyPyrsiqfSddPY3K5Ghojwx5nDugwWn+NnseNQbfUJZZA+mG4PrB++UOSsk36cibV7JQOAi8ZtydEzKJS1Lj4uazYxo6ZoajSG5EUy8LPAzFhXg4zKI1+XSTdXq9IDi4U4VVrylu6nx5V8pJ4Ce1Z2VNrvQRAPNb79P9P/N5s49oBHnNCfoQHHFn45YsfalbD2fYoMQ5H3lBAUdxIhOnl7mPKbx0i/Yq3/MEzBESrlD2PycCQli5E2JRxPcwN4c7lJwxoiZ6hrbJv3TCxTchltZyRb8+GHUvyV0ekWK2x12GpYyoTD/G3Wyy5hEZV3YiPpA0EkLbq2k3iD00LZ5AsGxrGyfD87gdrDXNcN3XCxt8gQIZs/NtcKmsqIfh3wcpL5YNdXFVFHa/InzHQwhwCAtBNQT1Y6fqzn59oiGAMB+l/B0GCWiWyNXMLNRkF6qIgY6WHdDnnuftHQgh+YilQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8744dddb-d304-4121-9e60-08dc48836c3a X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2024 02:14:07.5454 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXP250MB0543 Subject: [FFmpeg-devel] [PATCH 09/13] avformat: Enforce one-stream limit where appropriate 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: uV/YhcCe9hjG Several muxers (e.g. pcm muxers) did not check the number of streams even though the individual streams were not recoverable from the muxed files. This commit changes this by using the FF_OFMT_MAX_ONE_OF_EACH flag where appropriate. Signed-off-by: Andreas Rheinhardt --- libavformat/a64.c | 3 +++ libavformat/adtsenc.c | 2 ++ libavformat/amr.c | 2 ++ libavformat/amvenc.c | 2 ++ libavformat/bit.c | 2 ++ libavformat/daudenc.c | 2 ++ libavformat/filmstripenc.c | 2 ++ libavformat/fitsenc.c | 2 ++ libavformat/idroqenc.c | 2 ++ libavformat/jacosubenc.c | 3 +++ libavformat/latmenc.c | 2 ++ libavformat/mmf.c | 2 ++ libavformat/omaenc.c | 3 +++ libavformat/pcmenc.c | 2 ++ libavformat/rsoenc.c | 2 ++ libavformat/smjpegenc.c | 6 ++---- libavformat/soxenc.c | 2 ++ libavformat/spdifenc.c | 2 ++ libavformat/vc1testenc.c | 2 ++ 19 files changed, 41 insertions(+), 4 deletions(-) diff --git a/libavformat/a64.c b/libavformat/a64.c index 23b20fc8b7..6e722c7e9f 100644 --- a/libavformat/a64.c +++ b/libavformat/a64.c @@ -65,6 +65,9 @@ const FFOutputFormat ff_a64_muxer = { .p.long_name = NULL_IF_CONFIG_SMALL("a64 - video for Commodore 64"), .p.extensions = "a64, A64", .p.video_codec = AV_CODEC_ID_A64_MULTI, + .p.audio_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = a64_write_header, .write_packet = ff_raw_write_packet, }; diff --git a/libavformat/adtsenc.c b/libavformat/adtsenc.c index c5765cc92e..7eaf91630c 100644 --- a/libavformat/adtsenc.c +++ b/libavformat/adtsenc.c @@ -241,6 +241,8 @@ const FFOutputFormat ff_adts_muxer = { .priv_data_size = sizeof(ADTSContext), .p.audio_codec = AV_CODEC_ID_AAC, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .init = adts_init, .write_header = adts_write_header, .write_packet = adts_write_packet, diff --git a/libavformat/amr.c b/libavformat/amr.c index 1b80810302..0db0a8d26a 100644 --- a/libavformat/amr.c +++ b/libavformat/amr.c @@ -273,7 +273,9 @@ const FFOutputFormat ff_amr_muxer = { .p.extensions = "amr", .p.audio_codec = AV_CODEC_ID_AMR_NB, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, .p.flags = AVFMT_NOTIMESTAMPS, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = amr_write_header, .write_packet = ff_raw_write_packet, }; diff --git a/libavformat/amvenc.c b/libavformat/amvenc.c index e1b1ffd42e..9fcc09add2 100644 --- a/libavformat/amvenc.c +++ b/libavformat/amvenc.c @@ -410,6 +410,8 @@ const FFOutputFormat ff_amv_muxer = { .priv_data_size = sizeof(AMVContext), .p.audio_codec = AV_CODEC_ID_ADPCM_IMA_AMV, .p.video_codec = AV_CODEC_ID_AMV, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .init = amv_init, .deinit = amv_deinit, .write_header = amv_write_header, diff --git a/libavformat/bit.c b/libavformat/bit.c index 8133b1f44d..81a954c392 100644 --- a/libavformat/bit.c +++ b/libavformat/bit.c @@ -167,6 +167,8 @@ const FFOutputFormat ff_bit_muxer = { .p.extensions = "bit", .p.audio_codec = AV_CODEC_ID_G729, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = write_header, .write_packet = write_packet, }; diff --git a/libavformat/daudenc.c b/libavformat/daudenc.c index a995838351..f1e0da058b 100644 --- a/libavformat/daudenc.c +++ b/libavformat/daudenc.c @@ -62,7 +62,9 @@ const FFOutputFormat ff_daud_muxer = { .p.extensions = "302", .p.audio_codec = AV_CODEC_ID_PCM_S24DAUD, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, .p.flags = AVFMT_NOTIMESTAMPS, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .init = daud_init, .write_packet = daud_write_packet, }; diff --git a/libavformat/filmstripenc.c b/libavformat/filmstripenc.c index 9033dba692..b2a4cee8fa 100644 --- a/libavformat/filmstripenc.c +++ b/libavformat/filmstripenc.c @@ -66,6 +66,8 @@ const FFOutputFormat ff_filmstrip_muxer = { .p.extensions = "flm", .p.audio_codec = AV_CODEC_ID_NONE, .p.video_codec = AV_CODEC_ID_RAWVIDEO, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = write_header, .write_packet = ff_raw_write_packet, .write_trailer = write_trailer, diff --git a/libavformat/fitsenc.c b/libavformat/fitsenc.c index 14a4572f70..605056af59 100644 --- a/libavformat/fitsenc.c +++ b/libavformat/fitsenc.c @@ -198,6 +198,8 @@ const FFOutputFormat ff_fits_muxer = { .p.extensions = "fits", .p.audio_codec = AV_CODEC_ID_NONE, .p.video_codec = AV_CODEC_ID_FITS, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .priv_data_size = sizeof(FITSContext), .write_header = fits_write_header, .write_packet = fits_write_packet, diff --git a/libavformat/idroqenc.c b/libavformat/idroqenc.c index 9baf9ad1b1..75a191189c 100644 --- a/libavformat/idroqenc.c +++ b/libavformat/idroqenc.c @@ -66,6 +66,8 @@ const FFOutputFormat ff_roq_muxer = { .p.extensions = "roq", .p.audio_codec = AV_CODEC_ID_ROQ_DPCM, .p.video_codec = AV_CODEC_ID_ROQ, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = roq_write_header, .write_packet = ff_raw_write_packet, }; diff --git a/libavformat/jacosubenc.c b/libavformat/jacosubenc.c index fa0f9fdaa2..a792fda42e 100644 --- a/libavformat/jacosubenc.c +++ b/libavformat/jacosubenc.c @@ -36,7 +36,10 @@ const FFOutputFormat ff_jacosub_muxer = { .p.mime_type = "text/x-jacosub", .p.extensions = "jss,js", .p.flags = AVFMT_TS_NONSTRICT, + .p.video_codec = AV_CODEC_ID_NONE, + .p.audio_codec = AV_CODEC_ID_NONE, .p.subtitle_codec = AV_CODEC_ID_JACOSUB, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = jacosub_write_header, .write_packet = ff_raw_write_packet, }; diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c index 8eec632c54..05004048aa 100644 --- a/libavformat/latmenc.c +++ b/libavformat/latmenc.c @@ -268,6 +268,8 @@ const FFOutputFormat ff_latm_muxer = { .priv_data_size = sizeof(LATMContext), .p.audio_codec = AV_CODEC_ID_AAC, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = latm_write_header, .write_packet = latm_write_packet, .p.priv_class = &latm_muxer_class, diff --git a/libavformat/mmf.c b/libavformat/mmf.c index b3e257616d..fab4509711 100644 --- a/libavformat/mmf.c +++ b/libavformat/mmf.c @@ -319,6 +319,8 @@ const FFOutputFormat ff_mmf_muxer = { .priv_data_size = sizeof(MMFContext), .p.audio_codec = AV_CODEC_ID_ADPCM_YAMAHA, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = mmf_write_header, .write_packet = ff_raw_write_packet, .write_trailer = mmf_write_trailer, diff --git a/libavformat/omaenc.c b/libavformat/omaenc.c index 6d0b47465d..b553bc3e9d 100644 --- a/libavformat/omaenc.c +++ b/libavformat/omaenc.c @@ -97,9 +97,12 @@ const FFOutputFormat ff_oma_muxer = { .p.long_name = NULL_IF_CONFIG_SMALL("Sony OpenMG audio"), .p.mime_type = "audio/x-oma", .p.extensions = "oma", + .p.video_codec = AV_CODEC_ID_NONE, .p.audio_codec = AV_CODEC_ID_ATRAC3, + .p.subtitle_codec = AV_CODEC_ID_NONE, .write_header = oma_write_header, .write_packet = ff_raw_write_packet, .p.codec_tag = ff_oma_codec_tags_list, .p.flags = AVFMT_NOTIMESTAMPS, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, }; diff --git a/libavformat/pcmenc.c b/libavformat/pcmenc.c index 7f71644308..4879f1deed 100644 --- a/libavformat/pcmenc.c +++ b/libavformat/pcmenc.c @@ -33,7 +33,9 @@ const FFOutputFormat ff_pcm_ ## name_ ## _muxer = { \ .p.extensions = ext, \ .p.audio_codec = codec, \ .p.video_codec = AV_CODEC_ID_NONE, \ + .p.subtitle_codec = AV_CODEC_ID_NONE, \ .p.flags = AVFMT_NOTIMESTAMPS, \ + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, \ .write_packet = ff_raw_write_packet, \ }; #define PCMDEF_2(name, long_name, ext, codec, enabled) \ diff --git a/libavformat/rsoenc.c b/libavformat/rsoenc.c index fe22e22812..552fe5816a 100644 --- a/libavformat/rsoenc.c +++ b/libavformat/rsoenc.c @@ -98,6 +98,8 @@ const FFOutputFormat ff_rso_muxer = { .p.extensions = "rso", .p.audio_codec = AV_CODEC_ID_PCM_U8, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = rso_write_header, .write_packet = ff_raw_write_packet, .write_trailer = rso_write_trailer, diff --git a/libavformat/smjpegenc.c b/libavformat/smjpegenc.c index 56907c96f7..5b8f41d76d 100644 --- a/libavformat/smjpegenc.c +++ b/libavformat/smjpegenc.c @@ -39,10 +39,6 @@ static int smjpeg_write_header(AVFormatContext *s) AVIOContext *pb = s->pb; int n, tag; - if (s->nb_streams > 2) { - av_log(s, AV_LOG_ERROR, "more than >2 streams are not supported\n"); - return AVERROR(EINVAL); - } avio_write(pb, SMJPEG_MAGIC, 8); avio_wb32(pb, 0); avio_wb32(pb, 0); @@ -139,6 +135,8 @@ const FFOutputFormat ff_smjpeg_muxer = { .priv_data_size = sizeof(SMJPEGMuxContext), .p.audio_codec = AV_CODEC_ID_PCM_S16LE, .p.video_codec = AV_CODEC_ID_MJPEG, + .p.subtitle_codec = AV_CODEC_ID_NONE, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, .write_header = smjpeg_write_header, .write_packet = smjpeg_write_packet, .write_trailer = smjpeg_write_trailer, diff --git a/libavformat/soxenc.c b/libavformat/soxenc.c index 359835f27b..6217eec043 100644 --- a/libavformat/soxenc.c +++ b/libavformat/soxenc.c @@ -112,8 +112,10 @@ const FFOutputFormat ff_sox_muxer = { .priv_data_size = sizeof(SoXContext), .p.audio_codec = AV_CODEC_ID_PCM_S32LE, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, .write_header = sox_write_header, .write_packet = ff_raw_write_packet, .write_trailer = sox_write_trailer, .p.flags = AVFMT_NOTIMESTAMPS, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, }; diff --git a/libavformat/spdifenc.c b/libavformat/spdifenc.c index a929ad2db3..f97f4d0175 100644 --- a/libavformat/spdifenc.c +++ b/libavformat/spdifenc.c @@ -681,9 +681,11 @@ const FFOutputFormat ff_spdif_muxer = { .priv_data_size = sizeof(IEC61937Context), .p.audio_codec = AV_CODEC_ID_AC3, .p.video_codec = AV_CODEC_ID_NONE, + .p.subtitle_codec = AV_CODEC_ID_NONE, .write_header = spdif_write_header, .write_packet = spdif_write_packet, .deinit = spdif_deinit, .p.flags = AVFMT_NOTIMESTAMPS, .p.priv_class = &spdif_class, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, }; diff --git a/libavformat/vc1testenc.c b/libavformat/vc1testenc.c index 89b916deeb..6b4cbd1152 100644 --- a/libavformat/vc1testenc.c +++ b/libavformat/vc1testenc.c @@ -88,7 +88,9 @@ const FFOutputFormat ff_vc1t_muxer = { .priv_data_size = sizeof(RCVContext), .p.audio_codec = AV_CODEC_ID_NONE, .p.video_codec = AV_CODEC_ID_WMV3, + .p.subtitle_codec = AV_CODEC_ID_NONE, .write_header = vc1test_write_header, .write_packet = vc1test_write_packet, .write_trailer = vc1test_write_trailer, + .flags_internal = FF_OFMT_FLAG_MAX_ONE_OF_EACH, };