From patchwork Thu Mar 25 15:49:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26602 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 EF5FB44B722 for ; Thu, 25 Mar 2021 17:50:45 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D3FE468AB18; Thu, 25 Mar 2021 17:50:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9572668AAEA for ; Thu, 25 Mar 2021 17:50:40 +0200 (EET) Received: by mail-ej1-f49.google.com with SMTP id kt15so3671878ejb.12 for ; Thu, 25 Mar 2021 08:50:40 -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:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=1VpgXghRl9WGlAiRiVm3VLry9QIA88kzMXRQWf7xILo=; b=AEaT/Uj2NhpW/j/xazru/6BubTRIOtnO1wY+psDfbLOZx0fYdMRq5CAeywDKh4qhxC qNHp6oxn7ku3J3AcHsEhCYE8v1L/TGAgYyZcRGcM1vI+CzeKe5YwOEDuR5/a73HvNLHm 78tVoDMaBjuuSQNumFvjtw75uQ1V+1fIvGN00PsYJ0ABpWCVk6DCz+A6EDXyX6sJkY93 Wjav1zcanrmfO0SQhDGMJIas2IcxIIxWPcF8tim6OqI8aNghIfQALBLS39su8fmRgMa9 aBVbaS2vy5SWDeEOhXtvglOx7I0hcoGiZah03bFiAmZMWuSvgeub/0b/DkVtczTsvfSH dHOQ== 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:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=1VpgXghRl9WGlAiRiVm3VLry9QIA88kzMXRQWf7xILo=; b=VMin1b/SE3Enayff12+7qIaXVCenGzY8ySRXEO4vYdCT0J/OpHeEAuNcA8Ayu6OIGT Bqq107MGj1Ui5xABtesXiHw/dx50rwBsF/7VOsIYaFp0OgVbCuDORrxmGCA6YIO1bWxy I5RGDh54OzCBdwOyHk7w0wLqRdkYytlNXeRMbLYZXQHnQ49SKRBP4U1IJt8BPr9uIxM9 PVPtpkmNDIxCkrQZHBSeSYygH1vCJUIOp+XAcyJrl02ctJq0NWN7ufSg0FT6fL3aH6Kc rurq14o5Qyy4jN83q0nKDhZdG/IS+BChHIXtij3ZazM9kh0GQ7n+nT3BjZl6D8bnBvWv wISg== X-Gm-Message-State: AOAM531OIlZPsoHfV7CDVBcl1fVrK9+DmdGpg0uUvHizJQK2uzcvaMrj yjzwxunvMVUciiY+WiaTmg01PNKpGyTodQ== X-Google-Smtp-Source: ABdhPJyZFRvdZZkZiCMVHFLW22DGaDzmqHShu9xcZjj3sdo7xOaD442xy+e8l6w1TIB7YHcpEshBig== X-Received: by 2002:a17:906:5597:: with SMTP id y23mr10313568ejp.165.1616687439391; Thu, 25 Mar 2021 08:50:39 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id o6sm2859103edw.24.2021.03.25.08.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Mar 2021 08:50:38 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 25 Mar 2021 16:49:55 +0100 Message-Id: <20210325154956.2405162-11-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210325154956.2405162-1-andreas.rheinhardt@gmail.com> References: <20210325154956.2405162-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/12] Avoid intermediate bitcount for number of bytes in 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/aacenc.c | 4 ++-- libavcodec/alacenc.c | 2 +- libavcodec/asvenc.c | 2 +- libavcodec/cbs.c | 2 +- libavcodec/cfhdenc.c | 2 +- libavcodec/cljrenc.c | 2 +- libavcodec/dca.c | 2 +- libavcodec/dcaenc.c | 2 +- libavcodec/ffv1enc.c | 2 +- libavcodec/flacenc.c | 6 +++--- libavcodec/hevc_ps_enc.c | 2 +- libavcodec/lzwenc.c | 2 +- libavcodec/magicyuvenc.c | 6 ++---- libavcodec/mjpegenc.c | 2 +- libavcodec/mjpegenc_common.c | 7 ++----- libavcodec/mlpenc.c | 8 ++++---- libavcodec/mpeg12enc.c | 2 +- libavcodec/mpeg4videoenc.c | 2 +- libavcodec/mpegaudioenc_template.c | 8 ++++---- libavcodec/mpegvideo_enc.c | 11 ++++++----- libavcodec/proresenc_anatoliy.c | 2 +- libavcodec/rpzaenc.c | 2 +- libavcodec/sbcenc.c | 2 +- libavcodec/sonic.c | 2 +- libavcodec/svq1enc.c | 2 +- libavcodec/tests/cabac.c | 2 +- libavcodec/ttaenc.c | 2 +- libavcodec/vorbisenc.c | 8 ++++---- libavcodec/wavpackenc.c | 4 ++-- libavcodec/wmaenc.c | 2 +- libavcodec/xsubenc.c | 4 ++-- libavfilter/vf_signature.c | 2 +- libavformat/latmenc.c | 2 +- libavformat/movenc.c | 2 +- 34 files changed, 55 insertions(+), 59 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 070a2e706a..6dc68eb9b0 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -115,7 +115,7 @@ static int put_audio_specific_config(AVCodecContext *avctx) put_bits(&pb, 5, AOT_SBR); put_bits(&pb, 1, 0); flush_put_bits(&pb); - avctx->extradata_size = put_bits_count(&pb) >> 3; + avctx->extradata_size = put_bytes_output(&pb); return 0; } @@ -881,6 +881,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, flush_put_bits(&s->pb); s->last_frame_pb_count = put_bits_count(&s->pb); + avpkt->size = put_bytes_output(&s->pb); s->lambda_sum += s->lambda; s->lambda_count++; @@ -888,7 +889,6 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, &avpkt->duration); - avpkt->size = put_bits_count(&s->pb) >> 3; *got_packet_ptr = 1; return 0; } diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c index 9d135d1350..ecdd46cac3 100644 --- a/libavcodec/alacenc.c +++ b/libavcodec/alacenc.c @@ -485,7 +485,7 @@ static int write_frame(AlacEncodeContext *s, AVPacket *avpkt, put_bits(pb, 3, TYPE_END); flush_put_bits(pb); - return put_bits_count(pb) >> 3; + return put_bytes_output(pb); } static av_always_inline int get_max_frame_size(int frame_size, int ch, int bps) diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c index 2d8c310521..c33a3b4681 100644 --- a/libavcodec/asvenc.c +++ b/libavcodec/asvenc.c @@ -290,7 +290,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, else flush_put_bits_le(&a->pb); AV_WN32(put_bits_ptr(&a->pb), 0); - size = (put_bits_count(&a->pb) + 31) / 32; + size = (put_bytes_output(&a->pb) + 3) / 4; if (avctx->codec_id == AV_CODEC_ID_ASV1) { a->bbdsp.bswap_buf((uint32_t *) pkt->data, diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index c7f69845fb..bbfafb6530 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -346,7 +346,7 @@ static int cbs_write_unit_data(CodedBitstreamContext *ctx, flush_put_bits(&pbc); - ret = ff_cbs_alloc_unit_data(unit, put_bits_count(&pbc) / 8); + ret = ff_cbs_alloc_unit_data(unit, put_bytes_output(&pbc)); if (ret < 0) return ret; diff --git a/libavcodec/cfhdenc.c b/libavcodec/cfhdenc.c index 42bbf99c96..0369164fab 100644 --- a/libavcodec/cfhdenc.c +++ b/libavcodec/cfhdenc.c @@ -766,7 +766,7 @@ static int cfhd_encode_frame(AVCodecContext *avctx, AVPacket *pkt, put_bits(pb, cb[512].size, cb[512].bits); flush_put_bits(pb); - bytestream2_skip_p(pby, put_bits_count(pb) >> 3); + bytestream2_skip_p(pby, put_bytes_output(pb)); padd = (4 - (bytestream2_tell_p(pby) & 3)) & 3; while (padd--) bytestream2_put_byte(pby, 0); diff --git a/libavcodec/cljrenc.c b/libavcodec/cljrenc.c index a3718259d1..fe58f50f09 100644 --- a/libavcodec/cljrenc.c +++ b/libavcodec/cljrenc.c @@ -89,7 +89,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, flush_put_bits(&pb); - pkt->size = put_bits_count(&pb) / 8; + pkt->size = put_bytes_output(&pb); pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; return 0; diff --git a/libavcodec/dca.c b/libavcodec/dca.c index a0729e61ab..b2152524a5 100644 --- a/libavcodec/dca.c +++ b/libavcodec/dca.c @@ -82,7 +82,7 @@ int avpriv_dca_convert_bitstream(const uint8_t *src, int src_size, uint8_t *dst, put_bits(&pb, 14, tmp); } flush_put_bits(&pb); - return (put_bits_count(&pb) + 7) >> 3; + return put_bytes_output(&pb); default: return AVERROR_INVALIDDATA; } diff --git a/libavcodec/dcaenc.c b/libavcodec/dcaenc.c index a40d2e0ca0..63e6dfb780 100644 --- a/libavcodec/dcaenc.c +++ b/libavcodec/dcaenc.c @@ -1213,8 +1213,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *avpkt, flush_put_bits(&c->pb); avpkt->pts = frame->pts; + avpkt->size = put_bytes_output(&c->pb); avpkt->duration = ff_samples_to_time_base(avctx, frame->nb_samples); - avpkt->size = put_bits_count(&c->pb) >> 3; *got_packet_ptr = 1; return 0; } diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c index 611b250e96..cdad65a4f9 100644 --- a/libavcodec/ffv1enc.c +++ b/libavcodec/ffv1enc.c @@ -1239,7 +1239,7 @@ FF_ENABLE_DEPRECATION_WARNINGS bytes = ff_rac_terminate(&fs->c, 1); } else { flush_put_bits(&fs->pb); // FIXME: nicer padding - bytes = fs->ac_byte_count + (put_bits_count(&fs->pb) + 7) / 8; + bytes = fs->ac_byte_count + put_bytes_output(&fs->pb); } if (i > 0 || f->version > 2) { av_assert0(bytes < pkt->size / f->slice_count); diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 8e7dbc52b4..34fcd95795 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -1234,7 +1234,7 @@ static void write_frame_header(FlacEncodeContext *s) flush_put_bits(&s->pb); crc = av_crc(av_crc_get_table(AV_CRC_8_ATM), 0, s->pb.buf, - put_bits_count(&s->pb) >> 3); + put_bytes_output(&s->pb)); put_bits(&s->pb, 8, crc); } @@ -1304,7 +1304,7 @@ static void write_frame_footer(FlacEncodeContext *s) int crc; flush_put_bits(&s->pb); crc = av_bswap16(av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, s->pb.buf, - put_bits_count(&s->pb)>>3)); + put_bytes_output(&s->pb))); put_bits(&s->pb, 16, crc); flush_put_bits(&s->pb); } @@ -1316,7 +1316,7 @@ static int write_frame(FlacEncodeContext *s, AVPacket *avpkt) write_frame_header(s); write_subframes(s); write_frame_footer(s); - return put_bits_count(&s->pb) >> 3; + return put_bytes_output(&s->pb); } diff --git a/libavcodec/hevc_ps_enc.c b/libavcodec/hevc_ps_enc.c index 5449f81c82..47f252dd2c 100644 --- a/libavcodec/hevc_ps_enc.c +++ b/libavcodec/hevc_ps_enc.c @@ -115,7 +115,7 @@ int ff_hevc_encode_nal_vps(HEVCVPS *vps, unsigned int id, put_bits(&pb, 1, 1); // stop bit flush_put_bits(&pb); - data_size = put_bits_count(&pb) / 8; + data_size = put_bytes_output(&pb); return data_size; } diff --git a/libavcodec/lzwenc.c b/libavcodec/lzwenc.c index e693d74272..6c45f7cc37 100644 --- a/libavcodec/lzwenc.c +++ b/libavcodec/lzwenc.c @@ -189,7 +189,7 @@ static void clearTable(LZWEncodeState * s) * @return Number of bytes written */ static int writtenBytes(LZWEncodeState *s){ - int ret = put_bits_count(&s->pb) >> 3; + int ret = put_bytes_count(&s->pb, 0); ret -= s->output_bytes; s->output_bytes += ret; return ret; diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c index d53fe6f328..7ec3c963bf 100644 --- a/libavcodec/magicyuvenc.c +++ b/libavcodec/magicyuvenc.c @@ -400,11 +400,9 @@ static int encode_slice(uint8_t *src, uint8_t *dst, int dst_size, if (count) put_bits(&pb, 32 - count, 0); - count = put_bits_count(&pb); - flush_put_bits(&pb); - return count >> 3; + return put_bytes_output(&pb); } static int magy_encode_frame(AVCodecContext *avctx, AVPacket *pkt, @@ -499,7 +497,7 @@ static int magy_encode_frame(AVCodecContext *avctx, AVPacket *pkt, AV_CEIL_RSHIFT(frame->height, s->vshift[i]), &s->pb, s->he[i]); } - s->tables_size = (put_bits_count(&s->pb) + 7) >> 3; + s->tables_size = put_bytes_count(&s->pb, 1); bytestream2_skip_p(&pb, s->tables_size); for (i = 0; i < s->planes; i++) { diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index 22af094da7..df3aaaf26b 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -218,7 +218,7 @@ int ff_mjpeg_encode_stuffing(MpegEncContext *s) if ((s->avctx->active_thread_type & FF_THREAD_SLICE) && mb_y < s->mb_height - 1) put_marker(pbc, RST0 + (mb_y&7)); - s->esc_pos = put_bits_count(pbc) >> 3; + s->esc_pos = put_bytes_count(pbc, 0); fail: for (int i = 0; i < 3; i++) diff --git a/libavcodec/mjpegenc_common.c b/libavcodec/mjpegenc_common.c index 12dd7be2e8..3eae9b7d0f 100644 --- a/libavcodec/mjpegenc_common.c +++ b/libavcodec/mjpegenc_common.c @@ -325,7 +325,7 @@ end: MpegEncContext *s = avctx->priv_data; av_assert0(avctx->codec->priv_data_size == sizeof(MpegEncContext)); - s->esc_pos = put_bits_count(pb) >> 3; + s->esc_pos = put_bytes_count(pb, 0); for(i=1; islice_context_count; i++) s->thread_context[i]->esc_pos = 0; } @@ -343,10 +343,7 @@ void ff_mjpeg_escape_FF(PutBitContext *pb, int start) put_bits(pb, pad, (1<>= 3; + size = put_bytes_output(pb) - start; ff_count=0; for(i=0; i> 3) ^ 0xa9; - checksum = ff_mlp_checksum8 (buf, put_bits_count(&pb) >> 3); + parity = ff_mlp_calculate_parity(buf, put_bytes_output(&pb)) ^ 0xa9; + checksum = ff_mlp_checksum8 (buf, put_bytes_output(&pb)); put_bits(&pb, 8, parity ); put_bits(&pb, 8, checksum); flush_put_bits(&pb); - end += put_bits_count(&pb) >> 3; + end += put_bytes_output(&pb); substream_data_len[substr] = end; - buf += put_bits_count(&pb) >> 3; + buf += put_bytes_output(&pb); } ctx->major_cur_subblock_index += ctx->major_filter_state_subblock + 1; diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index a05c2db6cb..5676caef87 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -439,7 +439,7 @@ void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number) (s->picture_number - s->gop_picture_number) & 0x3ff); put_bits(&s->pb, 3, s->pict_type); - s->vbv_delay_ptr = s->pb.buf + put_bits_count(&s->pb) / 8; + s->vbv_delay_ptr = s->pb.buf + put_bytes_count(&s->pb, 0); put_bits(&s->pb, 16, 0xFFFF); /* vbv_delay */ // RAL: Forward f_code also needed for B-frames diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index a879d2fd18..2bf65305ad 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1314,7 +1314,7 @@ static av_cold int encode_init(AVCodecContext *avctx) // ff_mpeg4_stuffing(&s->pb); ? flush_put_bits(&s->pb); - s->avctx->extradata_size = (put_bits_count(&s->pb) + 7) >> 3; + s->avctx->extradata_size = put_bytes_output(&s->pb); } return 0; } diff --git a/libavcodec/mpegaudioenc_template.c b/libavcodec/mpegaudioenc_template.c index 12f7a098e6..8e6e20c358 100644 --- a/libavcodec/mpegaudioenc_template.c +++ b/libavcodec/mpegaudioenc_template.c @@ -736,9 +736,6 @@ static void encode_frame(MpegAudioContext *s, /* padding */ for(i=0;ipb); + avpkt->size = put_bytes_output(&s->pb); + if (frame->pts != AV_NOPTS_VALUE) avpkt->pts = frame->pts - ff_samples_to_time_base(avctx, avctx->initial_padding); - avpkt->size = put_bits_count(&s->pb) / 8; *got_packet_ptr = 1; return 0; } diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 8731b0ad31..81f832fe4b 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -2889,12 +2889,12 @@ static void update_mb_info(MpegEncContext *s, int startcode) { if (!s->mb_info) return; - if (put_bits_count(&s->pb) - s->prev_mb_info*8 >= s->mb_info*8) { + if (put_bytes_count(&s->pb, 0) - s->prev_mb_info >= s->mb_info) { s->mb_info_size += 12; s->prev_mb_info = s->last_mb_info; } if (startcode) { - s->prev_mb_info = put_bits_count(&s->pb)/8; + s->prev_mb_info = put_bytes_count(&s->pb, 0); /* This might have incremented mb_info_size above, and we return without * actually writing any info into that slot yet. But in that case, * this will be called again at the start of the after writing the @@ -2902,7 +2902,7 @@ static void update_mb_info(MpegEncContext *s, int startcode) return; } - s->last_mb_info = put_bits_count(&s->pb)/8; + s->last_mb_info = put_bytes_count(&s->pb, 0); if (!s->mb_info_size) s->mb_info_size += 12; write_mb_info(s); @@ -3057,7 +3057,8 @@ static int encode_thread(AVCodecContext *c, void *arg){ if(s->rtp_mode){ int current_packet_size, is_gob_start; - current_packet_size= ((put_bits_count(&s->pb)+7)>>3) - (s->ptr_lastgob - s->pb.buf); + current_packet_size = put_bytes_count(&s->pb, 1) + - (s->ptr_lastgob - s->pb.buf); is_gob_start = s->rtp_payload_size && current_packet_size >= s->rtp_payload_size && @@ -3094,7 +3095,7 @@ static int encode_thread(AVCodecContext *c, void *arg){ current_packet_size= put_bits_ptr(&s->pb) - s->ptr_lastgob; if (s->error_rate && s->resync_mb_x + s->resync_mb_y > 0) { - int r= put_bits_count(&s->pb)/8 + s->picture_number + 16 + s->mb_x + s->mb_y; + int r = put_bytes_count(&s->pb, 0) + s->picture_number + 16 + s->mb_x + s->mb_y; int d = 100 / s->error_rate; if(r % d == 0){ current_packet_size=0; diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c index c34e55f873..588df5984c 100644 --- a/libavcodec/proresenc_anatoliy.c +++ b/libavcodec/proresenc_anatoliy.c @@ -460,7 +460,7 @@ static av_always_inline int encode_alpha_slice_data(AVCodecContext *avctx, int8_ if (run) put_alpha_run(&pb, run); flush_put_bits(&pb); - *a_data_size = put_bits_count(&pb) >> 3; + *a_data_size = put_bytes_output(&pb); if (put_bits_left(&pb) < 0) { av_log(avctx, AV_LOG_ERROR, diff --git a/libavcodec/rpzaenc.c b/libavcodec/rpzaenc.c index baf067c205..eeb82716c9 100644 --- a/libavcodec/rpzaenc.c +++ b/libavcodec/rpzaenc.c @@ -802,7 +802,7 @@ static int rpza_encode_frame(AVCodecContext *avctx, AVPacket *pkt, flush_put_bits(&s->pb); - av_shrink_packet(pkt, put_bits_count(&s->pb) >> 3); + av_shrink_packet(pkt, put_bytes_output(&s->pb)); buf = pkt->data; // write header opcode diff --git a/libavcodec/sbcenc.c b/libavcodec/sbcenc.c index 47a136e4e5..33de8edab4 100644 --- a/libavcodec/sbcenc.c +++ b/libavcodec/sbcenc.c @@ -188,7 +188,7 @@ static size_t sbc_pack_frame(AVPacket *avpkt, struct sbc_frame *frame, flush_put_bits(&pb); - return (put_bits_count(&pb) + 7) / 8; + return put_bytes_output(&pb); } static int sbc_encode_init(AVCodecContext *avctx) diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c index 8339799dd3..c2a0a9953e 100644 --- a/libavcodec/sonic.c +++ b/libavcodec/sonic.c @@ -687,7 +687,7 @@ static av_cold int sonic_encode_init(AVCodecContext *avctx) put_bits(&pb, 1, 0); // XXX FIXME: no custom tap quant table flush_put_bits(&pb); - avctx->extradata_size = put_bits_count(&pb)/8; + avctx->extradata_size = put_bytes_output(&pb); av_log(avctx, AV_LOG_INFO, "Sonic: ver: %d.%d ls: %d dr: %d taps: %d block: %d frame: %d downsamp: %d\n", s->version, s->minor_version, s->lossless, s->decorrelation, s->num_taps, s->block_align, s->frame_size, s->downsampling); diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index 53f0b40a21..2b74f009e0 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -652,7 +652,7 @@ FF_ENABLE_DEPRECATION_WARNINGS flush_put_bits(&s->pb); - pkt->size = put_bits_count(&s->pb) / 8; + pkt->size = put_bytes_output(&s->pb); if (s->pict_type == AV_PICTURE_TYPE_I) pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; diff --git a/libavcodec/tests/cabac.c b/libavcodec/tests/cabac.c index a8bd131c95..b84a96ce81 100644 --- a/libavcodec/tests/cabac.c +++ b/libavcodec/tests/cabac.c @@ -120,7 +120,7 @@ static int put_cabac_terminate(CABACTestContext *c, int bit) flush_put_bits(&c->pb); //FIXME FIXME FIXME XXX wrong } - return (put_bits_count(&c->pb)+7)>>3; + return put_bytes_count(&c->pb, 1); } /** diff --git a/libavcodec/ttaenc.c b/libavcodec/ttaenc.c index ac8a432873..bb4734e013 100644 --- a/libavcodec/ttaenc.c +++ b/libavcodec/ttaenc.c @@ -182,7 +182,7 @@ pkt_alloc: } flush_put_bits(&pb); - out_bytes = put_bits_count(&pb) >> 3; + out_bytes = put_bytes_output(&pb); put_bits32(&pb, av_crc(s->crc_table, UINT32_MAX, avpkt->data, out_bytes) ^ UINT32_MAX); flush_put_bits(&pb); diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index 080017e2bf..1b0ab3cadb 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -637,7 +637,7 @@ static int put_main_header(vorbis_enc_context *venc, uint8_t **out) put_bits(&pb, 1, 1); // framing flush_put_bits(&pb); - hlens[0] = put_bits_count(&pb) >> 3; + hlens[0] = put_bytes_output(&pb); buffer_len -= hlens[0]; p += hlens[0]; @@ -651,7 +651,7 @@ static int put_main_header(vorbis_enc_context *venc, uint8_t **out) put_bits(&pb, 1, 1); // framing flush_put_bits(&pb); - hlens[1] = put_bits_count(&pb) >> 3; + hlens[1] = put_bytes_output(&pb); buffer_len -= hlens[1]; p += hlens[1]; @@ -725,7 +725,7 @@ static int put_main_header(vorbis_enc_context *venc, uint8_t **out) put_bits(&pb, 1, 1); // framing flush_put_bits(&pb); - hlens[2] = put_bits_count(&pb) >> 3; + hlens[2] = put_bytes_output(&pb); len = hlens[0] + hlens[1] + hlens[2]; p = *out = av_mallocz(64 + len + len/255); @@ -1180,7 +1180,7 @@ static int vorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } flush_put_bits(&pb); - avpkt->size = put_bits_count(&pb) >> 3; + avpkt->size = put_bytes_output(&pb); ff_af_queue_remove(&venc->afq, frame_size, &avpkt->pts, &avpkt->duration); diff --git a/libavcodec/wavpackenc.c b/libavcodec/wavpackenc.c index 0a798438bc..0c82633a72 100644 --- a/libavcodec/wavpackenc.c +++ b/libavcodec/wavpackenc.c @@ -2777,7 +2777,7 @@ static int wavpack_encode_block(WavPackEncodeContext *s, } encode_flush(s); flush_put_bits(&s->pb); - data_size = put_bits_count(&s->pb) >> 3; + data_size = put_bytes_output(&s->pb); bytestream2_put_le24(&pb, (data_size + 1) >> 1); bytestream2_skip_p(&pb, data_size); if (data_size & 1) @@ -2791,7 +2791,7 @@ static int wavpack_encode_block(WavPackEncodeContext *s, else pack_int32(s, s->orig_l, s->orig_r, nb_samples); flush_put_bits(&s->pb); - data_size = put_bits_count(&s->pb) >> 3; + data_size = put_bytes_output(&s->pb); bytestream2_put_le24(&pb, (data_size + 5) >> 1); bytestream2_put_le32(&pb, s->crc_x); bytestream2_skip_p(&pb, data_size); diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c index 6a7e23d016..4ad37cc70b 100644 --- a/libavcodec/wmaenc.c +++ b/libavcodec/wmaenc.c @@ -408,7 +408,7 @@ static int encode_superframe(AVCodecContext *avctx, AVPacket *avpkt, return AVERROR(EINVAL); } av_assert0((put_bits_count(&s->pb) & 7) == 0); - i= avctx->block_align - (put_bits_count(&s->pb)+7)/8; + i = avctx->block_align - put_bytes_count(&s->pb, 0); av_assert0(i>=0); while(i--) put_bits(&s->pb, 8, 'N'); diff --git a/libavcodec/xsubenc.c b/libavcodec/xsubenc.c index 36c5ab7223..9139159c98 100644 --- a/libavcodec/xsubenc.c +++ b/libavcodec/xsubenc.c @@ -197,7 +197,7 @@ FF_ENABLE_DEPRECATION_WARNINGS h->rects[0]->linesize[0] * 2, h->rects[0]->w, (h->rects[0]->h + 1) >> 1)) return AVERROR_BUFFER_TOO_SMALL; - bytestream_put_le16(&rlelenptr, put_bits_count(&pb) >> 3); // Length of first field + bytestream_put_le16(&rlelenptr, put_bytes_count(&pb, 0)); // Length of first field if (xsub_encode_rle(&pb, h->rects[0]->data[0] + h->rects[0]->linesize[0], h->rects[0]->linesize[0] * 2, @@ -211,7 +211,7 @@ FF_ENABLE_DEPRECATION_WARNINGS flush_put_bits(&pb); - return hdr - buf + put_bits_count(&pb)/8; + return hdr - buf + put_bytes_output(&pb); } static av_cold int xsub_encoder_init(AVCodecContext *avctx) diff --git a/libavfilter/vf_signature.c b/libavfilter/vf_signature.c index 32a6405e14..bf5973b867 100644 --- a/libavfilter/vf_signature.c +++ b/libavfilter/vf_signature.c @@ -561,7 +561,7 @@ static int binary_export(AVFilterContext *ctx, StreamContext *sc, const char* fi } flush_put_bits(&buf); - fwrite(buffer, 1, put_bits_count(&buf)/8, f); + fwrite(buffer, 1, put_bytes_output(&buf), f); fclose(f); av_freep(&buffer); return 0; diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c index 91e96e90b0..5488361bde 100644 --- a/libavformat/latmenc.c +++ b/libavformat/latmenc.c @@ -225,7 +225,7 @@ static int latm_write_packet(AVFormatContext *s, AVPacket *pkt) flush_put_bits(&bs); - len = put_bits_count(&bs) >> 3; + len = put_bytes_output(&bs); if (len > 0x1fff) goto too_large; diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 6790fe6c45..66ac34dfb6 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -579,7 +579,7 @@ static int mov_write_eac3_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra } } flush_put_bits(&pbc); - size = put_bits_count(&pbc) >> 3; + size = put_bytes_output(&pbc); avio_wb32(pb, size + 8); ffio_wfourcc(pb, "dec3");