From patchwork Fri Aug 20 08:06:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29629 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1032154iov; Fri, 20 Aug 2021 01:07:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzRu41DjWCB2bXUZCjFVwGt/ic/6WO7DQSTTu/taMJidnqTu/yRMurPFxl2rEn7fH29J7/i X-Received: by 2002:a17:906:89a3:: with SMTP id gg35mr20574361ejc.476.1629446825476; Fri, 20 Aug 2021 01:07:05 -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 a6si415573edy.88.2021.08.20.01.07.04; Fri, 20 Aug 2021 01:07:05 -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=Lwrosz81; 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 91510689F94; Fri, 20 Aug 2021 11:07:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067013.outbound.protection.outlook.com [40.92.67.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EAD69687F3D for ; Fri, 20 Aug 2021 11:06:53 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BXHSnLAvDWUwP5+5gCITcD2quG68IdnWIgDY3lQGBFApFIZUbUiBHfbB6h6106qe7FLdB91SH2xGOYVA1+Pc8FLFII1rm6pgQbR2xqn/miPM3C4GS9kMDKnSlp1J2Ye1UnN+DeZeJYrH1LtXkzzowY1XALm9qqmPwkvgf2Cy0lcZ4xt0pb2AMvDr9pIJ/JpaAj1XpRWd9+L9ZAp1tLB35Dz5St3r6TEIb/K1h5iOVB8A06NPVhbeOT5jrBSSTxbEHwlIDs75YMHDJwTLCQe3Fe+Ms7fAWlbgLgNXCc8oWrurcX4Ua8aCt33cvm9GReM4l26LlXTmL7UrayEmAjewwQ== 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=nElY99UsjTx52BaLQNP76+Ft4B6Rhsx5AugWl6MYzf0=; b=GVVoBJX6aTShCU62RJmBnVv0N0gJJVYpzB4MxfrGErbJWM1O4/baFuTZGDnnRdzqSSNFlEI/Y3ySYXx3x6vBhhgk8+fRTEuZ5tAlJIOQID/q1Kiw7ZJnC8bEpFWLT+SFjmVR6OorJjlAge50XI4Pz4s74eZuP2XwQpVCBEgC76fwW7elHvKq1y96e+/Ws1cCXM3wfxwN9/1uaXCDQGgchRLry602PfcQbCd6NNw6Hpl7I0DuYjT1rpHgZxVRTYPlYwOk9/rZQ9gA5JKg3coGG2VgQswEsw6ZnhuMvXy1uqRXBs+Zig+uacX6TYN4LJzzm0FnZnMXLalv3r4WPhYf3Q== 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=nElY99UsjTx52BaLQNP76+Ft4B6Rhsx5AugWl6MYzf0=; b=Lwrosz81p0//Y5eTpAQQzC5lzLLTREbHFM1yCWn/POt8kRIwzrkh1Ayq7aoxEyEXhWXqFFB7IeDFRbXSmumgysnexG7dK+hXhZouDUMmeTYsPIS4nzmBtNW/npN+SDoFPqEIBy0qIWd9+o7rVYqgqrRBOs6fUVzcJOrZ50L5aiLhkeGtYKpZBQYgLJQeYYANUs7bSeUrLRMwS4FQuSj0zwAi+aIZH2YoXpV35DSNwolE4aguyOathNzD0xYogECWxgzSLJpNNLTlkFI3NZd3E8EO7UAQIx6nv7dk2rq4uIb8GeZlmV5svYDvrbq2cEVuC6qAlOMJrbvQWrJ5ZG+rwg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB7351.eurprd03.prod.outlook.com (2603:10a6:20b:2eb::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Fri, 20 Aug 2021 08:06:51 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d%3]) with mapi id 15.20.4436.019; Fri, 20 Aug 2021 08:06:51 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Aug 2021 10:06:37 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [t4ZyUF5mXTXEzNxJqH1ToYoc/oHIi1Se] X-ClientProxiedBy: AM0PR03CA0031.eurprd03.prod.outlook.com (2603:10a6:208:14::44) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210820080640.448071-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM0PR03CA0031.eurprd03.prod.outlook.com (2603:10a6:208:14::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Fri, 20 Aug 2021 08:06:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 927a3f9b-79b2-4608-3e1b-08d963b17786 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR+Na9ab5G77V3+FQhuTKDCnm5Ab1Oz4BcIndHAvhjsjroWkQgpWiDe0Rao6TtWqXxF7OY4Gmi/yKJte/6zFI9pFXkig0f/UeXzbNEjEuTwLaWgyUp93RMuTcv0RXB2HXTBt5JLNKq18ygDFJW3COXU6hFoAr9QrqDQwGmN0B6+DsE7w5GgZP6KViIQZt5z9s3s6+GbbRMEKgRpnbVZoZ4CE7G9EYQnhvdB24atplzzV1BKjTW0bvhqy2tDak6YtTQmFLhlUbQ/6Xli6q7DsWFSeUvFvbYLPEk3VIcNC0Ji+KghkgQnEHYNqM7mVW+a0TfcP/3QyUVK4APvor7+j263kcHdP1o8iXYhoo62p28yw7b17LfSbkkT0ha0S/4DEuGw9gZPLiJmOsR+gbgXqc1xulw4Lurk6ACaIiV8s5r5rtbrSO+esyCVMu01lH+OTgtuhUWDepBxYmo5Idbqat6NykjLokUj2PObVBVvlE39OMZBaObPJsw12hmNv/zijyxeIWtK5pmkyIlwwPbVaXYPtGxY+6vg5+kpIYmEPz6H7YLf8cZiRh1ik6XXCIGGcPYwTaekqUAfab0zquR5ZW8oll+3yjJWsn0+w4sGTV/hrcRWwynzdHmlIUwYvbW0dWqhxlKOftjNmhFlZuv2dr2VRdRFnuwSRqnPq/Ty3XOL29MdFwz0yIZ4m7PxZaLW8HwYj+7xNaz76WYVX35tD/gr7jC7d/6Y2L3ogI2oqXqk9hTy6pGzn2WcMmt/rbstwPg= X-MS-TrafficTypeDiagnostic: AS8PR03MB7351: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dDLijnG9X0jRojqycQV5OzrJL6c+WXwHd8K+1qSUtXs10N+f65OVteDqE7v97VmhaUbxWxQSPaRPtUxwg3sWlCE/h0vL5+FTAzidfRkwL/lISb8WgyR72DTb7fZ7Z76/rRsN+P9n7KHIrfzWEFqYs5GUOd2WY+6CahesO5+fyWppocLIkYvFd60oGN504Sap/HgNP8Kejine13gw6PVSdCSVy/yPgGSBErvo3xeFQXszGjCLfkoJQKAqUARNFDLAYd/i0dzTmJv/76481+Af1vsWLl2Fb4Td+AQoW2Z1Luesjw0IgsfjhELGRkViu6r7jpou9PC/PcIKRyj5t4TIri3+eRMGQngLUqX3WA/OHAM1TOnALuA7G2j+XnP5Re6sKEJiXddim1vZT0zQxh2A3o5oHzVmYK+B5hMpMzyMSwzRMogadttcAALLSeHZxH48 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9qgAXEcDjr/n9wymPwZoYMX1bt3GlBHpai6vz7/ibLmVxwfHomhe2jWWeypD5Ohf/+e+hjnqdVI3ofyXC82LfPrpXVrYh5CQ+bjTs0Qaht83mPzMVHVmZlxg0wR2qEeI6f0O1i89/8YmyG/WTT4zOA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 927a3f9b-79b2-4608-3e1b-08d963b17786 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2021 08:06:51.8509 (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: AS8PR03MB7351 Subject: [FFmpeg-devel] [PATCH 1/4] avformat/matroskaenc: Allow to set multiple streams as default 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: QuV3+i0YHbIe The Matroska specifications have evolved and now allow to mark multiple tracks of the same kind as default (whether this was legal or not before was dubious; e.g. mkvmerge disallowed it). Yet when the Matroska muxer is set to infer default dispositions if absent, it also enforced the now outdated restriction. So update this. Signed-off-by: Andreas Rheinhardt --- doc/muxers.texi | 12 ++++++------ libavformat/matroskaenc.c | 16 ++++++---------- tests/ref/fate/matroska-flac-extradata-update | 4 ++-- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index 0972bbfd5c..0f8efabab9 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -1567,12 +1567,12 @@ It influences which tracks players should play by default. The default mode is @samp{infer}. @table @samp @item infer -In this mode, for each type of track (audio, video or subtitle), if there is -a track with disposition default of this type, then the first such track -(i.e. the one with the lowest index) will be marked as default; if no such -track exists, the first track of this type will be marked as default instead -(if existing). This ensures that the default flag is set in a sensible way even -if the input originated from containers that lack the concept of default tracks. +Every track with disposition default will have the FlagDefault set. +Additionally, for each type of track (audio, video or subtitle), if no track +with disposition default of this type exists, then the first track of this type +will be marked as default (if existing). This ensures that the default flag +is set in a sensible way even if the input originated from containers that +lack the concept of default tracks. @item infer_no_subs This mode is the same as infer except that if no subtitle track with disposition default exists, no subtitle track will be marked as default. diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 899a3388cd..e2d9159e2c 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1395,7 +1395,8 @@ static int mkv_write_tracks(AVFormatContext *s) { MatroskaMuxContext *mkv = s->priv_data; AVIOContext *pb = s->pb; - int i, ret, video_default_idx, audio_default_idx, subtitle_default_idx; + int video_default_idx = -1, audio_default_idx = -1, subtitle_default_idx = -1; + int i, ret; if (mkv->nb_attachments == s->nb_streams) return 0; @@ -1405,11 +1406,7 @@ static int mkv_write_tracks(AVFormatContext *s) return ret; if (mkv->default_mode != DEFAULT_MODE_PASSTHROUGH) { - int video_idx, audio_idx, subtitle_idx; - - video_idx = video_default_idx = - audio_idx = audio_default_idx = - subtitle_idx = subtitle_default_idx = -1; + int video_idx = -1, audio_idx = -1, subtitle_idx = -1; for (i = s->nb_streams - 1; i >= 0; i--) { AVStream *st = s->streams[i]; @@ -1435,8 +1432,7 @@ static int mkv_write_tracks(AVFormatContext *s) } for (i = 0; i < s->nb_streams; i++) { AVStream *st = s->streams[i]; - int is_default = mkv->default_mode == DEFAULT_MODE_PASSTHROUGH ? - st->disposition & AV_DISPOSITION_DEFAULT : + int is_default = st->disposition & AV_DISPOSITION_DEFAULT || i == video_default_idx || i == audio_default_idx || i == subtitle_default_idx; ret = mkv_write_track(s, mkv, st, &mkv->tracks[i], @@ -2823,8 +2819,8 @@ static const AVOption options[] = { { "flipped_raw_rgb", "Raw RGB bitmaps in VFW mode are stored bottom-up", OFFSET(flipped_raw_rgb), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS }, { "write_crc32", "write a CRC32 element inside every Level 1 element", OFFSET(write_crc), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, FLAGS }, { "default_mode", "Controls how a track's FlagDefault is inferred", OFFSET(default_mode), AV_OPT_TYPE_INT, { .i64 = DEFAULT_MODE_INFER }, DEFAULT_MODE_INFER, DEFAULT_MODE_PASSTHROUGH, FLAGS, "default_mode" }, - { "infer", "For each track type, mark the first track of disposition default as default; if none exists, mark the first track as default.", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_INFER }, 0, 0, FLAGS, "default_mode" }, - { "infer_no_subs", "For each track type, mark the first track of disposition default as default; for audio and video: if none exists, mark the first track as default.", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_INFER_NO_SUBS }, 0, 0, FLAGS, "default_mode" }, + { "infer", "For each track type, mark each track of disposition default as default; if none exists, mark the first track as default.", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_INFER }, 0, 0, FLAGS, "default_mode" }, + { "infer_no_subs", "For each track type, mark each track of disposition default as default; for audio and video: if none exists, mark the first track as default.", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_INFER_NO_SUBS }, 0, 0, FLAGS, "default_mode" }, { "passthrough", "Use the disposition flag as-is", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_PASSTHROUGH }, 0, 0, FLAGS, "default_mode" }, { NULL }, }; diff --git a/tests/ref/fate/matroska-flac-extradata-update b/tests/ref/fate/matroska-flac-extradata-update index fb17bfea0b..1a8add7736 100644 --- a/tests/ref/fate/matroska-flac-extradata-update +++ b/tests/ref/fate/matroska-flac-extradata-update @@ -1,5 +1,5 @@ -3c721898cf2cf3e2e6c43ad58952bd2d *tests/data/fate/matroska-flac-extradata-update.matroska -2032 tests/data/fate/matroska-flac-extradata-update.matroska +c2b76d47a9f0e9626a4999bd395cae08 *tests/data/fate/matroska-flac-extradata-update.matroska +2029 tests/data/fate/matroska-flac-extradata-update.matroska #extradata 0: 34, 0x7acb09e7 #extradata 1: 34, 0x7acb09e7 #extradata 2: 34, 0x443402dd From patchwork Fri Aug 20 08:09:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29631 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1033849iov; Fri, 20 Aug 2021 01:09:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzlnXRGtD3HFXAUqZ4q/Z7N6bIEJGm7+N2bhxkpAE3yJ8rmhj3aXKg8P33INeSuL9UPHpAk X-Received: by 2002:aa7:d5c8:: with SMTP id d8mr21052926eds.110.1629446978686; Fri, 20 Aug 2021 01:09:38 -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 z66si6096445ede.4.2021.08.20.01.09.38; Fri, 20 Aug 2021 01:09:38 -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=lz9opq7n; 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 CBFFE68A134; Fri, 20 Aug 2021 11:09:34 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071099.outbound.protection.outlook.com [40.92.71.99]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 18ADD689F94 for ; Fri, 20 Aug 2021 11:09:27 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OkbKOstiUAvXYMOglkTZBOE/NVpXczxl0rKQ9xAn8QjFkxlWRrfkaKQIqQhTzNPfW4/vAtf6NmITxxkQtnsifH7jxb4twQVH/AdVLggWUkf4R/bq/IAxYgz21iJv1stp0wGvrJkp/PsYl5y9WKgbVC15uDUbURr774E7qZlNn+5aWh/Bv227Xnqih1JWIej+3xYOzsvKezWALP2peEMneO672Tp5uXR6kEe6k1j0A65nmqr/Hqqs+zLIwzT/wcI3msYPtzzj+axRAmUbljIDBPj6s7kHYM35zKTsgYqfctTVWhmhxF0mow0QU1dH5D8mKQ9KQVrB7M0ivLJHJR3NVQ== 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=HFIFh6+6Pb8+d8D73dXe+0FdVz1rgHovq2GHlGLZ87A=; b=kAYB7Zy1zW2yk2UYMnvZIlkdb5OCnknuqJEWRqxZ5odQyw3svpcMtoYcTmf58+LdPI+yAjeULNWxi/TyMpUVFNHxuAH0H/vHy0FuN8Qj/1r8k5WeOo/wJYhIkIIL3fAXQZTCFXtYh9IeRMbb5TPnLi6TfaYGxmHpigKe2xWCe11ZAd636/6pAtUB/RgCXuaESxn0z4uU9ps9d61CzJbsIEaWP3DIK47TS726sMfj1H+ztQmbG9DNdeJi+6y7qLmG7GpP14VYBTjrv01wldv93Ab6R8DfGnh/2B4dmaWmkJkFZeOO1UaUqf073K5AtIfclba4cE28+v2BM8Svvzmy8g== 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=HFIFh6+6Pb8+d8D73dXe+0FdVz1rgHovq2GHlGLZ87A=; b=lz9opq7n/8CfVKWdIOwzPM5Ty57mNzazKvqYCj9I8cUNBvyDsJb5t2aM2WhWgNjwsBQRxT8kQWrATEAmKrU8TFSxRrAz8l3j7meKrBKwZV5BcqNrkU66Xv84eQUHffntVB0/0O+GNrQSuAflfQQADp9p9W8RNC7CeCDrToIOUoHo4e9pm0v3Y1q0rpEN9BRGRSC4PlDHrpmxHrc+PMKO5HcBeGbNKp1NZs6w7O2WXYQKicbnJhrnYnSDnAlh4RlyMa9Srq7NKoGtBk4Di5Il5sgY6QpzonfLVwpOn5Q//XxrH1v7B+dcqa6I68wazXBW+HfyK8Xk2PnXiU8VK0BJbg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB6981.eurprd03.prod.outlook.com (2603:10a6:20b:299::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Fri, 20 Aug 2021 08:09:24 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d%3]) with mapi id 15.20.4436.019; Fri, 20 Aug 2021 08:09:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Aug 2021 10:09:15 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [6kP06f2qBcM6YtxO71EL295NVXmb+YVl] X-ClientProxiedBy: AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210820080917.493053-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Fri, 20 Aug 2021 08:09:24 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 31bff48e-e3b7-47bd-e16d-08d963b1d2d0 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR+Na9ab5G77V3+FQhuTKDC+9ecgAyKsvjl+TRvm5mgwD4Ocl9Bp/Ce5HmCqRJEeooKavuYGZymC2dzspJmxnkNeHICdManzQYuN7cKWOTXcyZYUK+mjHuWQIZjhj0XIEag7jiNFLsVY4eUsD/Ek6gfLjeKXlCX+9j9BZ0jfjPjxHNGHH6/WISZg2I2P2Md6vMtV9I1QidCf5jFycW4VhC4jyJfNBF5kF1S4nd8L0CP0y9B1mjfYFzuLZmyRPODEF+3nzjc2QCEaYeAkXzerqPDis38mre2PjjqUstXr5r1cWKGdn42YjqHKc/L/hCC1OUgff1CSx/vAmxLItmT1lfFBqnhSAr6DGcbvZedk8r4glyK6mlWse4bBBZCMhxtkdRKl6NsKHYhXFb9hYV/qENXaYT472/t1hDDLCT0+cVc8ZVkkmWIpcfBF0HUxwGpTwXHWP0y/CmZOsRA7s+Xd/too7Wuulyx1NAGDmH5w97C/yNimeOKDE2QWF+kItM6CbQb3i6bVFKqc1u11zaqI8CD57lV4vUdb1SciKwSdB3Gwo7MpDqeoxKF4dkmP+4VgyljyRssOtD+PLd0w3UPIQLSZs5C4h75VibETbgfOT9vXh3wKiN42BSnR6VE5T14GOjZriLecfHRGiVGmn2K2a2qkxrbxmFjzF4FkjA8GmlRXuh3+iautLtWVavxs37KPYFWBkGmnSuVGIaIQxMtkAc41VvFXW5oO7u50/0hyrS0r3HUEB300NvMjc4QIc06Bt8= X-MS-TrafficTypeDiagnostic: AS8PR03MB6981: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QgSyP7bsMrqMkSL0IXZCXiFm7X/Sw5iQnMRM0PpNCcKnBG6tJRuokesXlJbi4hY6kgFdSeDsvR7aY2Nf1YwhfDCNoqzcOfJaE7+9COUMM2kgmFAHMoANMk9EF1C4jV6RYq0am1a736XiB7ADCE4u5bnumK0FvCdWG2TkhBfFt28ZduFlleprIhem4LuX8K45YpPdyujg5ofD8VGVeRYghuINeKvcwlYa1fGSRGrelN4xyMSTdwyCOQ66f2INlB9ZDutl5TMl9Nu9sF4cS6cltF2/7jSJk+XhlNwlJcS0hV1M4MbV751ntNXNVK/v/AXdFNQzDns1LkDA7TWoHOVpfmUKw6xsX8wADWD5zQzByE1YNmMAFxD99uVV8WcMPspbNVtUbt6BNSiGxCuMYW6a+d11tb8EP2Q0nOiinfVW84s2g/U8rc/lzBeYrsDz9u3S X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cp+3ZWLL+3JbSHpl0e3/oYmRJDPD5tarkwWhxHfk5cuwjBIS5/T9VEMHv3uHJ1HGii0UR3Z3hQlqEwQRkHCH4nc890wh1isdC7CUAPFS3ZmnNqoyINo0EIj9EVHeNmHy5VLSLpMQv4S9u/ubxJW+Eg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31bff48e-e3b7-47bd-e16d-08d963b1d2d0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2021 08:09:24.9082 (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: AS8PR03MB6981 Subject: [FFmpeg-devel] [PATCH 2/4] avformat/matroskaenc: Pass dispositions through unchanged by default 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: IfvzYm7n/FEO Up until now, the Matroska muxer did not use the dispositions it is given as-is; instead it by default overrode the disposition of the first track of a kind (audio, video, subtitles) if no track of this kind has the default disposition set. And up until recently, it also enforced by default that no more than one track of each kind be marked as default. The rationale for the former is that there are lots of containers which lack the concept of default streams, so that it is not uncommon for no stream to be marked as default at all; the rationale for the latter was that up until recently, it was dubious whether the Matroska specification allowed more than one default stream for track type (e.g. mkvmerge disallowed it). It was this point which led to the implementation of the above mentioned behaviour inspired by mkvmerge. Yet the Matroska specifications have changed and now explicitly allow to set more than one track of each type as default, so that the main reason of not using the dispositions as-is was rendered moot. Therefore this commit changes the default to pass the disposition through. The matroska-mpegts-remux FATE-test has been updated to still use the old "infer" mode so that it is still covered by FATE; the matroska-zero-length-block test has also been updated to cover the infer_no_subs mode. The references for lots of other FATE tests needed to be updated because of a newly added FlagDefault element with value zero (whereas a FlagDefault with value 1 needn't be coded at all, as it coincided with the default value of said element). Signed-off-by: Andreas Rheinhardt --- doc/muxers.texi | 2 +- libavformat/matroskaenc.c | 2 +- tests/fate/matroska.mak | 4 +- tests/fate/wavpack.mak | 4 +- tests/ref/fate/aac-autobsf-adtstoasc | 4 +- tests/ref/fate/binsub-mksenc | 2 +- tests/ref/fate/matroska-h264-remux | 4 +- .../fate/matroska-mastering-display-metadata | 4 +- tests/ref/fate/webm-dash-chapters | 4 +- tests/ref/lavf-fate/av1.mkv | 4 +- tests/ref/lavf/mka | 4 +- tests/ref/lavf/mkv | 4 +- tests/ref/lavf/mkv_attachment | 4 +- tests/ref/seek/lavf-mkv | 44 +++++++++---------- 14 files changed, 45 insertions(+), 45 deletions(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index 0f8efabab9..05719c173c 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -1564,7 +1564,7 @@ have no effect if it is not. @item default_mode This option controls how the FlagDefault of the output tracks will be set. It influences which tracks players should play by default. The default mode -is @samp{infer}. +is @samp{passthrough}. @table @samp @item infer Every track with disposition default will have the FlagDefault set. diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index e2d9159e2c..ad8a4698b8 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2818,7 +2818,7 @@ static const AVOption options[] = { { "allow_raw_vfw", "allow RAW VFW mode", OFFSET(allow_raw_vfw), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS }, { "flipped_raw_rgb", "Raw RGB bitmaps in VFW mode are stored bottom-up", OFFSET(flipped_raw_rgb), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS }, { "write_crc32", "write a CRC32 element inside every Level 1 element", OFFSET(write_crc), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, FLAGS }, - { "default_mode", "Controls how a track's FlagDefault is inferred", OFFSET(default_mode), AV_OPT_TYPE_INT, { .i64 = DEFAULT_MODE_INFER }, DEFAULT_MODE_INFER, DEFAULT_MODE_PASSTHROUGH, FLAGS, "default_mode" }, + { "default_mode", "Controls how a track's FlagDefault is inferred", OFFSET(default_mode), AV_OPT_TYPE_INT, { .i64 = DEFAULT_MODE_PASSTHROUGH }, DEFAULT_MODE_INFER, DEFAULT_MODE_PASSTHROUGH, FLAGS, "default_mode" }, { "infer", "For each track type, mark each track of disposition default as default; if none exists, mark the first track as default.", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_INFER }, 0, 0, FLAGS, "default_mode" }, { "infer_no_subs", "For each track type, mark each track of disposition default as default; for audio and video: if none exists, mark the first track as default.", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_INFER_NO_SUBS }, 0, 0, FLAGS, "default_mode" }, { "passthrough", "Use the disposition flag as-is", 0, AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_PASSTHROUGH }, 0, 0, FLAGS, "default_mode" }, diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak index 625b2a4571..e117a0f6a6 100644 --- a/tests/fate/matroska.mak +++ b/tests/fate/matroska.mak @@ -65,7 +65,7 @@ fate-webm-dash-chapters: CMD = transcode ogg $(TARGET_SAMPLES)/vorbis/vorbis_cha # It furthermore tests correct propagation of the description tag. FATE_MATROSKA_FFMPEG_FFPROBE-$(call DEMMUX, MATROSKA, MATROSKA) \ += fate-matroska-zero-length-block -fate-matroska-zero-length-block: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/zero_length_block.mks matroska "-c:s copy -dash 1 -dash_track_number 2000000000 -reserve_index_space 62 -metadata_header_padding 1" "-c:s copy" "" "-show_entries stream_tags=description" +fate-matroska-zero-length-block: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/zero_length_block.mks matroska "-c:s copy -dash 1 -dash_track_number 2000000000 -reserve_index_space 62 -metadata_header_padding 1 -default_mode infer_no_subs" "-c:s copy" "" "-show_entries stream_tags=description" # This test the following features of the Matroska muxer: Writing projection # stream side-data; not setting any track to default if the user requested it; @@ -123,7 +123,7 @@ FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MPEGTS_DEMUXER \ MATROSKA_DEMUXER FRAMECRC_MUXER \ PIPE_PROTOCOL) \ += fate-matroska-mpegts-remux -fate-matroska-mpegts-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/pmtchange.ts matroska "-map 0:2 -map 0:2 -c copy -disposition:a:1 -visual_impaired+hearing_impaired" "-map 0 -c copy" "" "-show_entries stream_disposition:stream=index" +fate-matroska-mpegts-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/pmtchange.ts matroska "-map 0:2 -map 0:2 -c copy -disposition:a:1 -visual_impaired+hearing_impaired -default_mode infer" "-map 0 -c copy" "" "-show_entries stream_disposition:stream=index" FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER) += fate-matroska-spherical-mono fate-matroska-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mkv/spherical.mkv diff --git a/tests/fate/wavpack.mak b/tests/fate/wavpack.mak index 03cd8e4660..8a15e536cc 100644 --- a/tests/fate/wavpack.mak +++ b/tests/fate/wavpack.mak @@ -91,12 +91,12 @@ fate-wavpack-matroskamode: CMD = md5 -i $(TARGET_SAMPLES)/wavpack/special/matros FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-mono fate-wavpack-matroska_mux-mono: CMD = md5pipe -i $(TARGET_SAMPLES)/wavpack/num_channels/mono_16bit_int.wv -c copy -fflags +bitexact -f matroska fate-wavpack-matroska_mux-mono: CMP = oneline -fate-wavpack-matroska_mux-mono: REF = 0a10b6cd4d64c25ced75f52d1c6929a7 +fate-wavpack-matroska_mux-mono: REF = 5863eb94f7583aa9c5fded17474f2e7c FATE_WAVPACK-$(call DEMMUX, WV, MATROSKA) += fate-wavpack-matroska_mux-61 fate-wavpack-matroska_mux-61: CMD = md5pipe -i $(TARGET_SAMPLES)/wavpack/num_channels/eva_2.22_6.1_16bit-partial.wv -c copy -fflags +bitexact -f matroska fate-wavpack-matroska_mux-61: CMP = oneline -fate-wavpack-matroska_mux-61: REF = fee4bb1d6cf2d54f78eddc4483e7c990 +fate-wavpack-matroska_mux-61: REF = 2bbb393d060fa841f1172028f2c69b3a FATE_SAMPLES_AVCONV += $(FATE_WAVPACK-yes) fate-wavpack: $(FATE_WAVPACK-yes) diff --git a/tests/ref/fate/aac-autobsf-adtstoasc b/tests/ref/fate/aac-autobsf-adtstoasc index bfb18aedd2..2a2823ef9a 100644 --- a/tests/ref/fate/aac-autobsf-adtstoasc +++ b/tests/ref/fate/aac-autobsf-adtstoasc @@ -1,5 +1,5 @@ -5088977b7f13181d707a4077771e4552 *tests/data/fate/aac-autobsf-adtstoasc.matroska -6648 tests/data/fate/aac-autobsf-adtstoasc.matroska +224607440d242dad567b8ee2ed3afeac *tests/data/fate/aac-autobsf-adtstoasc.matroska +6651 tests/data/fate/aac-autobsf-adtstoasc.matroska #extradata 0: 2, 0x0030001c #tb 0: 1/1000 #media_type 0: audio diff --git a/tests/ref/fate/binsub-mksenc b/tests/ref/fate/binsub-mksenc index 4740569d9c..184661a3f0 100644 --- a/tests/ref/fate/binsub-mksenc +++ b/tests/ref/fate/binsub-mksenc @@ -1 +1 @@ -5706cf33f9ded660eb404275ec136127 +490b1b4beb4a614c06004609039ce779 diff --git a/tests/ref/fate/matroska-h264-remux b/tests/ref/fate/matroska-h264-remux index 14e6758fa0..b5ecebaf24 100644 --- a/tests/ref/fate/matroska-h264-remux +++ b/tests/ref/fate/matroska-h264-remux @@ -1,5 +1,5 @@ -ded6da7e46ce7df1232b116afb0b2f0a *tests/data/fate/matroska-h264-remux.matroska -2036083 tests/data/fate/matroska-h264-remux.matroska +36fda8942bfed91fed04c5ba63dc8b1a *tests/data/fate/matroska-h264-remux.matroska +2036089 tests/data/fate/matroska-h264-remux.matroska #tb 0: 1/25 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/matroska-mastering-display-metadata b/tests/ref/fate/matroska-mastering-display-metadata index 8f5d7b6a22..627a8c103e 100644 --- a/tests/ref/fate/matroska-mastering-display-metadata +++ b/tests/ref/fate/matroska-mastering-display-metadata @@ -1,5 +1,5 @@ -542ababe5c088ab925ee49373d8b8a85 *tests/data/fate/matroska-mastering-display-metadata.matroska -1669695 tests/data/fate/matroska-mastering-display-metadata.matroska +4f97d718f706e241df9f6c95ac1c721a *tests/data/fate/matroska-mastering-display-metadata.matroska +1669701 tests/data/fate/matroska-mastering-display-metadata.matroska #extradata 0: 4, 0x040901a3 #extradata 3: 200, 0x506463a8 #tb 0: 1/1000 diff --git a/tests/ref/fate/webm-dash-chapters b/tests/ref/fate/webm-dash-chapters index 45368dca85..c04fc6a3ee 100644 --- a/tests/ref/fate/webm-dash-chapters +++ b/tests/ref/fate/webm-dash-chapters @@ -1,5 +1,5 @@ -f94bcae96166ad246a4b76605a4b3874 *tests/data/fate/webm-dash-chapters.webm -111236 tests/data/fate/webm-dash-chapters.webm +c39ad75ef516d1d2e1332d960ad1057b *tests/data/fate/webm-dash-chapters.webm +111239 tests/data/fate/webm-dash-chapters.webm #extradata 0: 3469, 0xc6769ddc #tb 0: 1/1000 #media_type 0: audio diff --git a/tests/ref/lavf-fate/av1.mkv b/tests/ref/lavf-fate/av1.mkv index 2c0c6d31f9..454aef53fb 100644 --- a/tests/ref/lavf-fate/av1.mkv +++ b/tests/ref/lavf-fate/av1.mkv @@ -1,3 +1,3 @@ -77138a0e07ebd1c6ff2f69305e2f5c79 *tests/data/lavf-fate/lavf.av1.mkv -55653 tests/data/lavf-fate/lavf.av1.mkv +61e66b67c0c38532f6c6edc8c9d32e48 *tests/data/lavf-fate/lavf.av1.mkv +55656 tests/data/lavf-fate/lavf.av1.mkv tests/data/lavf-fate/lavf.av1.mkv CRC=0x7c27cc15 diff --git a/tests/ref/lavf/mka b/tests/ref/lavf/mka index e66b418b1d..9c0ec88637 100644 --- a/tests/ref/lavf/mka +++ b/tests/ref/lavf/mka @@ -1,3 +1,3 @@ -ea812a6619f4f0d266bec82fcfa54e78 *tests/data/lavf/lavf.mka -43580 tests/data/lavf/lavf.mka +52d2c70afe0f9ac510819f723b5ceb3b *tests/data/lavf/lavf.mka +43583 tests/data/lavf/lavf.mka tests/data/lavf/lavf.mka CRC=0x3a1da17e diff --git a/tests/ref/lavf/mkv b/tests/ref/lavf/mkv index 0dd4521bc8..6e517efede 100644 --- a/tests/ref/lavf/mkv +++ b/tests/ref/lavf/mkv @@ -1,3 +1,3 @@ -c984a76e996f43943d2fe9eb5f2495e4 *tests/data/lavf/lavf.mkv -320432 tests/data/lavf/lavf.mkv +c1af29ab33c9477049672b62da221552 *tests/data/lavf/lavf.mkv +320438 tests/data/lavf/lavf.mkv tests/data/lavf/lavf.mkv CRC=0xec6c3c68 diff --git a/tests/ref/lavf/mkv_attachment b/tests/ref/lavf/mkv_attachment index e0e1a22d9c..86ba4180cb 100644 --- a/tests/ref/lavf/mkv_attachment +++ b/tests/ref/lavf/mkv_attachment @@ -1,3 +1,3 @@ -8182124c770de9579e6d0d6759d01655 *tests/data/lavf/lavf.mkv_attachment -472587 tests/data/lavf/lavf.mkv_attachment +a669ae1a502ff0c487eee99753e7bef0 *tests/data/lavf/lavf.mkv_attachment +472593 tests/data/lavf/lavf.mkv_attachment tests/data/lavf/lavf.mkv_attachment CRC=0xec6c3c68 diff --git a/tests/ref/seek/lavf-mkv b/tests/ref/seek/lavf-mkv index 8981f1d7b7..fc65b14cd0 100644 --- a/tests/ref/seek/lavf-mkv +++ b/tests/ref/seek/lavf-mkv @@ -1,48 +1,48 @@ -ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 680 size: 208 +ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 686 size: 208 ret: 0 st:-1 flags:0 ts:-1.000000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 896 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 902 size: 27837 ret: 0 st:-1 flags:1 ts: 1.894167 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292312 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292318 size: 27834 ret: 0 st: 0 flags:0 ts: 0.788000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292312 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292318 size: 27834 ret: 0 st: 0 flags:1 ts:-0.317000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 896 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 902 size: 27837 ret:-1 st: 1 flags:0 ts: 2.577000 ret: 0 st: 1 flags:1 ts: 1.471000 -ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320153 size: 209 +ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320159 size: 209 ret: 0 st:-1 flags:0 ts: 0.365002 -ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146864 size: 27925 +ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146870 size: 27925 ret: 0 st:-1 flags:1 ts:-0.740831 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 896 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 902 size: 27837 ret:-1 st: 0 flags:0 ts: 2.153000 ret: 0 st: 0 flags:1 ts: 1.048000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292312 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292318 size: 27834 ret: 0 st: 1 flags:0 ts:-0.058000 -ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 680 size: 208 +ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 686 size: 208 ret: 0 st: 1 flags:1 ts: 2.836000 -ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320153 size: 209 +ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320159 size: 209 ret:-1 st:-1 flags:0 ts: 1.730004 ret: 0 st:-1 flags:1 ts: 0.624171 -ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146864 size: 27925 +ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146870 size: 27925 ret: 0 st: 0 flags:0 ts:-0.482000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 896 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 902 size: 27837 ret: 0 st: 0 flags:1 ts: 2.413000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292312 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292318 size: 27834 ret:-1 st: 1 flags:0 ts: 1.307000 ret: 0 st: 1 flags:1 ts: 0.201000 -ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 680 size: 208 +ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 686 size: 208 ret: 0 st:-1 flags:0 ts:-0.904994 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 896 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 902 size: 27837 ret: 0 st:-1 flags:1 ts: 1.989173 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292312 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292318 size: 27834 ret: 0 st: 0 flags:0 ts: 0.883000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292312 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292318 size: 27834 ret: 0 st: 0 flags:1 ts:-0.222000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 896 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 902 size: 27837 ret:-1 st: 1 flags:0 ts: 2.672000 ret: 0 st: 1 flags:1 ts: 1.566000 -ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320153 size: 209 +ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320159 size: 209 ret: 0 st:-1 flags:0 ts: 0.460008 -ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146864 size: 27925 +ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146870 size: 27925 ret: 0 st:-1 flags:1 ts:-0.645825 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 896 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 902 size: 27837 From patchwork Fri Aug 20 08:09:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29630 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1034072iov; Fri, 20 Aug 2021 01:09:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxyLshOe8IxAQjM9lxAnuN7CQANh4z6SZuYDqg71iBHyFkgZ7BwUn6Rj8rPQU2qN829tYdz X-Received: by 2002:a05:6402:d7:: with SMTP id i23mr20976865edu.291.1629446997834; Fri, 20 Aug 2021 01:09: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 ar23si7869051ejc.434.2021.08.20.01.09.57; Fri, 20 Aug 2021 01:09: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=@outlook.com header.s=selector1 header.b=IpZjW6KV; 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 E5F7668A33F; Fri, 20 Aug 2021 11:09:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071030.outbound.protection.outlook.com [40.92.71.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A093968A10A for ; Fri, 20 Aug 2021 11:09:39 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FG5tSeM6m+75Mru44GqDH1ESyZUxowagOi8CJAXJMpyzk7sqFTFb6XmAQ7DEdfzhlqoLdUznQGjbCMea84s2iJloNwouau5EH6OWmbIAs1XtoebnZ3Ug7UkumneAiv4on/U9yCEe+2hB23xiCm1Z76wJZ5rVQo2xplwu7fhnRWCN824SQc1SVgY+np8w32/W6haHfmiG3+Qj1nzto42RFIBjyTfJ1udPYWvmeWg9nTlJWLz0C/y6k+0gVB8J88P7KHe+6GSPNyg9PZB0+VBdegaWVOmXm+160iOYhDzYLfKzOp+MvEm7scKJadzv6qU6Xf4cUzSToylF/FpIj87ydw== 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=+PX4LpTtz/Ff9vwxOQ7D89SLQmcNoO88wfxPumEm2MU=; b=NbGllJkb7vck3VKy9DUxdFkG8OuqhZDO1PXVPG8un9UH7Z2/s/d4CxRNE4fzlAPWyc0bNm0XCSGfMiIn9VgapEcu363H1sinq3yo6LcywPKOzFITM9pwpVVbKa0ueGMapLLQJjuVsPiD64m5+0lb4MP/P8QeXH1WvPuYyDpHO+tvy7Fg8w/NwF5LvlJAfpGUZTWRjc8yS8qcBO5GAZkLXEf88GPPBnxf864q893jqPoq5f01zMEVff19W+yEjYcWZGwb6ascfpPwtXXU45X1hQPaJW7ppoJ7XWCUnoWJyXTTOh92ezc7F/SHcbsjlvnJbjcW1rASjWts0zfrzKd6vw== 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=+PX4LpTtz/Ff9vwxOQ7D89SLQmcNoO88wfxPumEm2MU=; b=IpZjW6KVeRwh9kzCuA9RAh3LP8Wh5aU18DW2PrKDo45OuwpFhp5GwEXlotz8i4EYRkAFEoPu6jaTj6oadIRoa5hIc9ymxSTBnGTydtrcdlL09+S0Nx4DDzerl5+XuvOHhNjF6L4RQtNIMhNzxOHHaZtjSUOb36p2+bL2hs7CbK+4XzKYB7T5a2EEfoXb3/sGUg5bsEzfu50j1IqJ2HVb4W7tOnhekiHzrxyr26Cy6RLk3nyBPVWptou7K1WQkhO7crNIYzZVMs0pCiti3aw+rkOAqAZEiHYmkCZ4non12uJemFfgNbhfSpfjwyKFhpWNrfZ9Xi/CoFdrKWZ05mCy5Q== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB6981.eurprd03.prod.outlook.com (2603:10a6:20b:299::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Fri, 20 Aug 2021 08:09:27 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d%3]) with mapi id 15.20.4436.019; Fri, 20 Aug 2021 08:09:27 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Aug 2021 10:09:16 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [mh4T22qa+V3pycCJ7tKTxPvUndQs5W9I] X-ClientProxiedBy: AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210820080917.493053-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Fri, 20 Aug 2021 08:09:26 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2e7917a3-4698-4a04-465b-08d963b1d418 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR+Na9ab5G77V3+FQhuTKDCq9QvToSeAIwWeQSzp7s9Fahps7kKHhAWhPQe9hK1wT/bfukXCXfR/xmUfd9MLMAnhfPX2SAGnSRN6ZL6Wjl25eGrJFEgEOybpYsOF/nSF1Zp9eUCnYhY4TwrwFlJeS/h9Tyx0fs5ZoyY/rzL4YuvV8CNOIoUreo5BRWEiji8ujmveM60u9EAEwkarfTzhd2hOZz+8XzHZRSw7QNwPMW2iysCZuCd8nH1VUECSeH3tTB/WrLCZXN3Q2lTgcjcL8JQJXF+PyUfVCRxvisS/1FYyehbBpxKHZPBh2x0wVSvDn45zOEEmrFUzQKnD+sq/klRiTK7tuHhzgXm67Wx41A4AjwWiZ7GJ6i4QLj4gEklwEMloJ1UnqR/7GgAetjYWpjt2E97Ydq0OBd0TwJ4Rci3rYOPdkdA3l2++VSHVhjoLsBpq/LlHlprTm+6W/GIY4EMzggaOxQFyU5EPV8POmPABLGvnc3ybMxR736uSBPOsVM9UrpS1268wAj6qIfsdAw5i9Haqs6HlendsT40n24RKnpHqGEV0bAqf/IG5zteWlNtOtcTiN7+SKTgCD9PdIJzfRXKYx5u9yYBNwCLi7U5lJc4YFMLCAulleB1vbGmfubLA/gaIajOjQUX0HufXJTdf0xpHbLkyP7reKcqzMhArDGMPol7UriNqfCM0ZhjuImLgyCuluEDIh+QcfYOUJp4M8yqMkNa0hiTGPJmF950iNgSQb3TF5b1q9kzoYfwvuQ= X-MS-TrafficTypeDiagnostic: AS8PR03MB6981: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2k973E3W1b6GwvojkKF/d7IGeF+S4vnD/zYYwIxyLUS1O5BLsSVNugw0ukgTjvnhzvsKANLFxW/WJDEgDvzHld2vifBqfhcRlzYiVqLrzxYJOpT3+YfX8XmlsVnb8ZLGP36FhcH13+Di6HcTiC6ZmTc+Xk0BE0gvfxR4yRQhQhWQDG+3ZO0Vikp1ICzJ3d9HsbDFHwIZQaS9r8V+1thu9LvjmTGhCkojsll/EM9rgLhuj2X+AMlP0tIrX7NM4ZwoXFW/vgjelwnSp3K+UuNGHA9QoZab1uYRCMza+v2/JlZx7rahDn8oYBOIHbRBJQ58jJpYKsGtaGVax7U9MHF+HRF09QpaBxH4P9Xpcs4fqzcpAu8+k+XBRtHJERmphupGbL7y6BxjW1fTld6XMSWez/oBNRGvIHsvdU7QfcjRu5ZzkiQZo+Vi0DhBm8L9ROSm X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9e1aPbRsO8qs/ypb6nOALvQs1+dHVG49Y0GRe5wsemWZfk2W0KsHFyOPyTUHQbKhRoPy/A1r2wyYasWdQEF0GpBshdf2EJZKVFcajuFNbCGe85lDDdSMiYlXIluZirts+c5SGYxnxg+VSn0O0dH+qw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e7917a3-4698-4a04-465b-08d963b1d418 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2021 08:09:27.0309 (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: AS8PR03MB6981 Subject: [FFmpeg-devel] [PATCH 3/4] avformat/matroskadec: Include webm_dash_manifest demuxer only if enabled 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: yU/vEHpL3oUU Signed-off-by: Andreas Rheinhardt --- libavformat/matroskadec.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index fdfcc86aeb..01104dbda7 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -3885,6 +3885,7 @@ static int matroska_read_close(AVFormatContext *s) return 0; } +#if CONFIG_WEBM_DASH_MANIFEST_DEMUXER typedef struct { int64_t start_time_ns; int64_t end_time_ns; @@ -4292,6 +4293,18 @@ static const AVClass webm_dash_class = { .version = LIBAVUTIL_VERSION_INT, }; +const AVInputFormat ff_webm_dash_manifest_demuxer = { + .name = "webm_dash_manifest", + .long_name = NULL_IF_CONFIG_SMALL("WebM DASH Manifest"), + .priv_class = &webm_dash_class, + .priv_data_size = sizeof(MatroskaDemuxContext), + .flags_internal = FF_FMT_INIT_CLEANUP, + .read_header = webm_dash_manifest_read_header, + .read_packet = webm_dash_manifest_read_packet, + .read_close = matroska_read_close, +}; +#endif + const AVInputFormat ff_matroska_demuxer = { .name = "matroska,webm", .long_name = NULL_IF_CONFIG_SMALL("Matroska / WebM"), @@ -4305,14 +4318,3 @@ const AVInputFormat ff_matroska_demuxer = { .read_seek = matroska_read_seek, .mime_type = "audio/webm,audio/x-matroska,video/webm,video/x-matroska" }; - -const AVInputFormat ff_webm_dash_manifest_demuxer = { - .name = "webm_dash_manifest", - .long_name = NULL_IF_CONFIG_SMALL("WebM DASH Manifest"), - .priv_data_size = sizeof(MatroskaDemuxContext), - .flags_internal = FF_FMT_INIT_CLEANUP, - .read_header = webm_dash_manifest_read_header, - .read_packet = webm_dash_manifest_read_packet, - .read_close = matroska_read_close, - .priv_class = &webm_dash_class, -}; From patchwork Fri Aug 20 08:09:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29632 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1033968iov; Fri, 20 Aug 2021 01:09:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyE/P0BYa/FdOYi5gDGqX2BR6Yu7I+7xGznw1o1nlBZdQ27IGH6nhSJXpvX+ox09xTrUhwj X-Received: by 2002:aa7:cc08:: with SMTP id q8mr21032428edt.225.1629446988836; Fri, 20 Aug 2021 01:09:48 -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 bh21si6236693ejb.428.2021.08.20.01.09.48; Fri, 20 Aug 2021 01:09:48 -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=XdcSsCoE; 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 CCA7A68A24C; Fri, 20 Aug 2021 11:09:40 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071030.outbound.protection.outlook.com [40.92.71.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7E2BD689F2C for ; Fri, 20 Aug 2021 11:09:34 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hFH1vJyF6aThFhiL54TfqHRJVZY2mxYNhJ3MI0aj0fQ81J+O0uZAC2YiFGepINbSOPT1EF8S/OM9HG3LW+2+FDIyG7+jaUXettn1mL2KU/YRPSqKh+8zBEwGUV8ZwD0ycfRpS54xFeXIcfO0sPDxrW+gpeopqbSCaRV9Knec0bbglOT68/gQI2kSeianbsr/SRXj4wle1wy7JwzsTAKkgE93bwSoB1UhmHFhe/yfDlyWsTXMt/haHlZhrrqmbOdnc+mkLiVWws9BcCxJplyP90l5+WJZglKyc2PhNKwq2bhFetT4e4oE2/+3IcK2DL5ShlqLHbeNZpwgqbfE4Tuvkg== 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=XdjyUIOMYNaSpq1D8HO9/K/5B6hzAC2dBngRU0H38pU=; b=icTy8fmbdimRrBApKZKcb9wYfsnuMVGfBQzDcUcx3vkBoKRZlV8imqhJIiG7LumofKoyIp8c2Pt8tkpoJW+vGH4S7GiPxOBcwoUwu15LFzz4aQobQ209E05LKa5dhsaxnPmWpHotCMxlsceydjCFl4ZxxYJ9O1HbgRF7PCs/XEK6pktgJSWKyJqaAeP1ECuH84NgvSTRhLn6FyfKRIbSOEixTrtlh1bXv/jJGsJfB6+jJCJjCqKvqp75CUli2+V5eSsG9pRuveU/8t+r085nB+x7kyR2apSXQusDzvAh6q4185r4AdEaJiYYJb5WqHUyw/9tNoH9RjeXrLHgc+Up7A== 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=XdjyUIOMYNaSpq1D8HO9/K/5B6hzAC2dBngRU0H38pU=; b=XdcSsCoEa/6Sx3JN8jXwhI26BNz+ATaziQl/iYjvxbYFlXL58dZa5V/oPKDqI37OZgjhuqHDpFo3yN53J2nhqn9LjGex0m9miOrhfOgr1+BrPPsw/iHcJiHb/4WbN+9eS8xxsmlH67AuFMHM7p/4Ro0aB0jPZK45vRUbYPJg9va6ObIbhFGKCnTLaNpJxpLVnym4Mv5/2Jd5oUmd5NODtrZ4aJG/5l7kOYBAJ8/nFhDzX9Wx/XCztpbKJ9ToV/ZR5z6xjipa+beNvO939iDDfLeXdADCZyj3XCrR4kFxw45KYQ9nDepUaG4CIwJUxq3gKGU82Fl6b0PZlOh+IsWIow== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB6981.eurprd03.prod.outlook.com (2603:10a6:20b:299::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Fri, 20 Aug 2021 08:09:28 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ded:bace:bc7:e91d%3]) with mapi id 15.20.4436.019; Fri, 20 Aug 2021 08:09:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Aug 2021 10:09:17 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [RIj2T8XEAvdo0K0igfFizRO8QB2NYmd/] X-ClientProxiedBy: AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210820080917.493053-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Fri, 20 Aug 2021 08:09:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 954b2456-bcf5-4c8d-426b-08d963b1d4f4 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR+Na9ab5G77V3+FQhuTKDCjXAAyAXwy1MIVDOvuH4yu9v092diGHfR90kUb723E5jj1fTKYHWmLhh1FwdeAuW37c/hzi2+3KZLmNZA6I7cnNqB0KIm6c1B57QVB8K6DzFa3MvuGFWNFrQH/+dakqDuXqNYNrgT7+daBu8kkGbSvH3EfzfJUaRM6lcEN+4BFKYa4fqW6JWqVBm0z6LHHnE9Ui7agp6fjIio2IsSeUwnfyuxJFHTM/96BmfOgZyngJtN1bY0MVMAXCK3J5awUt9NAnWqYGjWHEVkomyVl0/J9R+lFhw1otjnsLaxvPhvnt7pFunMm9x4N2LpoLLBj+AIbiD9zSJApTWxbWaO/1G3ppOHw2zsVezIMMUwWhMf8EK+YEdbzQNfG9PZqyUEAsojWjUcVX1mIyDkJCY+cJkTqqzaQIQFxVUMpc7XpCd8Rq6ZzVycD9zgKJIxs/yRVfpX/FUQW2fGn1nKFpWXDHEUimp2lIkPxgnQbVt9ofzfIJIKxSwk207fCGDcGxW9vLcTui0b6OF76vRSaR3qjgxAgkh+fNK2MYgCqCX+jafCeCOamTIAnhm4lXe0Mvjo5/Jk/QEJHTFK0Q0FqtD7XVMIMspePtDadH9yVhDb+gcMVwxgpTzDqia3kNKT18/42PwtxuyUcJKZ18HQa2496yItswT53GtT2xSXANP40Fv3EAmRA5FrM6itJjUHpW2HhECN14qVE+M4A4IqY7Ph0VVCX4bJe22sQYdEVnVWVcEUNXo= X-MS-TrafficTypeDiagnostic: AS8PR03MB6981: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cuKmqViKl/hR7RB7M8fOqiPFNS7atehjg/YNH3D+/WyI18gMXuopQSfpWz9yOZtSp2FsiupQISc8Q11HB+KzaOu+PITvVMaQ62BT0czB9i1Y7O2N9SzLf58j4r3M9iSXtZvJoflO7EdYUkCakisMiC1VOpr6db7tvylKKcqZCgsLFI0jYO8AEoAAvZxNtMMytx+GEN/qxYF9d3SvRc3XVxq2onpgTUaESFIisXc9OrJuB48hMC/++8wknXA9QlK0EmkpMByGq0i+Mwtf3/ul5vNK5b60HnFJCU9YdM3P2fX4Xmwuq7sNJ7JR/dEoYvDNcwI7Atxgx1CQZ/nQIGBzGszoEqnY+9DnQC45QUKBTbY4ohTi1Hg5htg3T2cUN1EkfZL8p1VCJGJ7KGbbZ7FwZuTFjehWyrOKOq3fdDnJHuRnSDgHf9lB6cNtciv1nuAH X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RYbevEnYhHeZBNA2lKU1b/1bLKLJxYVW6KOQDzZtecBUIsTj+WWJWpArpEhlWjeBrGMuG0XFtE4S4JshY2roG/8+dhfRzmXTOvyYQgXieVL8HZ9G8nYMr7X1Vkl/n10XpPmzRZRYk3AotdR2QIE14g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 954b2456-bcf5-4c8d-426b-08d963b1d4f4 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2021 08:09:28.4288 (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: AS8PR03MB6981 Subject: [FFmpeg-devel] [PATCH 4/4] avformat/matroskaenc: Only compile functions when needed 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: v1pKSkkPwF9m Fixes unused function warnings in case e.g. the WebM muxer is disabled. Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 52 +++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index ad8a4698b8..b1735f3838 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2632,33 +2632,6 @@ after_cues: return ret2; } -static int mkv_query_codec(enum AVCodecID codec_id, int std_compliance) -{ - int i; - for (i = 0; ff_mkv_codec_tags[i].id != AV_CODEC_ID_NONE; i++) - if (ff_mkv_codec_tags[i].id == codec_id) - return 1; - - if (std_compliance < FF_COMPLIANCE_NORMAL) { - enum AVMediaType type = avcodec_get_type(codec_id); - // mkv theoretically supports any video/audio through VFW/ACM - if (type == AVMEDIA_TYPE_VIDEO || type == AVMEDIA_TYPE_AUDIO) - return 1; - } - - return 0; -} - -static int webm_query_codec(enum AVCodecID codec_id, int std_compliance) -{ - int i; - for (i = 0; ff_webm_codec_tags[i].id != AV_CODEC_ID_NONE; i++) - if (ff_webm_codec_tags[i].id == codec_id) - return 1; - - return 0; -} - static uint64_t mkv_get_uid(const mkv_track *tracks, int i, AVLFG *c) { while (1) { @@ -2833,6 +2806,22 @@ static const AVClass matroska_webm_class = { }; #if CONFIG_MATROSKA_MUXER +static int mkv_query_codec(enum AVCodecID codec_id, int std_compliance) +{ + for (int i = 0; ff_mkv_codec_tags[i].id != AV_CODEC_ID_NONE; i++) + if (ff_mkv_codec_tags[i].id == codec_id) + return 1; + + if (std_compliance < FF_COMPLIANCE_NORMAL) { + enum AVMediaType type = avcodec_get_type(codec_id); + // mkv theoretically supports any video/audio through VFW/ACM + if (type == AVMEDIA_TYPE_VIDEO || type == AVMEDIA_TYPE_AUDIO) + return 1; + } + + return 0; +} + const AVOutputFormat ff_matroska_muxer = { .name = "matroska", .long_name = NULL_IF_CONFIG_SMALL("Matroska"), @@ -2862,6 +2851,15 @@ const AVOutputFormat ff_matroska_muxer = { #endif #if CONFIG_WEBM_MUXER +static int webm_query_codec(enum AVCodecID codec_id, int std_compliance) +{ + for (int i = 0; ff_webm_codec_tags[i].id != AV_CODEC_ID_NONE; i++) + if (ff_webm_codec_tags[i].id == codec_id) + return 1; + + return 0; +} + const AVOutputFormat ff_webm_muxer = { .name = "webm", .long_name = NULL_IF_CONFIG_SMALL("WebM"),