From patchwork Mon Apr 29 21:14:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48402 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1509:b0:1a9:af23:56c1 with SMTP id nq9csp2272538pzb; Mon, 29 Apr 2024 14:19:40 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUAZuu1Yg42gf+RrQlymdzqyD416yC+Tbttx0vDdNoequJ3BRavw8cN9ntaOHCMzv7VypL+h7HTkNbh/zQYN3Da+t2CH/4zce0Zkg== X-Google-Smtp-Source: AGHT+IHoUOEeHRl7KYVQNIMdYVUAd/t1IfqjQSYGKTdsPIxiafVaBd3s+z2zNLEwoPd1RJfmbPMA X-Received: by 2002:a17:906:305b:b0:a58:a4bc:575d with SMTP id d27-20020a170906305b00b00a58a4bc575dmr7919619ejd.40.1714425579810; Mon, 29 Apr 2024 14:19:39 -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 g1-20020a170906348100b00a5888648f39si7611812ejb.162.2024.04.29.14.19.39; Mon, 29 Apr 2024 14:19:39 -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=uOB3h0lT; 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 F247E68D5BE; Tue, 30 Apr 2024 00:16:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2089.outbound.protection.outlook.com [40.92.73.89]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C44EB68D5DF for ; Tue, 30 Apr 2024 00:16:43 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nuKq6aqUl/goGPTXAZ72Pw42K3Ukw9NI22xYkJzZRPjRUGYiR/jkC7fjQg0KUzNVgGRmSECa333Bz6Qa1sbq/T956kGt7vA6oWb5mhW1s1IWkQceC5n1f5c1PAiLp67SitYhHQYlw+nYON9NZCUHQlsaS02+BQhCEQVcFq8LBU3pbKeB+iVJrKcQ4hok3wmASVaseOe3kiMe3gxA7//yfqTZnUkX7bQuPgTv1kYkdyeiRibG+HIuSk6vj7BZPej0+URYinGyRU3mffqmO3aW7qxWtGzSPw4p+iYzF1uyY2HEG8Re98GitvvVL/iSDEMlu2PAxOuZwgVmaa+DXRLRBA== 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=ybKGOTDxGwDcpkVP+17YeEZYj5YhIdtiscbI62eTIRM=; b=CwsmGfnbEuTPGIGuLJ/attqdCOwjeIhG39iKqMrusOB22pAry2f2R5r/mdCGRmMPmNX9PK70ylG/MFhyT9d8/lBCIBi4yjjcj+ciVU7b+e73LKfmBa7tMvsI+OfgKITAjXihCnlGcfYr65iQ5BJ1IW9NsVw0jilMqUXVjk2lNc6fyEp7dYs8BOL8aeOJQ52gwe449u/icgFJvLWMuIJ0Nwcl5s6B0oukf9L7gyx2BeScfbplcd+sz8y/t6qpIeXYa1Lfywk13u3fNSS2dTwEYhv6iPsP4jz3cR1qgCKXjRbCoRWjr04Ht8ywI8cp92OlOQgmLG1em7KvcnSuUJH9HA== 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=ybKGOTDxGwDcpkVP+17YeEZYj5YhIdtiscbI62eTIRM=; b=uOB3h0lTRcGCcfWA31CbvXAtGeaTs+MVlSEFCYIyy5NXYsDZoiTbpMppZ6xKsUywltBQB/viKKBzkMwMyMxrmctbUHOVRUcbBFL2V+dZAKrfkjLJBIMFcaX0fU/YFyk6rYFghGYd4KmUGVwl6MnH+HQq/fUHp8p25Wodnkx7qqxjVelx5/X/Afg5o2Xc8LlzzvAYlM8TjEi8p+4PsKWnmlDoBCK8fbtIYnwkrwLRMY8VcjjchhwhrvVonR/auvEdTZpFm4CuFokGoEyZ2/Wm8uzZdoCHYlJ+PJPgUGEgUPsOVc3QQ05efpZxIgeWucSoI9dAkID/IZ31xg68j8Umtw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by GVXP250MB1057.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:1b5::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.34; Mon, 29 Apr 2024 21:16:41 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb%3]) with mapi id 15.20.7519.031; Mon, 29 Apr 2024 21:16:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 29 Apr 2024 23:14:25 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [Yk07+UP2jghBOYqlhbNf3qeLBfMnWUsIxXwFO162Bk8=] X-ClientProxiedBy: ZR0P278CA0199.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:6a::21) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240429211438.3274834-30-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|GVXP250MB1057:EE_ X-MS-Office365-Filtering-Correlation-Id: 035271a2-3960-4e04-099b-08dc6891aa5f X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: wEoJyJ+Rd3KQ8+zKNNVLh/YpKJF7D1GDnGyqEuDArVzChZ9QQQJccDiFoPu1qnSqC8OYtNjYOE2B/AZ4hPec9+XdnGytwcbyUfbCIbrFcbV7+IIE/+GaMHjC0XI4hbr3+H0EGdZHNRnmrHQvOIdtcOR3NcONhDeAyCxpcFA5Vb1eEUHxTBqkrIEctX/YmEdDwR6lyBXl5Pu0ipmde+qghRxKU4sjniUjUXMDsXC3g0qdKRF7WiHvucVPZb4RwNuIsOaiiosfnhUYfZIMm8/dxd9h3dMlnrBNGapxirZoNPG3JrKkafuZ9wHg5AJFRDraDxU8FYzfX/IURYaIkO+858Ztouq1bYwm4hb4RIPkTtz6FNgLlOLCBtUN1hZsgE2T2MfNUe6ZjdIUra4NQagAtFpMl8uDv74KBGsJtiBGNFqDZ2N6q356OfB1iQjM+SPnRLz1xKuZmKlDfS2Kh4s9MEhAKLQ8IzT4dd6QVruD9Bb4V+j+aKv75HrkECpyLE79y1Kirl3dcWNBxZ/QBIUC/Mb01xzDHKkhWPjn3j1qXoV8GNegjPMkV5Ntgv/plBtu5QqiFTr2vBUMIYNq5RLL8aw/v8cZ4uUY9yrVyQagd1ne+XPiwAAVYKJV3d1IitAi X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jVtDg8f6W3avpeEUhJ6BzvC8X750iASUhkfmvLqLNjUDWS9wsGGPSCHfLUgXdvykf83gXQreK0zhbm72nB1U2erSd62Dr2SHRyDoTZIBzM+w4Jf/ODWLAKpSD8Z+N+cbKCATqihkGngN7k5EniQZWm5RFt+gYYO6O5R+e7RUzqGomodFIW3wldbyRmqKnobRzb2QKa/dlJ8Yp1R44nj6hd71d4sF9cSj8x+qSomeQRbhCtykt4gQR8om8FPpCQAwiU3kcydyoX3X0izGAA1GwmmWfNjrO2AzxPPGKHVHzk94Q6WDemTPr5j16MVBzu3oR0zEmcToxRpGaISxszslQvrM73QbFTWMHavwUbuXsgUDjsBeFTRUrb9CJnbLN2LXfdQhKaR18AKAFf4vR6SSKpBkGdRnrAnZ/55mDHCmghUe0KPvFTev/sTxNV41KgDUGWPwQcW5bTdkYcQ9NapJiC8kjuDzELGYihDOu/YKcy00uWDxZAMetApGQjpzhmC+kCGtSSJaGlGqVXY44WalfwH/F55ovOKdwYOzlhoJBbCzKCLluaiWxvvQHeVWt0xqKNziGJTGAPxWBLzpm83FK9qM6/vH27nXikNlFFyIe1PahDUHiabpRgPiAzbvqva5NJEYy/Yh3U3ODGeKOWe7zyjuUlz/VrNY8BCK2AHof/zdUUDC01dMuUqj7ZFLCL/I8IfeugNtoVrSDbOpxQjhjoMUvLFt2b5zDTeFntiLIHlMeLHk0AfmKdMz5nW7oprR/nx15L3UKaZeAthXtGhwQJmv+DdfcA3Wi+ystYDA544zIpfPswZ0F+ihaF+pznH4elSVaQPlvugKL5hjk6YIWyp3HuuUAeRAdUHwSdkqyZc7ti/RFK2v/NW3e5a5NwtGSXc+vhdoeeI89NZqr/v5NLJQl/NT0/CHjFpI7+KvnnCHR0PU/cEIoFGz4p8ZszPqs+aSaAz+z30Wb9vyvDGF+4+2wEr1tm6xbHDjcVDjww4x0XWY64J92RkQZ5CjtrdZHZg4uFi8H66fZwMNLftR5FQ9Dr53WImuOXKRXjYVdXzNtSnAG5B3MjVpykg/qM8MxSeX2kN8lj1OfOE28ae2bCzoFfxydWrEpCmrOYT4xVoS12sL2oUePmzIEVFUtFqTla112aoqVduhAPts++u92jb0epGzDnKwJkPWAketnUvnpD4ljVkBh8bOtlnsxYpAAHOUgh6sQ3OPprILhhSQX2N+XK7OAQVPY5ZxG1W37IJmVdLhab+5/pe2Pb0e5InsYNpksf6yYk5qIiQ8YUK2VQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 035271a2-3960-4e04-099b-08dc6891aa5f X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2024 21:16:41.9202 (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: GVXP250MB1057 Subject: [FFmpeg-devel] [PATCH 44/57] avcodec/mpeg4videoenc: Simplify writing startcodes 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: 3YJeNwUXNQog Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg4videoenc.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 31307cc8dd..f89f29690a 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -886,8 +886,7 @@ static void mpeg4_encode_gop_header(MpegEncContext *s) int64_t hours, minutes, seconds; int64_t time; - put_bits(&s->pb, 16, 0); - put_bits(&s->pb, 16, GOP_STARTCODE); + put_bits32(&s->pb, GOP_STARTCODE); time = s->cur_pic.ptr->f->pts; if (s->reordered_input_picture[1]) @@ -936,13 +935,11 @@ static void mpeg4_encode_visual_object_header(MpegEncContext *s) // FIXME levels - put_bits(&s->pb, 16, 0); - put_bits(&s->pb, 16, VOS_STARTCODE); + put_bits32(&s->pb, VOS_STARTCODE); put_bits(&s->pb, 8, profile_and_level_indication); - put_bits(&s->pb, 16, 0); - put_bits(&s->pb, 16, VISUAL_OBJ_STARTCODE); + put_bits32(&s->pb, VISUAL_OBJ_STARTCODE); put_bits(&s->pb, 1, 1); put_bits(&s->pb, 4, vo_ver_id); @@ -969,10 +966,8 @@ static void mpeg4_encode_vol_header(MpegEncContext *s, vo_type = SIMPLE_VO_TYPE; } - put_bits(&s->pb, 16, 0); - put_bits(&s->pb, 16, 0x100 + vo_number); /* video obj */ - put_bits(&s->pb, 16, 0); - put_bits(&s->pb, 16, 0x120 + vol_number); /* video obj layer */ + put_bits32(&s->pb, 0x100 + vo_number); /* video obj */ + put_bits32(&s->pb, 0x120 + vol_number); /* video obj layer */ put_bits(&s->pb, 1, 0); /* random access vol */ put_bits(&s->pb, 8, vo_type); /* video obj type indication */ @@ -1049,8 +1044,7 @@ static void mpeg4_encode_vol_header(MpegEncContext *s, /* user data */ if (!(s->avctx->flags & AV_CODEC_FLAG_BITEXACT)) { - put_bits(&s->pb, 16, 0); - put_bits(&s->pb, 16, 0x1B2); /* user_data */ + put_bits32(&s->pb, USER_DATA_STARTCODE); ff_put_string(&s->pb, LIBAVCODEC_IDENT, 0); } } @@ -1074,8 +1068,7 @@ int ff_mpeg4_encode_picture_header(MpegEncContext *s) s->partitioned_frame = s->data_partitioning && s->pict_type != AV_PICTURE_TYPE_B; - put_bits(&s->pb, 16, 0); /* vop header */ - put_bits(&s->pb, 16, VOP_STARTCODE); /* vop header */ + put_bits32(&s->pb, VOP_STARTCODE); /* vop header */ put_bits(&s->pb, 2, s->pict_type - 1); /* pict type: I = 0 , P = 1 */ time_div = FFUDIV(s->time, s->avctx->time_base.den);