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 971C242060 for ; Wed, 27 Jul 2022 09:32:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A456468B8E8; Wed, 27 Jul 2022 12:30:53 +0300 (EEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074058.outbound.protection.outlook.com [40.92.74.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8854168B8D9 for ; Wed, 27 Jul 2022 12:30:51 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QCr7p2KLyP1PR30kYrQuKOBHAG5MKRPw9ks6t2mkknciin0/MNr9kzIfdZJyNPZX/64OX63reMdhE10yQv5rHHLY5YadHnPuFkBJARYi0L8Scw/2OouXGkaW3WKdLi/KbrWCsaDdEQW0bJ3bWcA26yK29RQ4SD0B9wi7Hsp9tbO0TE3xfHi7l9mU8xajVZ6d88q1Ix+fXjG6BrWmR73vH7EgFTde4M3Ix5yf0zSdE38YAk2fldV+mS700okHHnwV6X/akxB+C4iajU4yu+HzmkMeapPOG+Ya55Ggonm2gMnodOyrinvt4DkJ+hk3IDuh1QIeADtrYPvCl5hAsbCjUw== 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=n/UB4z1Znox28o4aLkJlwO1Hn6W/RCKMbLMBb5rONLE=; b=OAUZXbl4ZTPgHAMgPlL0DviinuoMnesw0lp6e6L/qNjCvWevbDcMvv/88U8TPwfW8V86dpnTYJfsZ5mSWW74mZfYioKc6WnkmyCe+5xhHSdGe/kLsdiQGDOxwekXFiHliuEHjPZvBEV5KMR6ZMQqWveAIQCBCCjYVIWYR8dJk4uVhqm90eVprsgmfsGpI7d8gx7Rk+f9eP4yZJbSLKnDW8xYpq056fN6Dh/ESwCjSDMDeGyds6jcHA+SCCEOls7I7Vk3GvL2L+WOWqpG4EK4/135xU/m23hS2S03qTqvgXJkB60bIuXZA/uizmO+kDi7VVwzBnATvLlmlywUB4oQgw== 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=n/UB4z1Znox28o4aLkJlwO1Hn6W/RCKMbLMBb5rONLE=; b=IrW1lOHDsrULEe0gczTIfUYluj3f3VaPuNZzVxmy3Xi9PRl+CuST7ppDwiN9dxtAMC5+KcZ5hWm2WGJMdHoDsTjlqEaGidWyKFfjM4FGHRv1xqdrLEA8/1SPng3FYAFPskCOAKm75YgaWzwDxVkTAOLzsBzKV2Scek1J1PDMPJu6ebTAzDfrz+kOSXVbTwJyQuQxZ8G7Zuy4wKeiBwebqvMYVgU7CtIVIh8XYJL2J9rQjgX4pikx1zIT4OhUT7uakxlBoZvD/1BYWqiP5tmGN16CBO9i3JJLUfT+jKrW5ygLUCjPWUsARIsrJycYk8RT9IjcSlHBdHtUAjwYhhmWUQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AM0PR01MB5395.eurprd01.prod.exchangelabs.com (2603:10a6:208:112::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.24; Tue, 26 Jul 2022 21:51:27 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5458.025; Tue, 26 Jul 2022 21:51:27 +0000 Message-ID: Date: Tue, 26 Jul 2022 23:51:25 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [DGuBMkaM6nOBt27PmFKCEE3WT5vNYvLJ] X-ClientProxiedBy: AM6PR10CA0103.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::44) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 912140e7-7662-424a-a15c-08da6f50fd77 X-MS-TrafficTypeDiagnostic: AM0PR01MB5395:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HWISe501RhoB3oz+VGlUb4GeHgxeThVvoh/weuCvM0aKE7pbSgE1qrkaS/d0bH2dBNtPro+Pzkv0z8JbmTGAjlq7SO06r3GbY8zsg7/GoOXXE3nvi5ed1cRTdPkBnKfhsbCn5tDU9AcnWJaxXU3nDN30/a8bNP8ppcEqPVcELABQpdgGwlAYuwzN8kcw62eRoFaivmudtKMseP2PY9GlbJ8ftyoEYfr0XxpTHUmeHZ5Vq4taHjyzC05rqVGDbjd17GqTkMWAQyIWFhdBieC7/sPwoN3088F9+0OtV9SHURybXkl/R3R80UJmeG/jYHPhY3i3AP4ElVm4wNrLIlxPaxHhDp2nqL8AMp9AS1dIYLI3xKkTPh+JQMb4VLyyJF51g7QfJr6r0dztiHMhRolNEFKB+oIlqcl+RVZwH7NwxkcwV8dLAEW/oNhof1LskR92VV3r9sFDdatFYYIZuLHAuapCuvtUIMbii921ZheXj6xJ8ExcRO5OFiCJu6deoIVt+NomYTID4BNcUsEoRJ8Ov80ZNMyc19O95f/tvILav6f/95vYJU60TlxmSNSMHND7iUfYqbcylsF/NZDyKV7UxIOVD4g129W7T1r7vKtiGvVH3as9Pc/9+pIbT4rUr6x/MB1LHU4SPTH5Q9XoO+2Ayr0QxntW6OUV2QP9xy5fpIXn6N1XqwxFbmhW4gP+A4Ij X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eTVNc3IvMEVnamVtdTAyVE1LY0wySEcvOFhCa3F0T0RXMXZhbEtkZlAwTzQ0?= =?utf-8?B?RWdVQzVSYTV6RW52UHhjRXpDR1NsamNzSGZ4aXhZUFNGOUhzYUFjb0lJUFhX?= =?utf-8?B?QlFxNkpIb1BFRVJLNlNVWE1SL2ROTnlVWlR0c0d6TWRPcW5aQWNpNU5zOXNS?= =?utf-8?B?bm0zVDdmSUpmSEdwMEFsZjdqZlVtY1lCamhpNTVaNm9wdjZtSE1ZQU5wYmJU?= =?utf-8?B?OENJZkgrNjhMVElxb3JscXNmUTlDOEJLMEVUYkFMZXhaam56bDdtdlBkcXBP?= =?utf-8?B?Mm0wUHBTdkVud2kvSTBwaXAwZDNzZjlwQnZqU00vOS8wQjRsdGliL3BPV0U3?= =?utf-8?B?WjMzdU5zWmFYZHFDM3N3bWhJSCtkR3hMUWdRSXZpbFd6MUs1czVjclpidElC?= =?utf-8?B?SEhOK080dmRvYTFZckRKMTIrSWdhUTRralN5ck4yTEN3ZVB0dVd6YkVQYVFI?= =?utf-8?B?UWYrTWg2ZWllR0FtMlZwS011NlJ2aTJ0Ymd2RlIyTXdadHkrSzJVcHYrb0c1?= =?utf-8?B?dUtEdUhMN0cvNW0yWitJYy9CbEV4QlZUSUh0eURqblphZC9hbVJIV3pQZlRr?= =?utf-8?B?aVNxdGUwVzlFeUpyWHZGeE5URURiN3FnMDVTMjZ2TkVvenN5OHZFejBUWDFs?= =?utf-8?B?bDhDOFV6Q2J0ZGFpSGx4SjZITzdYOHVHVWpkVTVKOHI2N0pDWmc4dTdiSHJK?= =?utf-8?B?WDQ5MlVYdjJYREFCVnFkOXZnVGw1SVZQaTFvd1V1Rmp3VlpwUGt2UWZXRjQ4?= =?utf-8?B?UjAyYkJxN05xMXNhYlU3bDA3Ui9jZ2NPTXQvck9RVXplS0hYQ295aFBoRE1M?= =?utf-8?B?b3pEZ3Q4cE4vQzB2Z2YvTHd5c2dlTTVtM0Z0Sm5uaHpjbnVjNjdhUWxUQWFI?= =?utf-8?B?MmEzRFFWcm51eE92WWxiZDdQR0h6Vys4Sm12MzhLWDMwMFMvcUNzV09FeVJT?= =?utf-8?B?YmppTmRkZVVKeFFRUWpmNVFOWHJjOEdDVWJLdDQrTGNubis0eGx1VTA4Y0w3?= =?utf-8?B?a2YxSEdITmRrc01PMkR4R1dGV0dwT2dVTS8zRlFOQU9LK1pUYmdROEpOQnJt?= =?utf-8?B?ZEovcnZOS1B1MWJtZnU5WDZLV01tazlucERnV3BoWENaS1hSYUZzb3VKWkRV?= =?utf-8?B?bDZBajlQSUhhdUN4ZXB6aFR3NjNBdGVmaUx5K2hZeU9mYTdmYWp3bktWUTl1?= =?utf-8?B?cDh1d1ZJZ3FWZEptYXluQVBVVEgyajZVL0tlWnN5cndEWUJHTVRpQUdmRzN5?= =?utf-8?B?VmlmYXNLSnUxRXpMRW9EeUxLazhSY1AxZFVGL1drYytNN3gvM29wa2E5Nm5w?= =?utf-8?B?YVlleW4zblJhU05IZUNOV2o5QXpUUmJVdWZKUDEwYWJPc3J1SG1hZi95K3Zj?= =?utf-8?B?TGpLdWo1VFZ3TkNiTEk4TG5ieU1OaUY2RWZCWThqcTVjMStoTnZ3T3Q1VEF3?= =?utf-8?B?QjFnczNlN0lRRG9tSG1pU3cvd3F2b3Q3ME9Td1lqUlZkUnFzMHBtY3A0OUJ1?= =?utf-8?B?OE13L2NWb29QL2M1b1FRaG1ENjFXR0hRdGZIUGIvaTB0aWlkL0FMamlKUi9G?= =?utf-8?B?bzducTVaVU9xbXAwUFAySXcrWVhvK1ltZ2ZueG5rY04yRzloZGIyeEJFaHlm?= =?utf-8?B?TUhoREN0a0p6WjRhR3haZmVUSHYxLzNVdzVHQ2tXT2FBNnJ1RERhMzVHRWwr?= =?utf-8?B?K2FnM3VzcTFCVmwzTDRrL0ZkOEorZ1NtSFh5UEQrNkpDaytGQkJkdkN0NCtC?= =?utf-8?Q?1f1Hz2Ofazp4vXQQ8s=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 912140e7-7662-424a-a15c-08da6f50fd77 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2022 21:51:26.9545 (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: AM0PR01MB5395 Subject: Re: [FFmpeg-devel] [PATCH 1/5] avcodec/hq_hqa: Remove transient GetByteContext from context 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: > Signed-off-by: Andreas Rheinhardt > --- > libavcodec/hq_hqa.c | 48 +++++++++++++++++++++++---------------------- > libavcodec/hq_hqa.h | 2 -- > 2 files changed, 25 insertions(+), 25 deletions(-) > > diff --git a/libavcodec/hq_hqa.c b/libavcodec/hq_hqa.c > index 9a07d83114..a17fa18bf8 100644 > --- a/libavcodec/hq_hqa.c > +++ b/libavcodec/hq_hqa.c > @@ -24,6 +24,7 @@ > #include "libavutil/intreadwrite.h" > > #include "avcodec.h" > +#include "bytestream.h" > #include "canopus.h" > #include "codec_internal.h" > #include "get_bits.h" > @@ -114,12 +115,12 @@ static int hq_decode_mb(HQContext *c, AVFrame *pic, > return 0; > } > > -static int hq_decode_frame(HQContext *ctx, AVFrame *pic, > +static int hq_decode_frame(HQContext *ctx, AVFrame *pic, GetByteContext *gbc, > int prof_num, size_t data_size) > { > const HQProfile *profile; > GetBitContext gb; > - const uint8_t *perm, *src = ctx->gbc.buffer; > + const uint8_t *perm, *src = gbc->buffer; > uint32_t slice_off[21]; > int slice, start_off, next_off, i, ret; > > @@ -144,7 +145,7 @@ static int hq_decode_frame(HQContext *ctx, AVFrame *pic, > > /* Offsets are stored from CUV position, so adjust them accordingly. */ > for (i = 0; i < profile->num_slices + 1; i++) > - slice_off[i] = bytestream2_get_be24(&ctx->gbc) - 4; > + slice_off[i] = bytestream2_get_be24(gbc) - 4; > > next_off = 0; > for (slice = 0; slice < profile->num_slices; slice++) { > @@ -240,20 +241,20 @@ static int hqa_decode_slice(HQContext *ctx, AVFrame *pic, GetBitContext *gb, > return 0; > } > > -static int hqa_decode_frame(HQContext *ctx, AVFrame *pic, size_t data_size) > +static int hqa_decode_frame(HQContext *ctx, AVFrame *pic, GetByteContext *gbc, size_t data_size) > { > GetBitContext gb; > const int num_slices = 8; > uint32_t slice_off[9]; > int i, slice, ret; > int width, height, quant; > - const uint8_t *src = ctx->gbc.buffer; > + const uint8_t *src = gbc->buffer; > > - if (bytestream2_get_bytes_left(&ctx->gbc) < 8 + 4*(num_slices + 1)) > + if (bytestream2_get_bytes_left(gbc) < 8 + 4*(num_slices + 1)) > return AVERROR_INVALIDDATA; > > - width = bytestream2_get_be16(&ctx->gbc); > - height = bytestream2_get_be16(&ctx->gbc); > + width = bytestream2_get_be16(gbc); > + height = bytestream2_get_be16(gbc); > > ret = ff_set_dimensions(ctx->avctx, width, height); > if (ret < 0) > @@ -266,8 +267,8 @@ static int hqa_decode_frame(HQContext *ctx, AVFrame *pic, size_t data_size) > > av_log(ctx->avctx, AV_LOG_VERBOSE, "HQA Profile\n"); > > - quant = bytestream2_get_byte(&ctx->gbc); > - bytestream2_skip(&ctx->gbc, 3); > + quant = bytestream2_get_byte(gbc); > + bytestream2_skip(gbc, 3); > if (quant >= NUM_HQ_QUANTS) { > av_log(ctx->avctx, AV_LOG_ERROR, > "Invalid quantization matrix %d.\n", quant); > @@ -280,7 +281,7 @@ static int hqa_decode_frame(HQContext *ctx, AVFrame *pic, size_t data_size) > > /* Offsets are stored from HQA1 position, so adjust them accordingly. */ > for (i = 0; i < num_slices + 1; i++) > - slice_off[i] = bytestream2_get_be32(&ctx->gbc) - 4; > + slice_off[i] = bytestream2_get_be32(gbc) - 4; > > for (slice = 0; slice < num_slices; slice++) { > if (slice_off[slice] < (num_slices + 1) * 3 || > @@ -305,32 +306,33 @@ static int hq_hqa_decode_frame(AVCodecContext *avctx, AVFrame *pic, > int *got_frame, AVPacket *avpkt) > { > HQContext *ctx = avctx->priv_data; > + GetByteContext gbc0, *const gbc = &gbc0; > uint32_t info_tag; > unsigned int data_size; > int ret; > unsigned tag; > > - bytestream2_init(&ctx->gbc, avpkt->data, avpkt->size); > - if (bytestream2_get_bytes_left(&ctx->gbc) < 4 + 4) { > + bytestream2_init(gbc, avpkt->data, avpkt->size); > + if (bytestream2_get_bytes_left(gbc) < 4 + 4) { > av_log(avctx, AV_LOG_ERROR, "Frame is too small (%d).\n", avpkt->size); > return AVERROR_INVALIDDATA; > } > > - info_tag = bytestream2_peek_le32(&ctx->gbc); > + info_tag = bytestream2_peek_le32(gbc); > if (info_tag == MKTAG('I', 'N', 'F', 'O')) { > int info_size; > - bytestream2_skip(&ctx->gbc, 4); > - info_size = bytestream2_get_le32(&ctx->gbc); > - if (info_size < 0 || bytestream2_get_bytes_left(&ctx->gbc) < info_size) { > + bytestream2_skip(gbc, 4); > + info_size = bytestream2_get_le32(gbc); > + if (info_size < 0 || bytestream2_get_bytes_left(gbc) < info_size) { > av_log(avctx, AV_LOG_ERROR, "Invalid INFO size (%d).\n", info_size); > return AVERROR_INVALIDDATA; > } > - ff_canopus_parse_info_tag(avctx, ctx->gbc.buffer, info_size); > + ff_canopus_parse_info_tag(avctx, gbc->buffer, info_size); > > - bytestream2_skip(&ctx->gbc, info_size); > + bytestream2_skip(gbc, info_size); > } > > - data_size = bytestream2_get_bytes_left(&ctx->gbc); > + data_size = bytestream2_get_bytes_left(gbc); > if (data_size < 4) { > av_log(avctx, AV_LOG_ERROR, "Frame is too small (%d).\n", data_size); > return AVERROR_INVALIDDATA; > @@ -339,11 +341,11 @@ static int hq_hqa_decode_frame(AVCodecContext *avctx, AVFrame *pic, > /* HQ defines dimensions and number of slices, and thus slice traversal > * order. HQA has no size constraint and a fixed number of slices, so it > * needs a separate scheme for it. */ > - tag = bytestream2_get_le32(&ctx->gbc); > + tag = bytestream2_get_le32(gbc); > if ((tag & 0x00FFFFFF) == (MKTAG('U', 'V', 'C', ' ') & 0x00FFFFFF)) { > - ret = hq_decode_frame(ctx, pic, tag >> 24, data_size); > + ret = hq_decode_frame(ctx, pic, gbc, tag >> 24, data_size); > } else if (tag == MKTAG('H', 'Q', 'A', '1')) { > - ret = hqa_decode_frame(ctx, pic, data_size); > + ret = hqa_decode_frame(ctx, pic, gbc, data_size); > } else { > av_log(avctx, AV_LOG_ERROR, "Not a HQ/HQA frame.\n"); > return AVERROR_INVALIDDATA; > diff --git a/libavcodec/hq_hqa.h b/libavcodec/hq_hqa.h > index 08d79e7454..71aa36706c 100644 > --- a/libavcodec/hq_hqa.h > +++ b/libavcodec/hq_hqa.h > @@ -26,7 +26,6 @@ > #include "libavutil/mem_internal.h" > > #include "avcodec.h" > -#include "bytestream.h" > #include "hq_hqadsp.h" > #include "vlc.h" > > @@ -37,7 +36,6 @@ > typedef struct HQContext { > AVCodecContext *avctx; > HQDSPContext hqhqadsp; > - GetByteContext gbc; > > VLC hq_ac_vlc; > VLC hqa_cbp_vlc; Will apply this patchset (with the v2 of patch 5) 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".