From patchwork Sat May 7 11:27:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35639 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp2120990pzb; Sat, 7 May 2022 04:29:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw0pBiqHy/pzu8JYJpSplTGmMQ3sKSNVWUAXRKXfND8Xu9xK3lLwUzbjv0CY8OU36/RjROb X-Received: by 2002:a17:906:19cb:b0:6f4:e601:9643 with SMTP id h11-20020a17090619cb00b006f4e6019643mr6774705ejd.578.1651922963900; Sat, 07 May 2022 04:29:23 -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 s12-20020a50d48c000000b0042873be34dasi2464531edi.252.2022.05.07.04.29.23; Sat, 07 May 2022 04:29:23 -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=bVyVUKt4; 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 7ECB268B3C8; Sat, 7 May 2022 14:29:09 +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-am6eur05olkn2020.outbound.protection.outlook.com [40.92.91.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 35A2D68B3A5 for ; Sat, 7 May 2022 14:29:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bsh9SDMcqZFiQug269wZv5/3RfBAZQRknqs4ZCADE7up86+VmtJRYmad2451nOBCq9KhV/f4Bd0+NpQ2srnqlulsEIcxI+HTa1n0uqhkyd3E9DbqdMFOu2v5zrOvl36ZabU/lk9Sg4wZvuaIvhdA5jFlCXZXs7+C2Qa60IhCWKdY9d3XXQJtnIYducVfN7WFuunE0NgPaDMRJb+JHsaEVbBbPxNOvvn8DBWM4Q/kCibzXpWDLSq3EayX3mgo79q6L8S8HkXhJWt0S1I+x3UBqPjnF13HLkomvo0hDgjLWWt2+Ka5yEpYhmgUBsx/qOOra9mkZ6HfJ10GEXVrlK58AQ== 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=giBjIrF3rpUJF1hmuIBq0lJjKL3ntHEdX4nOzVyqQPQ=; b=b9hi9pGJIQ59FQ/Nzd42jIo2Mj+v5+j4VuAjPLCNG9zh71uuxLmGu806vcBIzIBRM76YG+SwrxNcCq+OcbYJRECrozzoygflqFM5eQPFERqJvjVucHTxwL4xwU8tEgG8mqjFac5s7XbH9cMQ5tdCkKmWh+bBs2pfZflwxHdZzOU+E63GeKqVPvLn3GX76V8U05hIKIaaT4leGoSOkZa7CLrSdPnSaXgsvfACZMpRHBHmmzzQKnFc8suuny7ZbqGcVFvoHOynBqpAIREOS9wxGkEYw3fwfABtbKZqkvuWcWwXJh9yNkuJmopH65Con5RzsVEde3OdZ5N9ZJIdFR7ESQ== 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=giBjIrF3rpUJF1hmuIBq0lJjKL3ntHEdX4nOzVyqQPQ=; b=bVyVUKt45+eZwu0MNbevebOCssiNNS90+PQfAsULE3SfAtiEdOFKJLJHuGSPOqDcxe9+WKGjjTX8NkxPbi5D1CSEVqWg/8XCQuc6XSIJ2vF6o0ypA604MvUXImwwkiHicORvtStCL77m+E+vqqZQX5gzP0mJqR9C2GZMGqyc6q9woQTHHW2XENU8uwWKqVoDjPzXbPVlYvka3URA+4V048sAHgxdhynvtv8ahfeDw3peeHXsrSw6kImFMJtSPUgk4X26quKv6tSqaUbDig2TZXc2mf9ptjUfvRYA+fRT3C4JkgkJwDJcYd6bINpBC2XSpQdB96YzFVlGes1Y/7I1BA== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by DB6PR0102MB2663.eurprd01.prod.exchangelabs.com (2603:10a6:6:e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.21; Sat, 7 May 2022 11:28:57 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431%6]) with mapi id 15.20.5206.024; Sat, 7 May 2022 11:28:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 7 May 2022 13:27:51 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [ighgPIwkPHG5rkP9EG/IZ0sVACsaEExX] X-ClientProxiedBy: ZRAP278CA0004.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::14) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220507112830.406162-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4f91c225-9fcd-467c-1db0-08da301cc62c X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRIovyFjHwHllp74iOQFItw/Sva+BKJI5xwWvVFLcVbpQbqLAXbVO6kXvrOeakh6WigG03Hgvo5sy54Gd5mIvLd5hI3IzoHIYzZeEOss89yes/l0llcXBEaLk6IPaqX4Eq5CFjumJc1TIIc+4AohQYj+z5qlLjE4VpDbKa+nIziSjOCzLqABviwxBHPDzTq+M34/d0VlA4kEmFhKbCf20KISNKdHF8yao76jdr3T3JNr67UiuPq3dNALg32P/GCr+mUrhWLlZwNwsp13ao/Lqf/IUpxGxQylF0KWG5G+4gF+zHk7aod4+aS0Oa1WQQW6z15o2XY7eo0UjTiOiVld4iGsxsYg3VWJmuRD/ZlzQNXgFCKxkvcsGcDzDKqo9RBO9dmyVpQijmKOb9zJyEMinOk38ovykXIlFJZCBN+bqX22PAPcI84NNar3dUIhWYm98FDbELkZbP0ULLQimkJTjB2cBJrh0twm5X3p3DR+muv8lo3sf3kXuzPGuwaIl1m2VAPfAX5L2ZbTQ1J3UQaZQmarSWRVP7+sVoeApL/0nxkK7xAwB+C5fC9tk8kbp9Gyb4KK+9RcfSYA/vcizUybIBScIX4f+Gg2CLQF/2Yj03bqxgrnV87qHKW329NtFb4Qv9vs0iRrsCMghPT2Ri1m4D1J//S9B4l8wSSYGaIrRt0GMLc9ruLFaS8Ih27ADZkDF1SRQkNSnoKeTQI9pBL44k8bwvcjCMUyArwDHzs+eImvh18tJHEOsrsavKFLBmA+Gc= X-MS-TrafficTypeDiagnostic: DB6PR0102MB2663:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tbI66SwX8lMTmJbm3F8Td7/mTAmSp2r5U7Xvur8rTHoZlWO47cj+J3iysjqF+5jQYZpGeXzPGGvPtHAJLX+CB0Tko5tfBZkes4xYdvcpF4maG2GgevEdzW5bkdXpPmTVzwLFPzkkeCxk4sSuGayasvUJOrlVu9JfUoTb9Xt7BCUOysX2UWx+bZw+XiF67Vnfx6+haCseeJ2cle82prOvBoMUnqvZLPJuYWSYGr/Po2Leh/Df+5mepJ9c8XEkTTeXgSq3mQTVIejsrM5K2tWSQuZF3mVdYdU4I2GkWjE0zvBR1vhfJIW2/MS0AUXSGyGqARMDAmS2p+45V70sCR4apnETIdrLwOgCgi0m7HbVlNq5EtukN/PfV81kKc8u13XTvHM7ybQektBRFXJyTGQUmZx56wKnL/mmaYlN4IWKQXU2R+2oyjIToJRtAlmPGpSkynoXa7mEaNMiYAWBlkypOQZEmtMXAaBqfbit/h5+ld1QxMR86ThN/MTtqH7pBCenyqYZsPhsaVPjNHxs+v9eSU/vniaTPwmgQuokXE5Dv96wLc/FF2IqFEkMjGTvTyGYvfyOK6V+MpQAha8NEEUfefNpyJCKcy1CayC7ICPgfwuMB4hOVTQL905YulIrZRJvDSZvlxm1C9Heyauei0LaCA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: r7jQB7twAZND8W7InxUpPay+r6vLLLl8I9RV9/7wT0YU2v8KAlSCSnXkMrNYjSu9lfz0qBQB+bqQmcRHZQdRrctNbJvP2+/7PUBf4qgfnol3tsX6jTKjoQAjceMpb4nR538kMZEoMfHiqGrxqzA4lx9+Hk64oRf/t4wBMcCkQnngSmfE1n9P0bEBYIbaJH06CiZLrRbD8bURWyq1s00FGfhzmGJNnnhPWrX9NhNvCaPg/qQVkdI44fcTRwxVKYYP8669uNCn+NnW6RMMPSS0yJGuPPN2gyHKpBOcNRPduLiD9kl7tiXCyvbbAR1UymeUGiSoopJU1AKW4MTIdvm+M83pDKqNj15vXC9Yj8cVO3xO2WJILMecnxxyhNxbHd0gDQaxrMTgdx/My+wBPC8GyD+RMBu9rA9zjTJjbChQccexqv3WuTdIB+CibCuYKurmGbS/bMiZfaEsHTQeSJ3+udRAdfgeNDYtG+nfPbx+RQBYVmlS9I1EEgBQj1g7JdGMMraVATrBrhsqhqnnQgKb9laFculyELxUqYUr0bBDQDeqKu7Dx1/oW+u88QmLNVQ/YcXUi93hZB/0CtgQj/0T1bSnHOL4gEyuHPagvI47FiuW7rbI6sVSBbKxREOpzcoFY/6OSrXqnTMxpV7ZdPn8kXptUxovQGJMAhBUZpg+NtXL4xKXVidiZ8QhTbA77J35Va2GY/RtgciBzL3O4w25WlTrD5LzQGe4bkienLT75vxgKG4/aS22yv1sfGDiDVRihxYcEOnyKXdbCepIcCRJITdlTpgQewfMzud0934u/WYc1yoBCFBDifetD0AsQB1+69b9EKpIUpf0R11cP2+W2b+hXa39cEhB/ehFFECTDesFEa9cuFjFLjP3AsaGa+PFZkNCYMXF5ycj/jd/hPm2dMskz6tc0UBTa1V59MlVn1PNyYZEV6OjpafCEGK+sSmEme+Q0tzBsx5YCxcKHBNjUQfC5ookq3PCK4yftFJ8utVZJPYk3rV5EW6FMOjvL6rt+qqbdX+IYwgVQNAAbL+zbAOBPa9iTo/M1cLggC05DxSMcI+UwQyp9lqKFiofz0Yugs7HYMfGe+P92fxkHI7zI8I+VqUP/kLx9+zZEI1BYKbaD6u5j7+qnopL7YaQq7LiRICOm/4L93OWrECLQ11agdPN19ZrWuAioiBukm27/zCvwd5gWaOj3Z70Kagmc9VMLY0lld+EFlZ6jcZd7leIVvXimPvjjJllN1v1Z8BjB9x8UTqs09BV5LN6Y4Fw2921QN5R4mGLXWKbZBEiZKrn6+mflr2cZ1/ZDyp5N6Gkz+Xs3ZsL7uAFPoMjDoCTupMDgtcMLWT3rmccppSYvtfCi1Gj6nToTgHOsS9TvITA2l0HlP8UxY6Ji0qIBIjX0qtnX3K2uYaFJE/HDV9coDEZx44X+TpnuIq1B9K3kKw3Vy57aa9rVq13JISWEqss/gYOVAvHogsGoUcJa9JFKWY0UA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f91c225-9fcd-467c-1db0-08da301cc62c X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2022 11:28:57.1937 (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: DB6PR0102MB2663 Subject: [FFmpeg-devel] [PATCH 05/44] avformat/mux: Move ff_choose_chroma_location to mxfenc, its only user 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: siHRGz5dv29B Signed-off-by: Andreas Rheinhardt --- libavformat/internal.h | 5 ----- libavformat/mux.c | 31 ------------------------------- libavformat/mxfenc.c | 31 ++++++++++++++++++++++++++++++- 3 files changed, 30 insertions(+), 37 deletions(-) diff --git a/libavformat/internal.h b/libavformat/internal.h index 715e3ce33f..5e84942fb9 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -765,11 +765,6 @@ int ff_is_intra_only(enum AVCodecID id); */ enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags); -/** - * Chooses a timebase for muxing the specified stream. - */ -enum AVChromaLocation ff_choose_chroma_location(AVFormatContext *s, AVStream *st); - /** * Generate standard extradata for AVC-Intra based on width/height and field * order. diff --git a/libavformat/mux.c b/libavformat/mux.c index cfcfa600df..11b0cb1307 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -28,7 +28,6 @@ #include "libavcodec/packet_internal.h" #include "libavutil/opt.h" #include "libavutil/dict.h" -#include "libavutil/pixdesc.h" #include "libavutil/timestamp.h" #include "libavutil/avassert.h" #include "libavutil/internal.h" @@ -89,36 +88,6 @@ static void frac_add(FFFrac *f, int64_t incr) f->num = num; } -enum AVChromaLocation ff_choose_chroma_location(AVFormatContext *s, AVStream *st) -{ - AVCodecParameters *par = st->codecpar; - const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(par->format); - - if (par->chroma_location != AVCHROMA_LOC_UNSPECIFIED) - return par->chroma_location; - - if (pix_desc) { - if (pix_desc->log2_chroma_h == 0) { - return AVCHROMA_LOC_TOPLEFT; - } else if (pix_desc->log2_chroma_w == 1 && pix_desc->log2_chroma_h == 1) { - if (par->field_order == AV_FIELD_UNKNOWN || par->field_order == AV_FIELD_PROGRESSIVE) { - switch (par->codec_id) { - case AV_CODEC_ID_MJPEG: - case AV_CODEC_ID_MPEG1VIDEO: return AVCHROMA_LOC_CENTER; - } - } - if (par->field_order == AV_FIELD_UNKNOWN || par->field_order != AV_FIELD_PROGRESSIVE) { - switch (par->codec_id) { - case AV_CODEC_ID_MPEG2VIDEO: return AVCHROMA_LOC_LEFT; - } - } - } - } - - return AVCHROMA_LOC_UNSPECIFIED; - -} - int avformat_alloc_output_context2(AVFormatContext **avctx, const AVOutputFormat *oformat, const char *format, const char *filename) { diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 2061b2eede..7041659143 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -2496,6 +2496,35 @@ static int mxf_init_timecode(AVFormatContext *s, AVStream *st, AVRational tbc) return av_timecode_init(&mxf->tc, av_inv_q(tbc), 0, 0, s); } +static enum AVChromaLocation choose_chroma_location(AVFormatContext *s, AVStream *st) +{ + AVCodecParameters *par = st->codecpar; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(par->format); + + if (par->chroma_location != AVCHROMA_LOC_UNSPECIFIED) + return par->chroma_location; + + if (pix_desc) { + if (pix_desc->log2_chroma_h == 0) { + return AVCHROMA_LOC_TOPLEFT; + } else if (pix_desc->log2_chroma_w == 1 && pix_desc->log2_chroma_h == 1) { + if (par->field_order == AV_FIELD_UNKNOWN || par->field_order == AV_FIELD_PROGRESSIVE) { + switch (par->codec_id) { + case AV_CODEC_ID_MJPEG: + case AV_CODEC_ID_MPEG1VIDEO: return AVCHROMA_LOC_CENTER; + } + } + if (par->field_order == AV_FIELD_UNKNOWN || par->field_order != AV_FIELD_PROGRESSIVE) { + switch (par->codec_id) { + case AV_CODEC_ID_MPEG2VIDEO: return AVCHROMA_LOC_LEFT; + } + } + } + } + + return AVCHROMA_LOC_UNSPECIFIED; +} + static int mxf_init(AVFormatContext *s) { MXFContext *mxf = s->priv_data; @@ -2544,7 +2573,7 @@ static int mxf_init(AVFormatContext *s) sc->h_chroma_sub_sample = 1 << pix_desc->log2_chroma_w; sc->v_chroma_sub_sample = 1 << pix_desc->log2_chroma_h; } - switch (ff_choose_chroma_location(s, st)) { + switch (choose_chroma_location(s, st)) { case AVCHROMA_LOC_TOPLEFT: sc->color_siting = 0; break; case AVCHROMA_LOC_LEFT: sc->color_siting = 6; break; case AVCHROMA_LOC_TOP: sc->color_siting = 1; break;