From patchwork Thu Sep 28 21:35:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 44014 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:394d:b0:15d:8365:d4b8 with SMTP id r13csp155826pzg; Thu, 28 Sep 2023 14:36:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFIRXh2KFTQzVmt3gQjoW2lymGZdAQrYlgD1S1A7AwElS6EqFsooktq1NohIdZM13WOAY9y X-Received: by 2002:a17:907:2711:b0:9b2:6b4f:d5ab with SMTP id w17-20020a170907271100b009b26b4fd5abmr2426118ejk.29.1695936997221; Thu, 28 Sep 2023 14:36:37 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k7-20020a1709061c0700b009ae4e1743f6si12495360ejg.641.2023.09.28.14.36.36; Thu, 28 Sep 2023 14:36:37 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=QWJX2vCT; 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 353FD68CBF9; Fri, 29 Sep 2023 00:35:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2059.outbound.protection.outlook.com [40.92.66.59]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E9DD568CBEA for ; Fri, 29 Sep 2023 00:35:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NoPPAPGBhWoE5113hP6SOLyqCZPhrHLHWRlLbnVM2TmMH1OwcDB/q6SiKVg9gvaNPqxyYvO1g9CWczllea4oLymRmjth0L6GTVIn1vr35aNNkk/yMoSln02502egyrhjtg7obMtWAnfipvPG+a62mPFxSKvppw3jw8aWwvrHF1Pxa81QCgZGtXQeHPc3YGPGHoTIXhaZWmJujcHLNcnGWCQoBJKvbfZXTNNyyWM0wXajMMaz7vLYzGt8d8eNB1aEQ+CV1wL4rOPIXogrNZdbjgEVjkLnknioLrdYegF0savP/cCtHvXN9Dqt4Uz8yxt0llbVqIPwrYMk8XtooXcuuw== 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=0HZWyWhF7MQ+8FVpiOdtN2QrczDbQTUzBAy+yRlYtUo=; b=mxjt1R1Vilm2VYOZwuv3d8U8KVPtDuwvPTf0ZDwZK4fAkv5395DiM5ycMKK1PysuBlN2Smzo9kgjW+01MIXQFR/B0J3oi0TAKwmeHp91A9QzCmhtist76YNc9eNZKPLJh0oNGzBq7SycnUblAq8HBJHsQuMDhbCz8EV/8VvjcVB40uQ+VEEHGTOsy0UnOFB6Cvw/y+s68ZmVhvsXim5LiZvXGECLxmcuf+Ux+fS5+B70TnLUi3OTJgQA7oUUUIUngcat6aQruomUsDQnXw6x1hfODy2n4WOPprvY4PPEJ41kpa9TrpVix5LGBWfgwOE5Kkqu3W1XRcPEedFaHpcytw== 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=0HZWyWhF7MQ+8FVpiOdtN2QrczDbQTUzBAy+yRlYtUo=; b=QWJX2vCTh2vtuxOHQ4yYEpaGrBz0QgP1kcytaEuOJnhq+0RfeCq6d8dCOAWQvUrDkU/meMCoxleJjWqK8ghUkW4duUzt24KroKQ2rOK4yuFCTIG+q7ZfnDjj7e7yOQW4I3MTSv0U/kwEGuOOTSbTJm6gNVlPpEJ3YaiG1TxUC+Gu4cjoP6L8a9eRfY2l8x1KIwYuqbxYBEgcWB5eOpK5MWmfjcYiCRzGmfL03yfU4UfhpyhtwGIpbXJWcycsQo3hTRlX+VI9KoGQmOKcMGd4mbJZX+j57EYol1cVK0/jNkjCRENG6sPw7N8sO9pqOun6bAtPqhmnhfcKyQDx8I0xWQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0145.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:272::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.22; Thu, 28 Sep 2023 21:35:49 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Thu, 28 Sep 2023 21:35:49 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 28 Sep 2023 23:35:47 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [h0xq9dBlZkAoyLjX1+qWywDkuNfVuk1i] X-ClientProxiedBy: FR0P281CA0191.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ab::14) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230928213548.1219863-12-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0145:EE_ X-MS-Office365-Filtering-Correlation-Id: dd39c64c-4a33-43b0-9429-08dbc06ae1c7 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JrA0e+eoyGthdZf3HA/W3prIocnUKFmJhaeqw5jSX4PSXK/pq19cHv+iPtQ0Htiqkvx4n0PDlHgXUniNESBFMr41YAi8YKAnROQS2pEcd8VXg4mJ8uhm2Esr0Bh7wnjrVIcXqX/WPaRGw2KIspqA/KxvBwAL7Fv2oNO5v/UuuZ7gk6mqVlkOxdnOyNAHXsJ2mxp7pJql7yBMZdSbcRhkZYAj7qTPabtCdMcrsk46zwcf8h7eXC942GJf2n4iQFeNjf3tRk17OisIPRxksweibtKvzqdS2MGaYBewYq7q1wB8kOC3QAdGa7OECup0Mn4NAGoT88XhyJElKEJ5uaKrJ/SBbJtxaRELOlyMUx8BsLAMZp8tIhmoZ6Zv2acNZH1SGfqpwlJKmVCC1q6EoyVj7bgnF2QB8hYVQkfwW8OJ0YcCdWfJKCKHUJ6xg7jtCYD5LYIO1po2hutsLWA3zIoTE0bgP+fdgoyTGrEoc2wug+j0+7CcKS+VpfFI8Lx/mszZ3T3HeTKpnetT/CMwYa9vWRkOsE1IgK3MVbIk3Sq2UY5nJjaO0VBAW4hHpbHjJ0hklQZet93+cRh2cjS09HkiFx0Jl8gbLgb0384z85ezpeY= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Uz9lDTEAGG4o1KRoYtOjYelPvot9V5fODAXCiP/2SCYZP2vhlwzHz69casy7xGRvzxiwGjQn64iWDWzMGc4Pb7B6Q1CikWOeTZhHlcMH++Bh+Z+CF65jYz294X0+ZgT1O3sJ7o67GfNjsgadQ6xmOWFKRJ/ed5onEOFErVilKtiB8gu3wsYEJppZjqGNvEh4KtDIf+/28a3KxUNCu0ZTL3qkKCaCGIe/JGwhXqTFIRpkm8BnB3/pYaskdEcu+WwOMEH0LBpbw25hvyYfSAU9+/NwOLNkzSrIQsWhJ6BPw9TDmuFF/t8EuPVIU+AhRNpOOgJGjF6/sd2V83eFwLIkhDWxMPeRP/jx/lo6WUkEQ0MNiHuCrVYL5fHdlvw1eHDjUxpry0MAuCYilZr83YOcrp9T8DFG3Zqb67Mfj01wfooPdpA3oZ59PEJrgBzWoI9JOecGeZODGdZflmQhCV2tDQWk5M9oq8ek/A1CNBV3sG4RQTMjYqLzF417oSdib+I7fRgEQly6AePUX7yEQZBMOnEKW8PTSx1PX9xCQRzzoBcFK7WemiRAVBa43TM8yDPC5++KVwyMFd+b+CVMGallwKY5X3VH5e2oTjM34AUhUvXXMnOAm8biYUPuvDxNBmJidDEZQl0G828z1nbzLLpvv36l96aoaAmzeVgO9w/dhaMaf7Psp+K+U1CEbBXeDWV/Ka27bTCnVKeH4IzxKNH2Dv+JwOMBOZQEFU6+4JQi4dH95ft7+axJkSEFGBPCmIYCERWuf77E5bVGcSGMQUQ0t/9x56ghXBm9cy7wraVM9TUWmSp/+Psn4wKZHW8lqXKBGzd65yReed7C2pXn123R5ZFGGrlEioFULVU/qJzZY3sgcRIYMMk0mveeqK/IqQ4pKfxmL0kcNWWS8zMWbP7prK8j2j5SntGAxAqbwtlTNm09C3eJ4q/D1HK1plrLWH8J3zI1Lq10AJ9syLy+w/EQQwe8+fNOsppTEWo3xl97DYJUVeEmr3q0wrc9LvW94aFovm1LilW3iV7Ee7DXfM9IWFYPkH+3j3kJQf0AzSG4zUCAsYYT2iOMjmargm+5Gk6P2ed5zg6L9PMPrQ+XcuYyZmWxnhTU+nf173bQaQzHeMSr2oRRq0BtSVPcjClrLuXXuQmqBr6asKuUjOJKt63LQIR732XDJpZRiGaASaXDb+2wA/xEhHdDt7lQS6cZMQVvGttDI6l2hOotUfa4pu+crCG/woVBLYCrMCIi61C6ogVV2UQD8ee7l3EggA0u0I64 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dd39c64c-4a33-43b0-9429-08dbc06ae1c7 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2023 21:35:49.6101 (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: DU2P250MB0145 Subject: [FFmpeg-devel] [PATCH 13/14] avcodec/flac_parse: Use void* instead of AVCodecContext* as logctx 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: b0j0vs1glmCt It more directly shows that ff_flac_decode_frame_header() does not modify the AVCodecContext given to it at all; and it would not be allowed to do so, given that it is used by the parser when it is still unknown whether said frame header is even valid. Signed-off-by: Andreas Rheinhardt --- libavcodec/flac.c | 18 +++++++++--------- libavcodec/flac_parse.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libavcodec/flac.c b/libavcodec/flac.c index 174b4801be..fac4cff9e7 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -48,14 +48,14 @@ static int64_t get_utf8(GetBitContext *gb) return val; } -int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, +int ff_flac_decode_frame_header(void *logctx, GetBitContext *gb, FLACFrameInfo *fi, int log_level_offset) { int bs_code, sr_code, bps_code; /* frame sync code */ if ((get_bits(gb, 15) & 0x7FFF) != 0x7FFC) { - av_log(avctx, AV_LOG_ERROR + log_level_offset, "invalid sync code\n"); + av_log(logctx, AV_LOG_ERROR + log_level_offset, "invalid sync code\n"); return AVERROR_INVALIDDATA; } @@ -75,7 +75,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, fi->channels = 2; fi->ch_mode -= FLAC_MAX_CHANNELS - 1; } else { - av_log(avctx, AV_LOG_ERROR + log_level_offset, + av_log(logctx, AV_LOG_ERROR + log_level_offset, "invalid channel mode: %d\n", fi->ch_mode); return AVERROR_INVALIDDATA; } @@ -83,7 +83,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, /* bits per sample */ bps_code = get_bits(gb, 3); if (bps_code == 3) { - av_log(avctx, AV_LOG_ERROR + log_level_offset, + av_log(logctx, AV_LOG_ERROR + log_level_offset, "invalid sample size code (%d)\n", bps_code); return AVERROR_INVALIDDATA; @@ -92,7 +92,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, /* reserved bit */ if (get_bits1(gb)) { - av_log(avctx, AV_LOG_ERROR + log_level_offset, + av_log(logctx, AV_LOG_ERROR + log_level_offset, "broken stream, invalid padding\n"); return AVERROR_INVALIDDATA; } @@ -100,14 +100,14 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, /* sample or frame count */ fi->frame_or_sample_num = get_utf8(gb); if (fi->frame_or_sample_num < 0) { - av_log(avctx, AV_LOG_ERROR + log_level_offset, + av_log(logctx, AV_LOG_ERROR + log_level_offset, "sample/frame number invalid; utf8 fscked\n"); return AVERROR_INVALIDDATA; } /* blocksize */ if (bs_code == 0) { - av_log(avctx, AV_LOG_ERROR + log_level_offset, + av_log(logctx, AV_LOG_ERROR + log_level_offset, "reserved blocksize code: 0\n"); return AVERROR_INVALIDDATA; } else if (bs_code == 6) { @@ -128,7 +128,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, } else if (sr_code == 14) { fi->samplerate = get_bits(gb, 16) * 10; } else { - av_log(avctx, AV_LOG_ERROR + log_level_offset, + av_log(logctx, AV_LOG_ERROR + log_level_offset, "illegal sample rate code %d\n", sr_code); return AVERROR_INVALIDDATA; @@ -138,7 +138,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, skip_bits(gb, 8); if (av_crc(av_crc_get_table(AV_CRC_8_ATM), 0, gb->buffer, get_bits_count(gb)/8)) { - av_log(avctx, AV_LOG_ERROR + log_level_offset, + av_log(logctx, AV_LOG_ERROR + log_level_offset, "header crc mismatch\n"); return AVERROR_INVALIDDATA; } diff --git a/libavcodec/flac_parse.h b/libavcodec/flac_parse.h index 67a7320bea..b0cbad825e 100644 --- a/libavcodec/flac_parse.h +++ b/libavcodec/flac_parse.h @@ -75,13 +75,13 @@ int ff_flac_is_extradata_valid(AVCodecContext *avctx, /** * Validate and decode a frame header. - * @param avctx AVCodecContext to use as av_log() context + * @param logctx context for logging * @param gb GetBitContext from which to read frame header * @param[out] fi frame information * @param log_level_offset log level offset. can be used to silence error messages. * @return non-zero on error, 0 if ok */ -int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, +int ff_flac_decode_frame_header(void *logctx, GetBitContext *gb, FLACFrameInfo *fi, int log_level_offset); void ff_flac_set_channel_layout(AVCodecContext *avctx, int channels);