From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 917B4410E7 for ; Mon, 3 Jan 2022 10:38:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 13A7368B175; Mon, 3 Jan 2022 12:38:30 +0200 (EET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069089.outbound.protection.outlook.com [40.92.69.89]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 54D1868AEE7 for ; Mon, 3 Jan 2022 12:38:23 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MUZ1Oyb5ZWJ/jp1j+Ljc65ewkonnVSSzK+/hgYK1Ut2edIfGmljTnjYtj9nFMR5yJzyTSF1OyFIcxXgSEycMiRtMCG/+oA6pj8SF6Y2cQWVwqwYRp09XuLuRF/i7gSjPgJx6J1hz1C+2MVXGRKdspd0o2FIAmo3tI8ItU8PVo0TVZqAWQv+0D5JsnldsbyXlpNXdfya/xhR56RKaMKDzgCWQecSpwRClMTwkojOjxRHbvScomce0b9i9A2tHn6SoBkT6hKaQiTScCnmQZp8DKhYKOlboXnOqhXwYxUSQ6AKP/Xsh//HZUjVrNt3DLZGQtdHLgd5rLuJz8VetxLOp9w== 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=+4HLcwmawjPGO+XlxoqkDxM9ws5gjdRZu1VCc6h6dz0=; b=VX5ahgPd2qHJLCJzLivaJmlkjSC3YAh/H3+j5+Z5jJENDKonhaOp29HGb4DZW6wViawsoU1lA3X5vyM7HycHapiiwBTjwZandiKyOZHQqGj7mU+R6jyGrJnScMl31XTWxX7TTcsr8HPgIO8MKJ/fBkGJHS/Hx+vTy0kFs1NPhsY5DzNBGRxxBjeEd3VkADm7UatAXevoOkeHKQvwZ+5HF1n3/7trBLnDt45HtpsIfFYuLqHo1v4rIl1XECIMRwIxWcPLdVUnJFokzh25fybz+uq5/mzOWJQVSitYp0YFSg9hn8kcmvbx2iVwRT6D9ESsN88AzN5KMc4JyTG2dukXpA== 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=+4HLcwmawjPGO+XlxoqkDxM9ws5gjdRZu1VCc6h6dz0=; b=GsT904SCZdw4BBXP8TjgoyxY3/avhF0f/LrizIFijV6NMbSk4xj0gRTSouq2krGfL4yJWtss+BhBoi16TXPt2adTNNXVA+hoGcKSwRYboueWpUatR+58ktEUqjx2YwbgNC17yKL3a796SQLjF+jb25lzd4LdMSlahUfgeeXjgxolLazki7OFIoGaRRNVeNGvEfR4Ph1VwlxGH+1tJ+Ktnal3XxdNg9ladJ7BIvNtt8gKiSCHfwQDyzPmrO9Nebh9ZFpkl0DPubNPFbVeoTkgRM4QC6qgYsa5DRs2XXF5ct0/eagwcL26kpPRUV2MTUmxslveAoPOWtqjs9ha5hpfCg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB4101.eurprd03.prod.outlook.com (2603:10a6:20b:21::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Mon, 3 Jan 2022 10:38:20 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%6]) with mapi id 15.20.4844.016; Mon, 3 Jan 2022 10:38:20 +0000 Message-ID: Date: Mon, 3 Jan 2022 11:38:19 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [PPCt8xm9muCliqmMPTiVz9T2F+xXky3b] X-ClientProxiedBy: AM5PR0202CA0004.eurprd02.prod.outlook.com (2603:10a6:203:69::14) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <6ea3e0b4-9d99-23bd-b698-3d64d6649784@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dfe6eab9-7805-4011-4a27-08d9cea52907 X-MS-TrafficTypeDiagnostic: AM6PR03MB4101:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mqKzmF44elXxltrBzeP8F2aZK5hSggmvs9q/FhE/EjIsNxpUhdKd+7F3yHZkqHIq2+yTFqdFEmBVywCYfP0IgDaFaYgW++Y8720y5ffWeBL6hSgrhcyTn68SKpcAqRQkjAX06AKanFb0vtdAAnVXu+HCjLTx/1+Fh4mevptOninI7kuHD98ELxG2urKGQzLJR+SPsq//JvBE9hzdvATI0KDoluwDBc2/O9S/GsJHXSpL3+aCa3hQxpXbI4U+tMTKJ2f14zPadJEu472IKKKG0GtQCRxb38r+h6NEtQSf45iPkjkA+HqRLCdtoH0sNBwdX6GeyQ25oxf3vXJZP83nEvskJpe6KxZ4FEbZUiSOt02fQKCLynr593Rjn8mkXORfrzCm9ul6X4JNsfArci/EIISrchyugAZanf7+DXgp8Ztu612+NzMvK9cTTILDn69x/h7r3+VyUmuOGXcFxO6BQpeQ3CgUyu0ZvT9pV2qvGCZl+ukfUEDzBCmar/7KYBOOQMCWvARysO3mo4Z7KGOAdI2RrSQJcfP0y6yA0mu8prJpf22bs/DqapJksGNnCeEyWKDlHY2hDI1F/+VzJGIZ1Q== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?LzQvamRkVFNBSzJNUWY0QWhqSitmTXpxS3JzbEE0K0plNGF5K2lpaFdobHdk?= =?utf-8?B?K2lTbXUzdXVvSld6a1I2Z25CZ0JQT2hrR3RXVERMTk1SWVlrRW9mYmdSNWJh?= =?utf-8?B?RnZMU2xhTGNnSW94NnNaUVNFL2FZVy9YSzRDSXd2R2g0a3JWamZvdXR1Z0JY?= =?utf-8?B?ZUZtS2RnQTNJT0ljTnhZbGMzQ1l1U0F1ZUpQVUYvTzRkcGRpMkFxek5BRWVS?= =?utf-8?B?ZDZmT0x3eGN6UnFVMDF4MEwrdGFwcmdqN3JjYlI2djNCcEZwN2Q4Zml4QWQr?= =?utf-8?B?S0hxTzcvbCtSMUxYT3FLM2tlTEdHUE1GV2dZeVp0OEl3a1ZWSW00N2JBQlo2?= =?utf-8?B?L3pQZys1UnlGT1I2S2czNFZzbFBsSWI2dHdwZkFtbnhkZzVBOGFNZmdhNWtD?= =?utf-8?B?TTlKSVJ0YWI2enQvWmFBVG5rNjR5QnRsTVVXb3l5TWZpd1BvY0E3WlhBbnRi?= =?utf-8?B?QUZHdWlHcGlZQ2ZNVWR2RWpsRnNtdUx0OS9SQzJWdjAwUktvOHZTcE5tTDZE?= =?utf-8?B?VVQ0Ti9yN0FBenhnZElnZUFBK2RMSkxtRTZ3bDRzMllCeDFpNzFjMnM0N1M2?= =?utf-8?B?YkJXSG9RK1llVWp0MmloUFpmWVUxaFZ3Y2w1clB5TEV3ZlNPMFJpbGdremtl?= =?utf-8?B?YUowY25oTHFXS09qQ3hySlk4YkRPMjNlK2VCNkZpSDlYRVJkSzBBdnIrQ3l2?= =?utf-8?B?emZackFSdkVXc0FTZUhSQk8vZlZQZHFiK0o4TzRoMDVOWEhUa3pKMC9CTjF4?= =?utf-8?B?NGFvWEpEM0N6QndRc3RpeDVDKzgxS25sV3Q3RUppL2haNTRsVVcvZXltRm1a?= =?utf-8?B?cEVIREs0WS9Fdi9na1dNcGdmUFpZK0tGajRURWF0ZklHUHhkWktxczVEbkU3?= =?utf-8?B?ZS9JWWtDRVpaN25YWFU1a0NXNGM4K242Wm5EdDJLMTd0d01zS0pEd3hCc2NK?= =?utf-8?B?cGY2R09UVlRSdnhYUExPU1ErVDZwUTZnb0pqRVVzK0ZLVnhBNzA0R0RlTERq?= =?utf-8?B?Tk80SHB5TFRiWjRFYlpQbk5SZDBUYkRwZVY3RnhvaVlJalk0WCtwWjROSzN1?= =?utf-8?B?bUJtQjFoWStzMFBUQ0xTakdkNmxwTFRsejRHN0FxNDNwLzhtY1U4dkFtaUtY?= =?utf-8?B?V01OZ0E4eVR0R3NkSWU2c09yYlE5WGpuVXpBdXVhbXpaVjJkeVF2VVVBamk4?= =?utf-8?B?WFpDMEhVQkF3MEVoOFR0R3V4T1l0UWNqVUlRU1JvMithNWNnMmRrTElFWVZ4?= =?utf-8?B?SU52dEpEYzAxN212KzdxRXN4cVdMbThEMzJWcDgvaWtNeUZ4Zz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dfe6eab9-7805-4011-4a27-08d9cea52907 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jan 2022 10:38:20.5248 (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: AM6PR03MB4101 Subject: Re: [FFmpeg-devel] [PATCH 02/11] avcodec/raw: Reduce number of avpriv symbols 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Andreas Rheinhardt: > libavcodec currently exports four avpriv symbols that deal with > PixelFormatTags: avpriv_get_raw_pix_fmt_tags, avpriv_find_pix_fmt, > avpriv_pix_fmt_bps_avi and avpriv_pix_fmt_bps_mov. The latter two are > lists of PixelFormatTags, the former returns such a list and the second > searches a list for a pixel format that matches a given fourcc; only > one of the aforementioned three lists is ever searched. > > Yet for avpriv_pix_fmt_bps_avi, avpriv_pix_fmt_bps_mov and > avpriv_find_pix_fmt the overhead of exporting these functions actually > exceeds the size of said objects (at least for ELF; the following numbers > are for x64 Ubuntu 20.10): > The code size of avpriv_find_pix_fmt is small (GCC 10.2 37B, Clang 11 41B), > yet exporting it adds a 20B string for the name alone to the exporting > as well as to each importing library; there is more: Four bytes in the > exporting libraries .gnu.hash; two bytes each for the exporting as well > as each importing libraries .gnu.version; 24B in the exporting as well > as each importing libraries .dynsym; 16B+24B for an entry in .plt as > well as the accompanying relocation entry in .rela.plt for each > importing library. > > The overhead for the lists is similar: The strings are 23B and the > .plt+.rela.plt pair is replaced by 8B+24B for an entry in .got and > a relocation entry in .rela.dyn. These lists have a size of 80 resp. > 72 bytes. > > Yet for ff_raw_pix_fmt_tags, exporting it is advantageous compared to > duplicating it into libavformat and potentially libavdevice. Therefore > this commit replaces all library uses of the four symbols with a single > function that is exported for shared builds. It has an enum parameter > to choose the desired list besides the parameter for the fourcc. New > lists can be supported with new enum values. > > Unfortunately, avpriv_get_raw_pix_fmt_tags could not be removed, as the > fourcc2pixfmt tool uses the table of raw pix fmts. No other user of this > function remains. > > Signed-off-by: Andreas Rheinhardt > --- > 1. It would make sense to deduplicate avpriv_pix_fmt_bps_(mov|avi) > size-wise if it is preferred to keep the lists accessible to users. > 2. One could handle the fourcc2pixfmt case in avpriv_pix_fmt_find(), > too, if one added another parameter (say count). In this case > avpriv_pix_fmt_find() will return the first pixfmt with the desired > fourcc if count is zero, the second one is count is 1 etc. (and > AV_PIX_FMT_NONE in case there is none any more). This would also make > this function more future-proof. > > libavcodec/raw.c | 40 +++++++++++++++++++++++++++++++++++----- > libavcodec/raw.h | 13 +++++++------ > libavcodec/rawdec.c | 8 ++++---- > libavcodec/utils.c | 11 ----------- > libavdevice/dshow.c | 2 +- > libavformat/avienc.c | 2 +- > libavformat/demux.c | 2 +- > libavformat/movenc.c | 2 +- > 8 files changed, 50 insertions(+), 30 deletions(-) > > diff --git a/libavcodec/raw.c b/libavcodec/raw.c > index 079d5c5d10..5efc1eb465 100644 > --- a/libavcodec/raw.c > +++ b/libavcodec/raw.c > @@ -28,7 +28,7 @@ > #include "raw.h" > #include "libavutil/common.h" > > -const PixelFormatTag ff_raw_pix_fmt_tags[] = { > +static const PixelFormatTag raw_pix_fmt_tags[] = { > { AV_PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */ > { AV_PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') }, > { AV_PIX_FMT_YUV420P, MKTAG('y', 'v', '1', '2') }, > @@ -299,12 +299,12 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = { > > const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void) > { > - return ff_raw_pix_fmt_tags; > + return raw_pix_fmt_tags; > } > > unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat fmt) > { > - const PixelFormatTag *tags = ff_raw_pix_fmt_tags; > + const PixelFormatTag *tags = raw_pix_fmt_tags; > while (tags->pix_fmt >= 0) { > if (tags->pix_fmt == fmt) > return tags->fourcc; > @@ -313,7 +313,7 @@ unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat fmt) > return 0; > } > > -const PixelFormatTag avpriv_pix_fmt_bps_avi[] = { > +static const PixelFormatTag pix_fmt_bps_avi[] = { > { AV_PIX_FMT_PAL8, 1 }, > { AV_PIX_FMT_PAL8, 2 }, > { AV_PIX_FMT_PAL8, 4 }, > @@ -326,7 +326,7 @@ const PixelFormatTag avpriv_pix_fmt_bps_avi[] = { > { AV_PIX_FMT_NONE, 0 }, > }; > > -const PixelFormatTag avpriv_pix_fmt_bps_mov[] = { > +static const PixelFormatTag pix_fmt_bps_mov[] = { > { AV_PIX_FMT_PAL8, 1 }, > { AV_PIX_FMT_PAL8, 2 }, > { AV_PIX_FMT_PAL8, 4 }, > @@ -337,3 +337,33 @@ const PixelFormatTag avpriv_pix_fmt_bps_mov[] = { > { AV_PIX_FMT_PAL8, 33 }, > { AV_PIX_FMT_NONE, 0 }, > }; > + > +static enum AVPixelFormat find_pix_fmt(const PixelFormatTag *tags, > + unsigned int fourcc) > +{ > + while (tags->pix_fmt != AV_PIX_FMT_NONE) { > + if (tags->fourcc == fourcc) > + return tags->pix_fmt; > + tags++; > + } > + return AV_PIX_FMT_NONE; > +} > + > +enum AVPixelFormat avpriv_pix_fmt_find(enum PixelFormatTagLists list, > + unsigned fourcc) > +{ > + const PixelFormatTag *tags; > + > + switch (list) { > + case PIX_FMT_LIST_RAW: > + tags = raw_pix_fmt_tags; > + break; > + case PIX_FMT_LIST_AVI: > + tags = pix_fmt_bps_avi; > + break; > + case PIX_FMT_LIST_MOV: > + tags = pix_fmt_bps_mov; > + break; > + } > + return find_pix_fmt(tags, fourcc); > +} > diff --git a/libavcodec/raw.h b/libavcodec/raw.h > index 6a041690b1..9a4ddef8fc 100644 > --- a/libavcodec/raw.h > +++ b/libavcodec/raw.h > @@ -28,20 +28,21 @@ > #define AVCODEC_RAW_H > > #include "libavutil/pixfmt.h" > -#include "internal.h" > > typedef struct PixelFormatTag { > enum AVPixelFormat pix_fmt; > unsigned int fourcc; > } PixelFormatTag; > > -extern const PixelFormatTag ff_raw_pix_fmt_tags[]; // exposed through avpriv_get_raw_pix_fmt_tags() > - > const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void); > > -enum AVPixelFormat avpriv_find_pix_fmt(const PixelFormatTag *tags, unsigned int fourcc); > +enum PixelFormatTagLists { > + PIX_FMT_LIST_RAW, > + PIX_FMT_LIST_AVI, > + PIX_FMT_LIST_MOV, > +}; > > -extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_avi[]; > -extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_mov[]; > +enum AVPixelFormat avpriv_pix_fmt_find(enum PixelFormatTagLists list, > + unsigned fourcc); > > #endif /* AVCODEC_RAW_H */ > diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c > index b22e36e984..9724cce13f 100644 > --- a/libavcodec/rawdec.c > +++ b/libavcodec/rawdec.c > @@ -76,15 +76,15 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx) > > if ( avctx->codec_tag == MKTAG('r','a','w',' ') > || avctx->codec_tag == MKTAG('N','O','1','6')) > - avctx->pix_fmt = avpriv_find_pix_fmt(avpriv_pix_fmt_bps_mov, > + avctx->pix_fmt = avpriv_pix_fmt_find(PIX_FMT_LIST_MOV, > avctx->bits_per_coded_sample); > else if (avctx->codec_tag == MKTAG('W', 'R', 'A', 'W')) > - avctx->pix_fmt = avpriv_find_pix_fmt(avpriv_pix_fmt_bps_avi, > + avctx->pix_fmt = avpriv_pix_fmt_find(PIX_FMT_LIST_AVI, > avctx->bits_per_coded_sample); > else if (avctx->codec_tag && (avctx->codec_tag & 0xFFFFFF) != MKTAG('B','I','T', 0)) > - avctx->pix_fmt = avpriv_find_pix_fmt(ff_raw_pix_fmt_tags, avctx->codec_tag); > + avctx->pix_fmt = avpriv_pix_fmt_find(PIX_FMT_LIST_RAW, avctx->codec_tag); > else if (avctx->pix_fmt == AV_PIX_FMT_NONE && avctx->bits_per_coded_sample) > - avctx->pix_fmt = avpriv_find_pix_fmt(avpriv_pix_fmt_bps_avi, > + avctx->pix_fmt = avpriv_pix_fmt_find(PIX_FMT_LIST_AVI, > avctx->bits_per_coded_sample); > > desc = av_pix_fmt_desc_get(avctx->pix_fmt); > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > index a91a54b0dc..4d236ff1cd 100644 > --- a/libavcodec/utils.c > +++ b/libavcodec/utils.c > @@ -436,17 +436,6 @@ void ff_color_frame(AVFrame *frame, const int c[4]) > } > } > > -enum AVPixelFormat avpriv_find_pix_fmt(const PixelFormatTag *tags, > - unsigned int fourcc) > -{ > - while (tags->pix_fmt >= 0) { > - if (tags->fourcc == fourcc) > - return tags->pix_fmt; > - tags++; > - } > - return AV_PIX_FMT_NONE; > -} > - > int avpriv_codec_get_cap_skip_frame_fill_param(const AVCodec *codec){ > return !!(codec->caps_internal & FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM); > } > diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c > index ef78781865..ec1501ef8e 100644 > --- a/libavdevice/dshow.c > +++ b/libavdevice/dshow.c > @@ -51,7 +51,7 @@ static enum AVPixelFormat dshow_pixfmt(DWORD biCompression, WORD biBitCount) > return AV_PIX_FMT_0RGB32; > } > } > - return avpriv_find_pix_fmt(avpriv_get_raw_pix_fmt_tags(), biCompression); // all others > + return avpriv_pix_fmt_find(PIX_FMT_LIST_RAW, biCompression); // all others > } > > static int > diff --git a/libavformat/avienc.c b/libavformat/avienc.c > index 3fbde0be1e..be2493ce55 100644 > --- a/libavformat/avienc.c > +++ b/libavformat/avienc.c > @@ -448,7 +448,7 @@ static int avi_write_header(AVFormatContext *s) > par->bits_per_coded_sample = 16; > avist->pal_offset = avio_tell(pb) + 40; > ff_put_bmp_header(pb, par, 0, 0, avi->flipped_raw_rgb); > - pix_fmt = avpriv_find_pix_fmt(avpriv_pix_fmt_bps_avi, > + pix_fmt = avpriv_pix_fmt_find(PIX_FMT_LIST_AVI, > par->bits_per_coded_sample); > if ( !par->codec_tag > && par->codec_id == AV_CODEC_ID_RAWVIDEO > diff --git a/libavformat/demux.c b/libavformat/demux.c > index 745dc8687c..360abd6014 100644 > --- a/libavformat/demux.c > +++ b/libavformat/demux.c > @@ -2795,7 +2795,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) > if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) { > if (avctx->codec_id == AV_CODEC_ID_RAWVIDEO && !avctx->codec_tag && !avctx->bits_per_coded_sample) { > uint32_t tag= avcodec_pix_fmt_to_codec_tag(avctx->pix_fmt); > - if (avpriv_find_pix_fmt(avpriv_get_raw_pix_fmt_tags(), tag) == avctx->pix_fmt) > + if (avpriv_pix_fmt_find(PIX_FMT_LIST_RAW, tag) == avctx->pix_fmt) > avctx->codec_tag= tag; > } > > diff --git a/libavformat/movenc.c b/libavformat/movenc.c > index 0f912dd012..7216331fa1 100644 > --- a/libavformat/movenc.c > +++ b/libavformat/movenc.c > @@ -1636,7 +1636,7 @@ static int mov_get_rawvideo_codec_tag(AVFormatContext *s, MOVTrack *track) > } > } > > - pix_fmt = avpriv_find_pix_fmt(avpriv_pix_fmt_bps_mov, > + pix_fmt = avpriv_pix_fmt_find(PIX_FMT_LIST_MOV, > track->par->bits_per_coded_sample); > if (tag == MKTAG('r','a','w',' ') && > track->par->format != pix_fmt && > Will apply this patchset tomorrow unless there are objections. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".