From patchwork Mon Mar 22 06:35:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26532 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 62984449AA7 for ; Mon, 22 Mar 2021 08:35:24 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 44D0C68AA2F; Mon, 22 Mar 2021 08:35:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A252668A486 for ; Mon, 22 Mar 2021 08:35:17 +0200 (EET) Received: by mail-ed1-f45.google.com with SMTP id bf3so17905695edb.6 for ; Sun, 21 Mar 2021 23:35:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:reply-to:mime-version :content-transfer-encoding; bh=6huBaHhgoYDO4PyVlUVYY86noaoEYHmxSbTOuAfLfXg=; b=sTROzmb+H7OblzKaJSj3XY/t7Uuli9KLYNgTbf6YuHnBbFS8bNvtYLQI84pKTfh5Fn b2gUkyPrYA+ikNX38u3oJ+657I3PYHkbCXLu+7+ZfCY8gR8WVctm4au84FAM1uHjZILF mSEYwobv90vEGzCs296A6pmbZwUPvk1wNiS11e4wB1sc33PjYEAf9tP4qGcl7z+i6STn 0gm5r7ldpeGdCjVUfu8Xkr53v2WgRL5qrrqJNbUMe1uZj9568UR9AqdphtMzq9E+pQuk pJetGYGwDWys3SvjQmykaLbh2h1m1xkZFqGUsG1HLbfn/BOKp22ztYEZdvqxewTMtZam NcMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :mime-version:content-transfer-encoding; bh=6huBaHhgoYDO4PyVlUVYY86noaoEYHmxSbTOuAfLfXg=; b=MluNqg6h2LOTFgH4pwQDZsh4i1+A4c8g91qgZKPydwFGetFCPnS0H2ExF8AvdYSkcH QHJV4UaK/OjkqoN1zZVXXcymT7nrJL2k+BwyC/rhYC/utk9ct8H37lJ4ZGKOII2yRFEk ht1zx9bt9d0bSFqwCaauPYxVw05IWa6Wz2gylrLe06IWmH2Dzrap01OePliGV4eBMACy 815xiSeDvyamivrgQIZ7NvbKk/Gh5pe4P1ZaA/UcxNVDdNI8u8J0kd5SKAhcjGOl7d8t 6VENrtHhxVAD1JkAgE090p6jCZ5IwgAn6e+AVuv7WCAXc5kxycnbLpDq3dFL/TGVrGZ3 rgyQ== X-Gm-Message-State: AOAM533Bt5a7wIuaTukRN1YaZFTVIOH+qWHAmnD6B371Mj31HOkUgTPg 38XqPM63sKaXicS5zHL9HJ3eRfzvzmz7dQ== X-Google-Smtp-Source: ABdhPJxeV/lb9HgvWR+lX4IDzQCAqVVLMzuvhtwjWCc+KArcFFKsVw2XrK4S2prDyi46DWbQQmJskQ== X-Received: by 2002:aa7:c7d5:: with SMTP id o21mr23947580eds.166.1616394916950; Sun, 21 Mar 2021 23:35:16 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id cy5sm10567621edb.46.2021.03.21.23.35.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 23:35:16 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 22 Mar 2021 07:35:07 +0100 Message-Id: <20210322063507.818154-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/put_bits: Restore x64 ABI compatibility with releases <= 4.3 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" 88d80cb97528d52dac3178cf5393d6095eca6200 changed the type of PutBitContext.BitBuf to uint64_t; it used to be an uint32_t. While said structure is not public, it is nevertheless used by certain avpriv functions and therefore crosses library boundaries: avpriv_align_put_bits and avpriv_copy_bits were used in other libraries in release 4.3 (and at the time of 88d80cb9) and so this commit broke ABI. This commit mitigates the trouble caused by this by using an uint32_t again, but only for the 4.4 release branch and not the master branch, as doing so for master, would break the ABI of master again, although it is very unlikely that anyone would be helped by this (there don't seem to be any users that combine libavcodec built from master and libavformat from an old release: otherwise we would have received bug reports about said ABI break). Signed-off-by: Andreas Rheinhardt --- Important: This is only intended for the 4.4 release branch. libavcodec/put_bits.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libavcodec/put_bits.h b/libavcodec/put_bits.h index cd66a82a44..f07944a8fb 100644 --- a/libavcodec/put_bits.h +++ b/libavcodec/put_bits.h @@ -35,16 +35,9 @@ #include "version.h" -#if ARCH_X86_64 -// TODO: Benchmark and optionally enable on other 64-bit architectures. -typedef uint64_t BitBuf; -#define AV_WBBUF AV_WB64 -#define AV_WLBUF AV_WL64 -#else typedef uint32_t BitBuf; #define AV_WBBUF AV_WB32 #define AV_WLBUF AV_WL32 -#endif static const int BUF_BITS = 8 * sizeof(BitBuf);