From patchwork Fri May 24 22:04:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 49218 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:542:0:b0:460:55fa:d5ed with SMTP id 63csp2019032vqf; Fri, 24 May 2024 15:06:26 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVNf40570CQ/nN9mfTGoc8MKlpKnmNZBLFriIBwrlv8bliXk0q+Wn4N2z1l4KW4v4NYUUwUOjRrKu+OTl+7KU3n1LeQfipe9aV0fQ== X-Google-Smtp-Source: AGHT+IHYXhcBOZ740khti8nXlEo6nRk5AatReTKB4moL5fmyxCkTD5hkRb14r8bbbHFISVjlVsxa X-Received: by 2002:a50:8d16:0:b0:578:676a:1aea with SMTP id 4fb4d7f45d1cf-578676a1b42mr344044a12.3.1716588386196; Fri, 24 May 2024 15:06:26 -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 4fb4d7f45d1cf-5785c1e46dbsi1054105a12.475.2024.05.24.15.06.25; Fri, 24 May 2024 15:06:26 -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=g9oig6UY; 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 6E2F168D5E7; Sat, 25 May 2024 01:05:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2056.outbound.protection.outlook.com [40.92.89.56]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AD47668D5B9 for ; Sat, 25 May 2024 01:05:29 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dO5i9IhgnC6slg3NlG6K6yz8iLcrNJRm0VA8iaONcDySJbgEYwVcmiEDfVjbKHqixKQoxoHi5ly+cDl6wRBFY9Fn+b2qq7BbBIMc6acc/tZ9xUz/wVemwghj6qQpc4eVSROvNY5E6ooUPNz9hbIsXjiTixxnGMwXUby9Tcd7VvWeOT0efnFpa7hTofn00zOBUsRYHdcJqz/qWkgioKQKzwmik1VCKYMrixt3hri/tlkCB4ynWqu45g5hJVKpiIvYu7rKlZryaevmLF3nEGG/5yr/br6Z7ccnkCtz8dnWaaeHzmQJEts8AaJWcUOPc1Abhv3IlP8gt01SJ0XkaCowZA== 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=YnKIN8Dlm1NAZqNiT4vSc2TRTs68qJ3twrNaBr4tqe0=; b=dENuR0htIEWoLD5ZGrGYBx0dBYDimoogi78bY+zfjif6zTiUWuuh/RioIV5iAr3BLuluxICEHNoTTJkmrH5cKlfZJ2FwK36qwCDc6CqRJOy83orGs0dVi5uM41ayJ4O/i1sSbMSnmSkzjZ5YwucHKNEHFRWP1smeSnMcPvRKd+xSjiQHkfuS+xDfNVXdXvnmzUuPAtSFYkd/2Iw1ux0YooPMxDZ4bN2LwvOgkDEjdmos3A1xb4+PmTn2DcBr5Ac/cI2nk2utHGSGzeD4pEd1OWufdgYJPikR76HeQPi9gpg13zPeHnsa1livB4SFio8Iqt2yeaUSCJ/BYtfB5mOpJg== 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=YnKIN8Dlm1NAZqNiT4vSc2TRTs68qJ3twrNaBr4tqe0=; b=g9oig6UYnfL6PxingL2qtv2PstSZOzIoDgwum+xKS3kGpmjQlI+rko5AHwqQm4lA6cFZF6qSbDC6OC/JE5fPJmVuMxo958ttr/OfESKbexP48QpWjq7/8j9JnWr21mTiSjsvMhCZzQaHuYp6IXTIb5bc1USL/TZaq+rHHyD5sUiiYwP+S1nLYGBqcmxv+KnsKC9tc3yfoxirmOTtYjjOpYJNMPD0o0Yh/ORqpeIxJvUmiyalFJi/vJ/9ogLs8GAwowHx1zob/WlNgRsPwMDKTgu84wWhB5y8S1zBR2evAbKmbj/LQ16KuSe8QQEI4OvYtb0CW5Vc4l/WrOB9Px1BGA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0368.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:27d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.22; Fri, 24 May 2024 22:05:21 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7611.016; Fri, 24 May 2024 22:05:21 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 25 May 2024 00:04:53 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [PSZoCYwa98AZWJqWyHwHskiI7wlVy5ndEVhdonlV+R4=] X-ClientProxiedBy: ZR0P278CA0194.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::21) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240524220455.1276419-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0368:EE_ X-MS-Office365-Filtering-Correlation-Id: cf52a0e3-7174-4f10-5f85-08dc7c3d9b15 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|3412199016|440099019|1710799017; X-Microsoft-Antispam-Message-Info: PBy3bmHKKY0RqjxJMo7dQ0oyMVoQD8LymyrxzRA4nn8iHbiAkQYlOvO3iqyHGotvO16O/sBQzEM6giDjnDtD0jf2TlUiq7uO3tkifNcajJuwj5MWpaAQubEB19ea2qy+EUlx5KdFS2MNzAzTfOCf73p2sU2lKGkZocfICsEN9ZwAYe30old/xGQlqxnfPZaKZizOWShA6vIWZcoMgXIonkB2rdy74yWiEoPnDdnTCIYoij6yTOgJNuXt277Jd6ExVPH2Q8bVM4YTJflO7Y+JpBkHAMc0lswfVTXzT1MHoGfB57qPAXrKJfTYoiziCsvfNOqmutH0EKkJ/9Qn70vgp+kxONOUH+qypYkfN3nKHu7eeGHi/kkDpiTLsxLIdI/mTszRIiY0tuIuSYBbBKUTctrrvPMuz3uzlHRum55kBuCW/I0Nd77k7szECGmIjNO95azicZ8kUC+y49WM9mfdU9XQjMwqmfuYoMGdZ0AQsasn+CgbxyKf7WZtU1ejJHvyU/o1WWIuqCzWTSqLtHctLI+hsqthdTdEOP79rdB2LsIAWY5C9yuXSzD6caRkaG7sZ/c9YcUbYixU4Ibvvqiwg/gTMTaQhAQN44LrqL0CUqu59618wLVLIGET6abeJ/sf X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BNsrHPEJzknxJJNrZu4Tk0kxA7syi9byHC8a5qnjrtleRc+KKgVORj473GLVZyMyNCpNHEwmGm3NJnIluuecJxp5JAgcletwPDrKzDnXzfTNVey8/KcC4XCEiM23BTa4JRrhNhoLwzDuW9J5LvKdX2pG1A1YnHhI+5BUJJjX2Vn4xC8JwTRG33Bkwb0pBKbADZ0KuCaHHPCSXgET6JwS9n6H01F5cLna7sP071rYKV4LK6/kOn74rXitfP6doZl2ssZxFrXrFGPVpWwntNAbrixJ1CQNu9Mdp1ziLOwJWqq9MFom6B+QEZmyWfw/PjN9XD4CSGe3p8G5eBZQMUALKODcH49Jy8YMfsLQS/MCS1wxN5MDx32QvTqEB5elMYHTwcVGuqxfmIeFHu6emYVjXH4xWl79ZRHur2+WDMmHxCLt4A9BJJR6ZiBbMLLN1eaSDOrdh1Ky9ty8NKKkBQwLzJVVnAiR81keBGTukubgUuoWRMyKLpKZWl5iVlD+wYEL+vwuGBmJgiipGxSm4biHvGQhXMI/CnbrQ1WBvhKPs2dyVW+rd7kx1lQv31+7Xz/yMIejFZ+3GUalKom+xfnokRFWqRRLBx3/fRf6tK6FbRB9ZbgOihvgzOMNma3wRxnDCjK9LSikBfqYr3obHKTYBK2CpAxqkBihs3l67uRYxL/Dts2aYQo13O+4JKemp4VD+6nC267K6SRXdeDtCyIE28T8Z9wbvYy7GJ6x9V+jvfHOyV8SPfN5DNAmpBEQkXLvLPNuN+c5T71oF1MqWXFby62fWVTCnvscFPjfj24QaLHOJN3ggmsky+HC8gPFhNTPOqAaZLOk1OlZjutIr8dydqUmCuVpBbOknWWXjD/+brs2FV00u8mbEe4eV99ocJb8Rh70hJcuGgMaz2rewm5RTl5BLKrAy01Zx1RWsiIfP/1ft4BFYJ14ldLMjC/ml45Mns9fwMGiDjuJLKqZ7eee+36DQVctdMqv+kZBW+E8PvuTU+wtMSqy3QS6/r1QnPNVuV8aFmVth6vevVnMPMdaWaWBsdDE0PvfqWf++YxoR7qHZ/QXpQf5kcpNQ5Gku8NCEXCKdUQ0NjCHypcfW8eQy7UmAjOo9WnFWMfz7BaKCSxK2+s8dWKP7UIlS1NHeN+z9wB2dHc9cs3qQMIgjYt2JflEaNkoj1icdMbA14Oj4i9UvRqO6IZ3kES4qZhj3Y49Jd7w4uGC6g9Vz+2O6ZFsjMMVec2SvGSWqqGw0PvrNZrSnrbHOpP5fla9vx7nsaRZxRJgv1NcqTpNvHDGBgwuWw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf52a0e3-7174-4f10-5f85-08dc7c3d9b15 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2024 22:05:21.8574 (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: DU2P250MB0368 Subject: [FFmpeg-devel] [PATCH 10/12] avcodec/put_bits: Allow to mark places where PutBitContext is flushed 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: w+q/DK4lu1zP This will allow the compiler to optimize the "is the cache full?" branches away from some put_bits(). Signed-off-by: Andreas Rheinhardt --- libavcodec/put_bits.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavcodec/put_bits.h b/libavcodec/put_bits.h index 4561dc131a..79bad1c214 100644 --- a/libavcodec/put_bits.h +++ b/libavcodec/put_bits.h @@ -74,6 +74,16 @@ static inline void init_put_bits(PutBitContext *s, uint8_t *buffer, s->bit_buf = 0; } +/** + * Inform the compiler that a PutBitContext is flushed (i.e. if it has just + * been initialized or flushed). Undefined behaviour occurs if this is used + * with a PutBitContext for which this is not true. + */ +static inline void put_bits_assume_flushed(const PutBitContext *s) +{ + av_assume(s->bit_left == BUF_BITS); +} + /** * @return the total number of bits written to the bitstream. */