From patchwork Sat Nov 16 05:24:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 16293 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 2C1A444607E for ; Sat, 16 Nov 2019 07:24:46 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F23F568A295; Sat, 16 Nov 2019 07:24:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 23CEE689B62 for ; Sat, 16 Nov 2019 07:24:40 +0200 (EET) Received: by mail-wr1-f65.google.com with SMTP id z10so13134704wrs.12 for ; Fri, 15 Nov 2019 21:24:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=snBw3cQ0FbM2+eUNTNDsKyTm8R+gwILuhD6bsQl2V2A=; b=mBXHWj0foxzx6Whs+TrzRZvVowoCt18BXxgovPTMwd/AjcBqBvJK1pmPcxEX0jKqZ4 g7ImAN5RYdO7IDxFMRmyjWVKOgbtAIgdBgwImZ9i/lyIyOu41eC5csYbmIuHeDDlJews U22ZVHYGc0ElSwjLxhlzqo+v1MViiX5ZFi9tjVcJ0y2VlvTUQ9Eh52APRp+4Lzzomlv2 wq5r2RQ0M0voW9E9XIq58WgILTJgJuAFA0BmWlYm1+3ndwNNaRsniEsJVHfg/OyHgPQ4 VQfPTZdPcSOQBFuKf5zmot87I25KVoFuoOkf3G7k21dmgIbEEnUaVidJgM24SQcNIz2M SHJQ== 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:mime-version :content-transfer-encoding; bh=snBw3cQ0FbM2+eUNTNDsKyTm8R+gwILuhD6bsQl2V2A=; b=QX31ILpk/M+LoFWrHj0XzFp05cvJ8h5jqZ50UoXKM1fHdHOlrFLqGLUaY5MJI+FcDp ggB6boiI1GFpdsht6ao6Lz2kE3Z87QUy/725isgxMm2oqEhz5zv8lU1NxbEl0hP5fpDE JzzMiyFuWppXIl7inrSgpda/KF/BvVvBx+vc3BfmYF2xA4zW1512Es17EWPa1xByYAz2 FozOhMMJlronNPBWpq8EphsXl+kQWWL+2cjifnlYyMGTZ3on1ddcQKjvlqogHV6VM3Jx cU8DKgEc7jIF9KaxQLDYku2XuslXcmxhEayX0ScZBvc1W1BRh+IaSC6j7Y0yc05d26rG PHkw== X-Gm-Message-State: APjAAAWqyLHel2unYi8q1Gac/3rQqNIV91oTVKAqvd1OOICvUe5Sr0Y+ mWW+yka1BCuErzr+2vCiCB9kjSGo X-Google-Smtp-Source: APXvYqzXdlI240ykdJ/qfVhV3owsYwOVVGCUFyo8jhteEXVC1ExnEAWxVyX+kc5V1iv0FZ1j8akZ2w== X-Received: by 2002:adf:9c81:: with SMTP id d1mr18510496wre.144.1573881878972; Fri, 15 Nov 2019 21:24:38 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08937.dynamic.kabel-deutschland.de. [188.192.137.55]) by smtp.gmail.com with ESMTPSA id u26sm12511155wmj.9.2019.11.15.21.24.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Nov 2019 21:24:38 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 16 Nov 2019 06:24:29 +0100 Message-Id: <20191116052431.3908-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/put_bits: Relax requirements to rebase PutBitContext 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" The earlier requirement was for the new buffer to be bigger than the old one. This has been relaxed to only demand that the new buffer can hold all the data written so far. This is in preparation for further commits. Signed-off-by: Andreas Rheinhardt --- libavcodec/put_bits.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libavcodec/put_bits.h b/libavcodec/put_bits.h index 1ceb1cc766..7d11a3576a 100644 --- a/libavcodec/put_bits.h +++ b/libavcodec/put_bits.h @@ -61,17 +61,25 @@ static inline void init_put_bits(PutBitContext *s, uint8_t *buffer, s->bit_buf = 0; } +/** + * @return the total number of bits written to the bitstream. + */ +static inline int put_bits_count(PutBitContext *s) +{ + return (s->buf_ptr - s->buf) * 8 + 32 - s->bit_left; +} + /** * Rebase the bit writer onto a reallocated buffer. * * @param buffer the buffer where to put bits * @param buffer_size the size in bytes of buffer, - * must be larger than the previous size + * must be large enough to hold everything written so far */ static inline void rebase_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size) { - av_assert0(8*buffer_size > s->size_in_bits); + av_assert0(8*buffer_size >= put_bits_count(s)); s->buf_end = buffer + buffer_size; s->buf_ptr = buffer + (s->buf_ptr - s->buf); @@ -79,14 +87,6 @@ static inline void rebase_put_bits(PutBitContext *s, uint8_t *buffer, s->size_in_bits = 8 * buffer_size; } -/** - * @return the total number of bits written to the bitstream. - */ -static inline int put_bits_count(PutBitContext *s) -{ - return (s->buf_ptr - s->buf) * 8 + 32 - s->bit_left; -} - /** * @return the number of bits available in the bitstream. */