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 9598749EA0 for ; Fri, 14 Jun 2024 18:27:26 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0DF5B68D702; Fri, 14 Jun 2024 21:26:41 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2041.outbound.protection.outlook.com [40.92.90.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D75A768D6CB for ; Fri, 14 Jun 2024 21:26:34 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DYshaXbHUGg6h1uaCkLOOP9aulcDAKZQ/w7YiR0hgONualH0Gik0UWgicvtIDVEQ7LYOCtt5VHaxw7aYHHUyUkd7QjazzsuR56kHUAz1XOp6S7cGQ1hh6nAcs14oewETwnNE2XDxHTrLOe/RmFddc1jcPI2773msjeTFUL4FNQrtvKt3567rYLM8Hl92Opw/pX+X0HB0XIrSsW9t1DB6cSQ3TZXhkgcnto1HlD6MQ/+tnmXS4+ZeD1L+8Y3VAqIqRiUjth9NCZhtqChPe0qxpvmTNmLxaP4bW2q0IUS8/9viXW7OlH6107X0gFIAlDD2yJIeYGOa3MKBi0aPFTi6/A== 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=Sf7sO2HVu00w528ADJVZj+QFWP7RiJWbtbNpco0BAXQ=; b=dQ0Ho6Qntd0xQRNtyU2M/1BNivuISMDQ6URYjOpGDU+kFai7wllBoAgoonWrbvNJu7lOku1nabJ7Poxux21LMd+Pzi7nmWJSpf7ogv7erc/waZV2a5kMAMoc4X+LEujeCE1jjfkF/xTQ4/Ak9f28pnZZv7H9jyWTG1HqJschnmCSkVcunu42N5YiXgQagHFfgbRHkS01T1Xn6NceiTQJE5ShPmxdRxnmbidF9s/VpxKpRCWHumKlkCuUoo5jHQNgT1m0ypkJZ4TGKbrYEeo2W2yTnVvpdopjHoHqG+AU7qtHIbkjyUHVsBMkBQkaEM6bHd/fFnQbcSDyf4MK4J1Jtw== 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=Sf7sO2HVu00w528ADJVZj+QFWP7RiJWbtbNpco0BAXQ=; b=W6JJuL/l2moqCWGCtYogPn1N5JSKZCLz7FJAtApAzCgWDt/Wx2tP2iPrw8gw5FZg89y9VkTl57psXavdTANz94AtiS19w9ZwFA1LjHr4E+x522xppKn2Xk9fx1OBeWnuNtXJO455OCnifLs5SwSZBViBsfkZwBMDOtA0Ii8dvIQEUP69SGb/at+4Ota+xZwk4jZjy+L7vJqooOe331xZsx43yxwbrHKmwaK8wRrcLMZ+jByJ580NCTutAgo4SwQd/+trqJ0PE+cOvMy3+9wAIhJd0dz1g4XtdDDUv+oerOY2CgLl+VFd2J+5zFVIOU6VfDlUHMD70YORqBbIGV2TgA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PRAP250MB0563.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:298::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.22; Fri, 14 Jun 2024 18:26:33 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%4]) with mapi id 15.20.7677.026; Fri, 14 Jun 2024 18:26:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 14 Jun 2024 20:25:56 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [v70CKVkfZl0W0tezErVWypu3xyBAWPQeo2V75Ij3eQs=] X-ClientProxiedBy: ZR0P278CA0072.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::23) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240614182558.3088802-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PRAP250MB0563:EE_ X-MS-Office365-Filtering-Correlation-Id: fa68eb9a-4c70-46a6-c7a8-08dc8c9f847e X-Microsoft-Antispam: BCL:0; ARA:14566002|461199025|3412199022|440099025|1710799023; X-Microsoft-Antispam-Message-Info: XeSy0fdZcN/RK1/PZO1wLZ9FRGtavpCBTNJmRyvDVGoEJ/oyqwdf8XcS40XHHO42XU64NhUSSoHSOruCaWucxvukQXogwVLIntHKB2iGls70S8TRFtouxnIbaDZbPiTOy6wfHU+7mREROobew14afuTkSSnGvjxFOS2DsOMpYvWeWg+5TyeNEdBL6Afi09mygRWtMcWQZRflviz2AW4QL+f2Kiz4mdy5K3KQdh9y3T1j0IVyT2lY5511pqxz2Eduxhz8oU0hu5e51qmL0+4JKEoH6yh7kJjGR0XI3DxVUdC4mcYcgbIrmdsAL2nKAqKS4s+D3EUzcI9yO/B4H2hVxpHsg/kUHz3Mz716IgYif+rjeu+GaRciTHDAAGcJHb4+gip6hSSg+OPj2oyK3AhgvdPLHt6k6guqCwdropAkLrBUeY4qjAjrrJfnlEaIZGzTsU6DfB0m9HQFl169feXj0D76VYYwmNt66ybdaMXRoS0R+E9Jh/1hN2y64wdLiDLMW2haNyFlQplNvlQy/RjMN1xkWplQdWeWKnUhkbf+BRx25AcvRJNs2MOocowWUtKGWE25ioDMINDTteAhFf7u2UHupbWYNu9AJhv406tSFJeWylutFFP89f6JpFO4J29L X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gLVFjjmOQWa+qVgSlrfXYr9VeZ5h94i5GI3gLFBHl3BUtMlKCER/9vWdJz2g?= =?us-ascii?Q?EIwZmMy82OFECAIeN6eaEdJ4+XVIaOEhfg7/dF0OATsMZZ/NkLTb/FxMRUqR?= =?us-ascii?Q?6bcvSgCfsM8s9ma8aIqGgLG7Kz8UWpMbH+PWMYRphHTvh3TEt27Y7ShnL3Kc?= =?us-ascii?Q?TA09NdnyacSv6N0SS7jLKtg/Z0bcdlJFRaFWi7DXgXYOpGtmAGgRUKthJ2dP?= =?us-ascii?Q?ek2E3ha6v7J/OpZJTgGVm1tEiT/c60E7bcfGD3cB/poo/KvzYbs2mpgTVIUs?= =?us-ascii?Q?NWNMv+ERa+mN3Ul2z1pQFUeXXBuPpObedF6fJ0qbNqC7hvcI8gyHCbXLqK/Q?= =?us-ascii?Q?PJvvm3qz70dqMz3px/JzKbnCs29tYcI0k5kpt8hFEM21GfYoksF6I2anTnIA?= =?us-ascii?Q?zIHf+vWD1ghcc2NMklBvnSn/cvVydrmZ5uWCeqlju/hxVle9aYVh+fEuTcul?= =?us-ascii?Q?SmdkAT5tUWGh8LoqWEqAD7KfDQRn8pIKNTw2vMkn1zmtaJixrjQIGjLnkBjf?= =?us-ascii?Q?YcuC+LEiv5UIRclm2jmlIlb8xzuVdGgZjCyVpoXA0pHhJzeAdH1O1dJqMyTa?= =?us-ascii?Q?ecBzf0oZarkzG+JlQNlyFHBpSOBBT3HRDfnwpyoQ1JUNdoV5KZuDVE0qCCeQ?= =?us-ascii?Q?HcZslqBgnyMNNUf674Zw/aTKVXUhWx5tkkLSDR+E+hkBY7+unUjT46hvqjaI?= =?us-ascii?Q?WWa+izkWFW16Z/lVBYZ/TgAWbdwj4q4Vay2yp3jTw/cuxMh8Rqtw7xliwBD5?= =?us-ascii?Q?MSz+dY/j5KMgvg3/8Mm/LTwIP0iLmv/BMi4uzxZjhljdihmwBcbP/hIW2y97?= =?us-ascii?Q?/9DvVVuWVINDt3eLfhlGpRA8t9bKuiarcSFRsK33n2ZBMYTD0AGo83aSwHKu?= =?us-ascii?Q?dteYl6sgp9ewcltiSGjdNFyXoJ8K7yhM9jzCohskkHrZBfdUjnhbI2XFucfk?= =?us-ascii?Q?3CpFWsCFIGPgxmpQRdpClSi7disNxqZUdSsE8mxoLlYfyhblmDH2uZE0n57x?= =?us-ascii?Q?bZ1/Umf00k/K/d6lMlFGXxXZvs2SoJmUs2HBM66SyOdiWJS86sbWokYSA4dZ?= =?us-ascii?Q?9f81PzHVBf0+nzR/OdDF1N6L2dEeB8NVCLcqOB9bIvhkN2K89hbAd6TcD/hv?= =?us-ascii?Q?MXYBb08iY3AdlvLtaO2wBPlcHCQd3H567PqpZ1jYZB49yoOpCoyiWmUD6t6s?= =?us-ascii?Q?cTkjcGIoz8SOlPjFG5n7DV6dP4ghnpoEWwOPlPel82YXsztljLSC//Bwod1U?= =?us-ascii?Q?OZIMsHbBfPMFcB5Uj3lSPn0VWvEpnRV95U8ddq3WEQ=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa68eb9a-4c70-46a6-c7a8-08dc8c9f847e X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2024 18:26:33.2124 (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: PRAP250MB0563 Subject: [FFmpeg-devel] [PATCH 65/67] avcodec/mpegvideo: Move quant_precision to Mpeg4DecContext 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 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: It is an MPEG-4-only value; it is always five for the MPEG-4 encoder, so just hardcode this value and move the MpegEncContext field to Mpeg4DecContext. Signed-off-by: Andreas Rheinhardt --- libavcodec/h263dec.c | 1 - libavcodec/mpeg4video_parser.c | 2 +- libavcodec/mpeg4videodec.c | 20 ++++++++++---------- libavcodec/mpeg4videodec.h | 2 ++ libavcodec/mpeg4videoenc.c | 2 +- libavcodec/mpegvideo.h | 1 - libavcodec/mpegvideo_enc.c | 2 -- libavcodec/vaapi_mpeg4.c | 2 +- 8 files changed, 15 insertions(+), 17 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 19a57582ad..a81786479d 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -99,7 +99,6 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) if (ret < 0) return ret; - s->quant_precision = 5; s->decode_mb = ff_h263_decode_mb; s->low_delay = 1; diff --git a/libavcodec/mpeg4video_parser.c b/libavcodec/mpeg4video_parser.c index 402594e01d..b00b523bde 100644 --- a/libavcodec/mpeg4video_parser.c +++ b/libavcodec/mpeg4video_parser.c @@ -122,7 +122,7 @@ static av_cold int mpeg4video_parse_init(AVCodecParserContext *s) struct Mp4vParseContext *pc = s->priv_data; pc->first_picture = 1; - pc->dec_ctx.m.quant_precision = 5; + pc->dec_ctx.quant_precision = 5; pc->dec_ctx.m.slice_context_count = 1; pc->dec_ctx.showed_packed_warning = 1; return 0; diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 77bd3e9947..debcafc4c0 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -728,7 +728,7 @@ int ff_mpeg4_decode_video_packet_header(Mpeg4DecContext *ctx) s->mb_y = mb_num / s->mb_width; if (ctx->shape != BIN_ONLY_SHAPE) { - int qscale = get_bits(&s->gb, s->quant_precision); + int qscale = get_bits(&s->gb, ctx->quant_precision); if (qscale) s->chroma_qscale = s->qscale = qscale; } @@ -2706,17 +2706,16 @@ static int decode_vol_header(Mpeg4DecContext *ctx, GetBitContext *gb) // FIXME sadct disable bit if verid!=1 && shape not rect if (get_bits1(gb) == 1) { /* not_8_bit */ - s->quant_precision = get_bits(gb, 4); /* quant_precision */ + ctx->quant_precision = get_bits(gb, 4); /* quant_precision */ if (get_bits(gb, 4) != 8) /* bits_per_pixel */ av_log(s->avctx, AV_LOG_ERROR, "N-bit not supported\n"); - if (s->quant_precision != 5) + if (ctx->quant_precision != 5) av_log(s->avctx, AV_LOG_ERROR, - "quant precision %d\n", s->quant_precision); - if (s->quant_precision<3 || s->quant_precision>9) { - s->quant_precision = 5; - } + "quant precision %d\n", ctx->quant_precision); + if (ctx->quant_precision < 3 || ctx->quant_precision > 9) + ctx->quant_precision = 5; } else { - s->quant_precision = 5; + ctx->quant_precision = 5; } // FIXME a bunch of grayscale shape things @@ -2904,7 +2903,7 @@ no_cplx_est: av_log(s->avctx, AV_LOG_DEBUG, "tb %d/%d, tincrbits:%d, qp_prec:%d, ps:%d, low_delay:%d %s%s%s%s\n", s->avctx->framerate.den, s->avctx->framerate.num, ctx->time_increment_bits, - s->quant_precision, + ctx->quant_precision, s->progressive_sequence, s->low_delay, ctx->scalability ? "scalability " :"" , s->quarter_sample ? "qpel " : "", @@ -3286,7 +3285,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb, } if (ctx->shape != BIN_ONLY_SHAPE) { - s->chroma_qscale = s->qscale = get_bits(gb, s->quant_precision); + s->chroma_qscale = s->qscale = get_bits(gb, ctx->quant_precision); if (s->qscale == 0) { av_log(s->avctx, AV_LOG_ERROR, "Error, header damaged or not MPEG-4 header (qscale=0)\n"); @@ -3798,6 +3797,7 @@ static av_cold int decode_init(AVCodecContext *avctx) s->low_delay = 0; /* default, might be overridden in the vol header during header parsing */ s->decode_mb = mpeg4_decode_mb; ctx->time_increment_bits = 4; /* default value for broken headers */ + ctx->quant_precision = 5; avctx->chroma_sample_location = AVCHROMA_LOC_LEFT; diff --git a/libavcodec/mpeg4videodec.h b/libavcodec/mpeg4videodec.h index 4a26d18987..734237b16f 100644 --- a/libavcodec/mpeg4videodec.h +++ b/libavcodec/mpeg4videodec.h @@ -60,6 +60,8 @@ typedef struct Mpeg4DecContext { int enhancement_type; int scalability; + int quant_precision; + /// QP above which the ac VLC should be used for intra dc int intra_dc_threshold; diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 84b603f312..0b18776497 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1358,7 +1358,7 @@ void ff_mpeg4_encode_video_packet_header(MpegEncContext *s) put_bits(&s->pb, 1, 1); put_bits(&s->pb, mb_num_bits, s->mb_x + s->mb_y * s->mb_width); - put_bits(&s->pb, s->quant_precision, s->qscale); + put_bits(&s->pb, 5 /* quant_precision */, s->qscale); put_bits(&s->pb, 1, 0); /* no HEC */ } diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 844da6881f..8083299b66 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -384,7 +384,6 @@ typedef struct MpegEncContext { uint16_t pp_field_time; uint16_t pb_field_time; ///< like above, just for interlaced int mcsel; - int quant_precision; int quarter_sample; ///< 1->qpel, 0->half pel ME/MC int data_partitioning; ///< data partitioning flag from header int partitioned_frame; ///< is current frame partitioned diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index d05a93d249..abeb235277 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -951,8 +951,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) s->h263_slice_structured = 1; } - s->quant_precision = 5; - if (CONFIG_H263_ENCODER && s->out_format == FMT_H263) { ff_h263_encode_init(s); #if CONFIG_MSMPEG4ENC diff --git a/libavcodec/vaapi_mpeg4.c b/libavcodec/vaapi_mpeg4.c index d182f879cb..2c9dfbe42f 100644 --- a/libavcodec/vaapi_mpeg4.c +++ b/libavcodec/vaapi_mpeg4.c @@ -74,7 +74,7 @@ static int vaapi_mpeg4_start_frame(AVCodecContext *avctx, av_unused const uint8_ .resync_marker_disable = !ctx->resync_marker, }, .no_of_sprite_warping_points = ctx->num_sprite_warping_points, - .quant_precision = s->quant_precision, + .quant_precision = ctx->quant_precision, .vop_fields.bits = { .vop_coding_type = s->pict_type - AV_PICTURE_TYPE_I, .backward_reference_vop_coding_type = -- 2.40.1 _______________________________________________ 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".