From patchwork Mon Oct 26 13:41:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 23234 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 AF38F44AB2A for ; Mon, 26 Oct 2020 15:42:24 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 97A6768AE41; Mon, 26 Oct 2020 15:42:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.red.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7FAF068AA85 for ; Mon, 26 Oct 2020 15:42:14 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail.red.khirnov.net (Postfix) with ESMTP id 05B46296519 for ; Mon, 26 Oct 2020 14:42:13 +0100 (CET) Received: from mail.red.khirnov.net ([IPv6:::1]) by localhost (mail.red.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id Ydp6BCo-tnQt for ; Mon, 26 Oct 2020 14:42:12 +0100 (CET) Received: from libav.daenerys.khirnov.net (libav.daenerys.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.daenerys.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail.red.khirnov.net (Postfix) with ESMTPS id AB331296507 for ; Mon, 26 Oct 2020 14:42:09 +0100 (CET) Received: by libav.daenerys.khirnov.net (Postfix, from userid 1000) id 2925E20E00BD; Mon, 26 Oct 2020 14:42:07 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Oct 2020 14:41:54 +0100 Message-Id: <20201026134159.24101-1-anton@khirnov.net> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/6] lavf/latmenc: fix units mismatch 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" avpriv_copy_bits() takes the size in bits, not bytes. According to a736eb4a605f46d5ff96c7b32e55710ecd9cce89, nobody is quite sure whether this code produces working files. --- libavformat/latmenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c index 5458ce2596..684483bc71 100644 --- a/libavformat/latmenc.c +++ b/libavformat/latmenc.c @@ -120,7 +120,7 @@ static void latm_write_frame_header(AVFormatContext *s, PutBitContext *bs) /* AudioSpecificConfig */ if (ctx->object_type == AOT_ALS) { - header_size = par->extradata_size-(ctx->off >> 3); + header_size = (par->extradata_size - (ctx->off >> 3)) * 8; avpriv_copy_bits(bs, &par->extradata[ctx->off >> 3], header_size); } else { // + 3 assumes not scalable and dependsOnCoreCoder == 0, From patchwork Mon Oct 26 13:41:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 23233 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 ABCC144AB2A for ; Mon, 26 Oct 2020 15:42:23 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 96B7A68AD8F; Mon, 26 Oct 2020 15:42:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.red.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7B0B168AA4D for ; Mon, 26 Oct 2020 15:42:14 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail.red.khirnov.net (Postfix) with ESMTP id 6C488296507 for ; Mon, 26 Oct 2020 14:42:13 +0100 (CET) Received: from mail.red.khirnov.net ([IPv6:::1]) by localhost (mail.red.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id sceiguJDLEYE for ; Mon, 26 Oct 2020 14:42:13 +0100 (CET) Received: from libav.daenerys.khirnov.net (libav.daenerys.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.daenerys.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail.red.khirnov.net (Postfix) with ESMTPS id AC460296517 for ; Mon, 26 Oct 2020 14:42:09 +0100 (CET) Received: by libav.daenerys.khirnov.net (Postfix, from userid 1000) id A627120E00BE; Mon, 26 Oct 2020 14:42:08 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Oct 2020 14:41:55 +0100 Message-Id: <20201026134159.24101-2-anton@khirnov.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026134159.24101-1-anton@khirnov.net> References: <20201026134159.24101-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/6] lavf/latmenc: use a local simplified copy of avpriv_copy_bits() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This is the only place in lavf where avpriv_copy_bits() is used, so this allows us to make avpriv_copy_bits() lavc-local. --- libavformat/latmenc.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c index 684483bc71..701c3932c4 100644 --- a/libavformat/latmenc.c +++ b/libavformat/latmenc.c @@ -101,6 +101,17 @@ static int latm_write_header(AVFormatContext *s) return 0; } +static void copy_bits(PutBitContext *pb, const uint8_t *src, int length) +{ + int words = length >> 4; + int bits = length & 15; + int i; + for (i = 0; i < words; i++) + put_bits(pb, 16, AV_RB16(src + 2 * i)); + if (bits) + put_bits(pb, bits, AV_RB16(src + 2 * words) >> (16 - bits)); +} + static void latm_write_frame_header(AVFormatContext *s, PutBitContext *bs) { LATMContext *ctx = s->priv_data; @@ -121,11 +132,11 @@ static void latm_write_frame_header(AVFormatContext *s, PutBitContext *bs) /* AudioSpecificConfig */ if (ctx->object_type == AOT_ALS) { header_size = (par->extradata_size - (ctx->off >> 3)) * 8; - avpriv_copy_bits(bs, &par->extradata[ctx->off >> 3], header_size); + copy_bits(bs, &par->extradata[ctx->off >> 3], header_size); } else { // + 3 assumes not scalable and dependsOnCoreCoder == 0, // see decode_ga_specific_config in libavcodec/aacdec.c - avpriv_copy_bits(bs, par->extradata, ctx->off + 3); + copy_bits(bs, par->extradata, ctx->off + 3); if (!ctx->channel_conf) { GetBitContext gb; @@ -207,9 +218,9 @@ static int latm_write_packet(AVFormatContext *s, AVPacket *pkt) // This allows us to remux our FATE AAC samples into latm // files that are still playable with minimal effort. put_bits(&bs, 8, pkt->data[0] & 0xfe); - avpriv_copy_bits(&bs, pkt->data + 1, 8*pkt->size - 8); + copy_bits(&bs, pkt->data + 1, 8*pkt->size - 8); } else - avpriv_copy_bits(&bs, pkt->data, 8*pkt->size); + copy_bits(&bs, pkt->data, 8*pkt->size); flush_put_bits(&bs); From patchwork Mon Oct 26 13:41:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 23231 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 9566B44AB2A for ; Mon, 26 Oct 2020 15:42:21 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7834568ACD0; Mon, 26 Oct 2020 15:42:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.red.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D5D068AA6E for ; Mon, 26 Oct 2020 15:42:14 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail.red.khirnov.net (Postfix) with ESMTP id 3D4EA29651A for ; Mon, 26 Oct 2020 14:42:13 +0100 (CET) Received: from mail.red.khirnov.net ([IPv6:::1]) by localhost (mail.red.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id iKABNw1YXtnT for ; Mon, 26 Oct 2020 14:42:12 +0100 (CET) Received: from libav.daenerys.khirnov.net (libav.daenerys.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.daenerys.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail.red.khirnov.net (Postfix) with ESMTPS id AD9E5296518 for ; Mon, 26 Oct 2020 14:42:09 +0100 (CET) Received: by libav.daenerys.khirnov.net (Postfix, from userid 1000) id 9BCD820E00BF; Mon, 26 Oct 2020 14:42:08 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Oct 2020 14:41:56 +0100 Message-Id: <20201026134159.24101-3-anton@khirnov.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026134159.24101-1-anton@khirnov.net> References: <20201026134159.24101-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/6] put_bits: make avpriv_align_put_bits() inline 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This function is so extremely simple that it is preferable to make it inline rather than deal with all the complications arising from it being an exported symbol. Keep avpriv_align_put_bits() around until the next major bump to preserve ABI compatibility. --- libavcodec/aacenc.c | 4 ++-- libavcodec/bitstream.c | 4 +++- libavcodec/flvenc.c | 2 +- libavcodec/h261enc.c | 2 +- libavcodec/ituh263enc.c | 2 +- libavcodec/jpeglsenc.c | 2 +- libavcodec/mpeg12enc.c | 2 +- libavcodec/mpeg4audio.h | 2 +- libavcodec/msmpeg4enc.c | 2 +- libavcodec/put_bits.h | 23 ++++++++++++++++++----- libavcodec/rv10enc.c | 2 +- libavcodec/svq1enc.c | 2 +- libavcodec/vc2enc.c | 14 +++++++------- libavcodec/version.h | 4 +++- libavcodec/wmaenc.c | 4 ++-- libavcodec/xsubenc.c | 2 +- 16 files changed, 45 insertions(+), 28 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index e65b76cd74..e477089f5c 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -83,7 +83,7 @@ static void put_pce(PutBitContext *pb, AVCodecContext *avctx) } } - avpriv_align_put_bits(pb); + align_put_bits(pb); put_bits(pb, 8, strlen(aux_data)); avpriv_put_string(pb, aux_data, 0); } @@ -522,7 +522,7 @@ static void put_bitstream_info(AACEncContext *s, const char *name) put_bits(&s->pb, 8, namelen - 14); put_bits(&s->pb, 4, 0); //extension type - filler padbits = -put_bits_count(&s->pb) & 7; - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); for (i = 0; i < namelen - 2; i++) put_bits(&s->pb, 8, name[i]); put_bits(&s->pb, 12 - padbits, 0); diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c index 77c2b9ce05..ea0299047f 100644 --- a/libavcodec/bitstream.c +++ b/libavcodec/bitstream.c @@ -45,10 +45,12 @@ const uint8_t ff_log2_run[41]={ 24, }; +#if FF_API_AVPRIV_PUT_BITS void avpriv_align_put_bits(PutBitContext *s) { - put_bits(s, s->bit_left & 7, 0); + align_put_bits(s); } +#endif void avpriv_put_string(PutBitContext *pb, const char *string, int terminate_string) diff --git a/libavcodec/flvenc.c b/libavcodec/flvenc.c index c1227277b3..b85e4667c4 100644 --- a/libavcodec/flvenc.c +++ b/libavcodec/flvenc.c @@ -28,7 +28,7 @@ void ff_flv_encode_picture_header(MpegEncContext *s, int picture_number) { int format; - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); put_bits(&s->pb, 17, 1); /* 0: H.263 escape codes 1: 11-bit escape codes */ diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c index 196c37b543..909bc23bb4 100644 --- a/libavcodec/h261enc.c +++ b/libavcodec/h261enc.c @@ -55,7 +55,7 @@ void ff_h261_encode_picture_header(MpegEncContext *s, int picture_number) H261Context *h = (H261Context *)s; int format, temp_ref; - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); /* Update the pointer to last GOB */ s->ptr_lastgob = put_bits_ptr(&s->pb); diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c index ee09f2974c..b1b78218a5 100644 --- a/libavcodec/ituh263enc.c +++ b/libavcodec/ituh263enc.c @@ -124,7 +124,7 @@ void ff_h263_encode_picture_header(MpegEncContext * s, int picture_number) coded_frame_rate= 1800000; coded_frame_rate_base= (1000+best_clock_code)*best_divisor; - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); /* Update the pointer to last GOB */ s->ptr_lastgob = put_bits_ptr(&s->pb); diff --git a/libavcodec/jpeglsenc.c b/libavcodec/jpeglsenc.c index 0725457a94..10a3bd0f61 100644 --- a/libavcodec/jpeglsenc.c +++ b/libavcodec/jpeglsenc.c @@ -403,7 +403,7 @@ FF_ENABLE_DEPRECATION_WARNINGS put_bits(&pb, 8, v); } } - avpriv_align_put_bits(&pb); + align_put_bits(&pb); av_freep(&buf2); /* End of image */ diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index f246427eeb..46c3424de9 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -233,7 +233,7 @@ FF_ENABLE_DEPRECATION_WARNINGS static void put_header(MpegEncContext *s, int header) { - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); put_bits(&s->pb, 16, header >> 16); put_sbits(&s->pb, 16, header); } diff --git a/libavcodec/mpeg4audio.h b/libavcodec/mpeg4audio.h index c4cdc1508c..b274e92b62 100644 --- a/libavcodec/mpeg4audio.h +++ b/libavcodec/mpeg4audio.h @@ -165,7 +165,7 @@ static inline int ff_copy_pce_data(PutBitContext *pb, GetBitContext *gb) ff_pce_copy_bits(pb, gb, 16); if (bits) ff_pce_copy_bits(pb, gb, bits); - avpriv_align_put_bits(pb); + align_put_bits(pb); align_get_bits(gb); comment_size = ff_pce_copy_bits(pb, gb, 8); for (; comment_size > 0; comment_size--) diff --git a/libavcodec/msmpeg4enc.c b/libavcodec/msmpeg4enc.c index 144468b24f..2c61735d9d 100644 --- a/libavcodec/msmpeg4enc.c +++ b/libavcodec/msmpeg4enc.c @@ -225,7 +225,7 @@ void ff_msmpeg4_encode_picture_header(MpegEncContext * s, int picture_number) { find_best_tables(s); - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); put_bits(&s->pb, 2, s->pict_type - 1); put_bits(&s->pb, 5, s->qscale); diff --git a/libavcodec/put_bits.h b/libavcodec/put_bits.h index 3ba9549948..7d17cba18b 100644 --- a/libavcodec/put_bits.h +++ b/libavcodec/put_bits.h @@ -33,6 +33,8 @@ #include "libavutil/intreadwrite.h" #include "libavutil/avassert.h" +#include "version.h" + #if ARCH_X86_64 // TODO: Benchmark and optionally enable on other 64-bit architectures. typedef uint64_t BitBuf; @@ -145,15 +147,14 @@ static inline void flush_put_bits_le(PutBitContext *s) s->bit_buf = 0; } +#if FF_API_AVPRIV_PUT_BITS +void avpriv_align_put_bits(PutBitContext *s); +#endif + #ifdef BITSTREAM_WRITER_LE -#define avpriv_align_put_bits align_put_bits_unsupported_here #define avpriv_put_string ff_put_string_unsupported_here #define avpriv_copy_bits avpriv_copy_bits_unsupported_here #else -/** - * Pad the bitstream with zeros up to the next byte boundary. - */ -void avpriv_align_put_bits(PutBitContext *s); /** * Put the string string in the bitstream. @@ -385,6 +386,18 @@ static inline void set_put_bits_buffer_size(PutBitContext *s, int size) s->size_in_bits = 8*size; } +#ifdef BITSTREAM_WRITER_LE +#define align_put_bits align_put_bits_unsupported_here +#else +/** + * Pad the bitstream with zeros up to the next byte boundary. + */ +static inline void align_put_bits(PutBitContext *s) +{ + put_bits(s, s->bit_left & 7, 0); +} +#endif + #undef AV_WBBUF #undef AV_WLBUF diff --git a/libavcodec/rv10enc.c b/libavcodec/rv10enc.c index 55538148f2..42316836c5 100644 --- a/libavcodec/rv10enc.c +++ b/libavcodec/rv10enc.c @@ -33,7 +33,7 @@ int ff_rv10_encode_picture_header(MpegEncContext *s, int picture_number) { int full_frame= 0; - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); put_bits(&s->pb, 1, 1); /* marker */ diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index 4bf9eb9a0f..9e249aefe4 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -647,7 +647,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } } - // avpriv_align_put_bits(&s->pb); + // align_put_bits(&s->pb); while (put_bits_count(&s->pb) & 31) put_bits(&s->pb, 1, 0); diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c index 2efb0f70ad..cd25884a63 100644 --- a/libavcodec/vc2enc.c +++ b/libavcodec/vc2enc.c @@ -229,7 +229,7 @@ static void encode_parse_info(VC2EncContext *s, enum DiracParseCodes pcode) { uint32_t cur_pos, dist; - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); cur_pos = put_bits_count(&s->pb) >> 3; @@ -399,7 +399,7 @@ static void encode_source_params(VC2EncContext *s) /* VC-2 11 - sequence_header() */ static void encode_seq_header(VC2EncContext *s) { - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); encode_parse_params(s); put_vc2_ue_uint(&s->pb, s->base_vf); encode_source_params(s); @@ -409,7 +409,7 @@ static void encode_seq_header(VC2EncContext *s) /* VC-2 12.1 - picture_header() */ static void encode_picture_header(VC2EncContext *s) { - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); put_bits32(&s->pb, s->picture_number++); } @@ -509,15 +509,15 @@ static void encode_transform_params(VC2EncContext *s) static void encode_wavelet_transform(VC2EncContext *s) { encode_transform_params(s); - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); } /* VC-2 12 - picture_parse() */ static void encode_picture_start(VC2EncContext *s) { - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); encode_picture_header(s); - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); encode_wavelet_transform(s); } @@ -753,7 +753,7 @@ static int encode_hq_slice(AVCodecContext *avctx, void *arg) quants[level][orientation]); } } - avpriv_align_put_bits(pb); + align_put_bits(pb); bytes_len = (put_bits_count(pb) >> 3) - bytes_start - 1; if (p == 2) { int len_diff = slice_bytes_max - (put_bits_count(pb) >> 3); diff --git a/libavcodec/version.h b/libavcodec/version.h index 02ffa95749..78c4dd64ee 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -144,6 +144,8 @@ #ifndef FF_API_UNUSED_CODEC_CAPS #define FF_API_UNUSED_CODEC_CAPS (LIBAVCODEC_VERSION_MAJOR < 59) #endif - +#ifndef FF_API_AVPRIV_PUT_BITS +#define FF_API_AVPRIV_PUT_BITS (LIBAVCODEC_VERSION_MAJOR < 59) +#endif #endif /* AVCODEC_VERSION_H */ diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c index 091bc2ac3b..6a7e23d016 100644 --- a/libavcodec/wmaenc.c +++ b/libavcodec/wmaenc.c @@ -343,7 +343,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], s->coef_vlcs[tindex]->huffcodes[1]); } if (s->version == 1 && s->avctx->channels >= 2) - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); } return 0; } @@ -358,7 +358,7 @@ static int encode_frame(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], else if (encode_block(s, src_coefs, total_gain) < 0) return INT_MAX; - avpriv_align_put_bits(&s->pb); + align_put_bits(&s->pb); return put_bits_count(&s->pb) / 8 - s->avctx->block_align; } diff --git a/libavcodec/xsubenc.c b/libavcodec/xsubenc.c index 349c1bca3c..58be5e6deb 100644 --- a/libavcodec/xsubenc.c +++ b/libavcodec/xsubenc.c @@ -90,7 +90,7 @@ static int xsub_encode_rle(PutBitContext *pb, const uint8_t *bitmap, if (color != PADDING_COLOR && (PADDING + (w&1))) put_xsub_rle(pb, PADDING + (w&1), PADDING_COLOR); - avpriv_align_put_bits(pb); + align_put_bits(pb); bitmap += linesize; } From patchwork Mon Oct 26 13:41:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 23232 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 C0D3244AB2A for ; Mon, 26 Oct 2020 15:42:22 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A9B6E68AC31; Mon, 26 Oct 2020 15:42:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.red.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A00868A765 for ; Mon, 26 Oct 2020 15:42:14 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail.red.khirnov.net (Postfix) with ESMTP id A78D729651C for ; Mon, 26 Oct 2020 14:42:12 +0100 (CET) Received: from mail.red.khirnov.net ([IPv6:::1]) by localhost (mail.red.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id 7WvutT8G1eeb for ; Mon, 26 Oct 2020 14:42:09 +0100 (CET) Received: from libav.daenerys.khirnov.net (libav.daenerys.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.daenerys.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail.red.khirnov.net (Postfix) with ESMTPS id AF131296519 for ; Mon, 26 Oct 2020 14:42:09 +0100 (CET) Received: by libav.daenerys.khirnov.net (Postfix, from userid 1000) id 82AB820E00C0; Mon, 26 Oct 2020 14:42:08 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Oct 2020 14:41:57 +0100 Message-Id: <20201026134159.24101-4-anton@khirnov.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026134159.24101-1-anton@khirnov.net> References: <20201026134159.24101-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/6] put_bits: make avpriv_put_string() lavc-local 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" It has not been used outside of libavcodec since 20f325f320c6e18ee88983870d2a1fee94257293 --- libavcodec/aacenc.c | 2 +- libavcodec/bitstream.c | 3 +-- libavcodec/mjpegenc_common.c | 6 +++--- libavcodec/mpeg4videoenc.c | 2 +- libavcodec/put_bits.h | 4 ++-- libavcodec/vc2enc.c | 4 ++-- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index e477089f5c..bb203981b2 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -85,7 +85,7 @@ static void put_pce(PutBitContext *pb, AVCodecContext *avctx) align_put_bits(pb); put_bits(pb, 8, strlen(aux_data)); - avpriv_put_string(pb, aux_data, 0); + ff_put_string(pb, aux_data, 0); } /** diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c index ea0299047f..2eb8aac5fc 100644 --- a/libavcodec/bitstream.c +++ b/libavcodec/bitstream.c @@ -52,8 +52,7 @@ void avpriv_align_put_bits(PutBitContext *s) } #endif -void avpriv_put_string(PutBitContext *pb, const char *string, - int terminate_string) +void ff_put_string(PutBitContext *pb, const char *string, int terminate_string) { while (*string) { put_bits(pb, 8, *string); diff --git a/libavcodec/mjpegenc_common.c b/libavcodec/mjpegenc_common.c index 3038ebde6e..0b82777ec9 100644 --- a/libavcodec/mjpegenc_common.c +++ b/libavcodec/mjpegenc_common.c @@ -181,7 +181,7 @@ static void jpeg_put_comments(AVCodecContext *avctx, PutBitContext *p) /* JFIF header */ put_marker(p, APP0); put_bits(p, 16, 16); - avpriv_put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */ + ff_put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */ /* The most significant byte is used for major revisions, the least * significant byte for minor revisions. Version 1.02 is the current * released revision. */ @@ -199,7 +199,7 @@ static void jpeg_put_comments(AVCodecContext *avctx, PutBitContext *p) flush_put_bits(p); ptr = put_bits_ptr(p); put_bits(p, 16, 0); /* patched later */ - avpriv_put_string(p, LIBAVCODEC_IDENT, 1); + ff_put_string(p, LIBAVCODEC_IDENT, 1); size = strlen(LIBAVCODEC_IDENT)+3; AV_WB16(ptr, size); } @@ -212,7 +212,7 @@ static void jpeg_put_comments(AVCodecContext *avctx, PutBitContext *p) flush_put_bits(p); ptr = put_bits_ptr(p); put_bits(p, 16, 0); /* patched later */ - avpriv_put_string(p, "CS=ITU601", 1); + ff_put_string(p, "CS=ITU601", 1); size = strlen("CS=ITU601")+3; AV_WB16(ptr, size); } diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index a6a15e302c..72e6f99eaa 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1054,7 +1054,7 @@ static void mpeg4_encode_vol_header(MpegEncContext *s, if (!(s->avctx->flags & AV_CODEC_FLAG_BITEXACT)) { put_bits(&s->pb, 16, 0); put_bits(&s->pb, 16, 0x1B2); /* user_data */ - avpriv_put_string(&s->pb, LIBAVCODEC_IDENT, 0); + ff_put_string(&s->pb, LIBAVCODEC_IDENT, 0); } } diff --git a/libavcodec/put_bits.h b/libavcodec/put_bits.h index 7d17cba18b..f6310224ef 100644 --- a/libavcodec/put_bits.h +++ b/libavcodec/put_bits.h @@ -152,7 +152,7 @@ void avpriv_align_put_bits(PutBitContext *s); #endif #ifdef BITSTREAM_WRITER_LE -#define avpriv_put_string ff_put_string_unsupported_here +#define ff_put_string ff_put_string_unsupported_here #define avpriv_copy_bits avpriv_copy_bits_unsupported_here #else @@ -161,7 +161,7 @@ void avpriv_align_put_bits(PutBitContext *s); * * @param terminate_string 0-terminates the written string if value is 1 */ -void avpriv_put_string(PutBitContext *pb, const char *string, +void ff_put_string(PutBitContext *pb, const char *string, int terminate_string); /** diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c index cd25884a63..bab9d0f3d5 100644 --- a/libavcodec/vc2enc.c +++ b/libavcodec/vc2enc.c @@ -234,7 +234,7 @@ static void encode_parse_info(VC2EncContext *s, enum DiracParseCodes pcode) cur_pos = put_bits_count(&s->pb) >> 3; /* Magic string */ - avpriv_put_string(&s->pb, "BBCD", 0); + ff_put_string(&s->pb, "BBCD", 0); /* Parse code */ put_bits(&s->pb, 8, pcode); @@ -931,7 +931,7 @@ static int encode_frame(VC2EncContext *s, AVPacket *avpkt, const AVFrame *frame, /* Encoder version */ if (aux_data) { encode_parse_info(s, DIRAC_PCODE_AUX); - avpriv_put_string(&s->pb, aux_data, 1); + ff_put_string(&s->pb, aux_data, 1); } /* Picture header */ From patchwork Mon Oct 26 13:41:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 23230 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 A97E944AB2A for ; Mon, 26 Oct 2020 15:42:20 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 69D2868AB99; Mon, 26 Oct 2020 15:42:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.red.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6ADAB68811D for ; Mon, 26 Oct 2020 15:42:14 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail.red.khirnov.net (Postfix) with ESMTP id A927629651D for ; Mon, 26 Oct 2020 14:42:12 +0100 (CET) Received: from mail.red.khirnov.net ([IPv6:::1]) by localhost (mail.red.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id Cgjk1E-7m92I for ; Mon, 26 Oct 2020 14:42:09 +0100 (CET) Received: from libav.daenerys.khirnov.net (libav.daenerys.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.daenerys.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail.red.khirnov.net (Postfix) with ESMTPS id B06F529651A for ; Mon, 26 Oct 2020 14:42:09 +0100 (CET) Received: by libav.daenerys.khirnov.net (Postfix, from userid 1000) id 5F91E20E008C; Mon, 26 Oct 2020 14:42:08 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Oct 2020 14:41:58 +0100 Message-Id: <20201026134159.24101-5-anton@khirnov.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026134159.24101-1-anton@khirnov.net> References: <20201026134159.24101-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/6] put_bits: make avpriv_copy_bits() lavc-local 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" It is not used outside of lavc anymore. Keep the avpriv exported symbol around until the next bump to preserve ABI compatibility. --- libavcodec/bitstream.c | 6 +++++- libavcodec/mpeg4videoenc.c | 4 ++-- libavcodec/mpegvideo_enc.c | 8 ++++---- libavcodec/put_bits.h | 5 +++-- libavcodec/svq1enc.c | 2 +- libavcodec/wmalosslessdec.c | 4 ++-- libavcodec/wmaprodec.c | 4 ++-- libavcodec/wmavoice.c | 4 ++-- 8 files changed, 21 insertions(+), 16 deletions(-) diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c index 2eb8aac5fc..21f58a91fa 100644 --- a/libavcodec/bitstream.c +++ b/libavcodec/bitstream.c @@ -50,6 +50,10 @@ void avpriv_align_put_bits(PutBitContext *s) { align_put_bits(s); } +void avpriv_copy_bits(PutBitContext *pb, const uint8_t *src, int length) +{ + ff_copy_bits(pb, src, length); +} #endif void ff_put_string(PutBitContext *pb, const char *string, int terminate_string) @@ -62,7 +66,7 @@ void ff_put_string(PutBitContext *pb, const char *string, int terminate_string) put_bits(pb, 8, 0); } -void avpriv_copy_bits(PutBitContext *pb, const uint8_t *src, int length) +void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length) { int words = length >> 4; int bits = length & 15; diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 72e6f99eaa..b3fa910c64 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1354,8 +1354,8 @@ void ff_mpeg4_merge_partitions(MpegEncContext *s) flush_put_bits(&s->tex_pb); set_put_bits_buffer_size(&s->pb, s->pb2.buf_end - s->pb.buf); - avpriv_copy_bits(&s->pb, s->pb2.buf, pb2_len); - avpriv_copy_bits(&s->pb, s->tex_pb.buf, tex_pb_len); + ff_copy_bits(&s->pb, s->pb2.buf, pb2_len); + ff_copy_bits(&s->pb, s->tex_pb.buf, tex_pb_len); s->last_bits = put_bits_count(&s->pb); } diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index b16faf6b55..f16b26c9f2 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -3351,18 +3351,18 @@ FF_ENABLE_DEPRECATION_WARNINGS pb_bits_count= put_bits_count(&s->pb); flush_put_bits(&s->pb); - avpriv_copy_bits(&backup_s.pb, bit_buf[next_block^1], pb_bits_count); + ff_copy_bits(&backup_s.pb, bit_buf[next_block^1], pb_bits_count); s->pb= backup_s.pb; if(s->data_partitioning){ pb2_bits_count= put_bits_count(&s->pb2); flush_put_bits(&s->pb2); - avpriv_copy_bits(&backup_s.pb2, bit_buf2[next_block^1], pb2_bits_count); + ff_copy_bits(&backup_s.pb2, bit_buf2[next_block^1], pb2_bits_count); s->pb2= backup_s.pb2; tex_pb_bits_count= put_bits_count(&s->tex_pb); flush_put_bits(&s->tex_pb); - avpriv_copy_bits(&backup_s.tex_pb, bit_buf_tex[next_block^1], tex_pb_bits_count); + ff_copy_bits(&backup_s.tex_pb, bit_buf_tex[next_block^1], tex_pb_bits_count); s->tex_pb= backup_s.tex_pb; } s->last_bits= put_bits_count(&s->pb); @@ -3589,7 +3589,7 @@ static void merge_context_after_encode(MpegEncContext *dst, MpegEncContext *src) av_assert1(put_bits_count(&src->pb) % 8 ==0); av_assert1(put_bits_count(&dst->pb) % 8 ==0); - avpriv_copy_bits(&dst->pb, src->pb.buf, put_bits_count(&src->pb)); + ff_copy_bits(&dst->pb, src->pb.buf, put_bits_count(&src->pb)); flush_put_bits(&dst->pb); } diff --git a/libavcodec/put_bits.h b/libavcodec/put_bits.h index f6310224ef..8e6f70893d 100644 --- a/libavcodec/put_bits.h +++ b/libavcodec/put_bits.h @@ -149,11 +149,12 @@ static inline void flush_put_bits_le(PutBitContext *s) #if FF_API_AVPRIV_PUT_BITS void avpriv_align_put_bits(PutBitContext *s); +void avpriv_copy_bits(PutBitContext *pb, const uint8_t *src, int length); #endif #ifdef BITSTREAM_WRITER_LE #define ff_put_string ff_put_string_unsupported_here -#define avpriv_copy_bits avpriv_copy_bits_unsupported_here +#define ff_copy_bits ff_copy_bits_unsupported_here #else /** @@ -169,7 +170,7 @@ void ff_put_string(PutBitContext *pb, const char *string, * * @param length the number of bits of src to copy */ -void avpriv_copy_bits(PutBitContext *pb, const uint8_t *src, int length); +void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length); #endif static inline void put_bits_no_assert(PutBitContext *s, int n, BitBuf value) diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index 9e249aefe4..4fac0c26e5 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -472,7 +472,7 @@ static int svq1_encode_plane(SVQ1EncContext *s, int plane, if (best != 2) for (i = 5; i >= 0; i--) - avpriv_copy_bits(&s->pb, reorder_buffer[best][i], + ff_copy_bits(&s->pb, reorder_buffer[best][i], count[best][i]); if (best == 0) s->hdsp.put_pixels_tab[0][0](decoded, temp, stride, 16); diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c index b8d0f6220d..a8fd99774e 100644 --- a/libavcodec/wmalosslessdec.c +++ b/libavcodec/wmalosslessdec.c @@ -1160,14 +1160,14 @@ static void save_bits(WmallDecodeCtx *s, GetBitContext* gb, int len, s->num_saved_bits += len; if (!append) { - avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), + ff_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), s->num_saved_bits); } else { int align = 8 - (get_bits_count(gb) & 7); align = FFMIN(align, len); put_bits(&s->pb, align, get_bits(gb, align)); len -= align; - avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), len); + ff_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), len); } skip_bits_long(gb, len); diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index cbf5fa7fd5..63e7680f9a 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -1579,14 +1579,14 @@ static void save_bits(WMAProDecodeCtx *s, GetBitContext* gb, int len, s->num_saved_bits += len; if (!append) { - avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), + ff_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), s->num_saved_bits); } else { int align = 8 - (get_bits_count(gb) & 7); align = FFMIN(align, len); put_bits(&s->pb, align, get_bits(gb, align)); len -= align; - avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), len); + ff_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), len); } skip_bits_long(gb, len); diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c index f6550c6a71..a588bb6c84 100644 --- a/libavcodec/wmavoice.c +++ b/libavcodec/wmavoice.c @@ -1865,7 +1865,7 @@ static int parse_packet_header(WMAVoiceContext *s) * @param size size of the source data, in bytes * @param gb bit I/O context specifying the current position in the source. * data. This function might use this to align the bit position to - * a whole-byte boundary before calling #avpriv_copy_bits() on aligned + * a whole-byte boundary before calling #ff_copy_bits() on aligned * source data * @param nbits the amount of bits to copy from source to target * @@ -1886,7 +1886,7 @@ static void copy_bits(PutBitContext *pb, rmn_bits &= 7; rmn_bytes >>= 3; if ((rmn_bits = FFMIN(rmn_bits, nbits)) > 0) put_bits(pb, rmn_bits, get_bits(gb, rmn_bits)); - avpriv_copy_bits(pb, data + size - rmn_bytes, + ff_copy_bits(pb, data + size - rmn_bytes, FFMIN(nbits - rmn_bits, rmn_bytes << 3)); } From patchwork Mon Oct 26 13:41:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 23235 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 916C244AB2A for ; Mon, 26 Oct 2020 15:42:25 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 76F1468AB72; Mon, 26 Oct 2020 15:42:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.red.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E7E1468AA68 for ; Mon, 26 Oct 2020 15:42:19 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail.red.khirnov.net (Postfix) with ESMTP id 3E9D9296517 for ; Mon, 26 Oct 2020 14:42:14 +0100 (CET) Received: from mail.red.khirnov.net ([IPv6:::1]) by localhost (mail.red.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id hVu41Q9I0iCk for ; Mon, 26 Oct 2020 14:42:13 +0100 (CET) Received: from libav.daenerys.khirnov.net (libav.daenerys.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.daenerys.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail.red.khirnov.net (Postfix) with ESMTPS id 318E829651B for ; Mon, 26 Oct 2020 14:42:10 +0100 (CET) Received: by libav.daenerys.khirnov.net (Postfix, from userid 1000) id B216920E00B1; Mon, 26 Oct 2020 14:42:08 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Oct 2020 14:41:59 +0100 Message-Id: <20201026134159.24101-6-anton@khirnov.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026134159.24101-1-anton@khirnov.net> References: <20201026134159.24101-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 6/6] lavc: un-avpriv avpriv_bprint_to_extradata() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" It has not been used outside of lavc since 6f69f7a8bf6. Also, move it to the only place where it is used. --- libavcodec/dvdsubenc.c | 25 ++++++++++++++++++++++++- libavcodec/internal.h | 5 ----- libavcodec/utils.c | 23 ----------------------- 3 files changed, 24 insertions(+), 29 deletions(-) diff --git a/libavcodec/dvdsubenc.c b/libavcodec/dvdsubenc.c index e54b5f0d7b..9fa9d5b6d7 100644 --- a/libavcodec/dvdsubenc.c +++ b/libavcodec/dvdsubenc.c @@ -424,6 +424,29 @@ fail: return ret; } +static int bprint_to_extradata(AVCodecContext *avctx, struct AVBPrint *buf) +{ + int ret; + char *str; + + ret = av_bprint_finalize(buf, &str); + if (ret < 0) + return ret; + if (!av_bprint_is_complete(buf)) { + av_free(str); + return AVERROR(ENOMEM); + } + + avctx->extradata = str; + /* Note: the string is NUL terminated (so extradata can be read as a + * string), but the ending character is not accounted in the size (in + * binary formats you are likely not supposed to mux that character). When + * extradata is copied, it is also padded with AV_INPUT_BUFFER_PADDING_SIZE + * zeros. */ + avctx->extradata_size = buf->len; + return 0; +} + static int dvdsub_init(AVCodecContext *avctx) { DVDSubtitleContext *dvdc = avctx->priv_data; @@ -451,7 +474,7 @@ static int dvdsub_init(AVCodecContext *avctx) av_bprintf(&extradata, " %06"PRIx32"%c", dvdc->global_palette[i] & 0xFFFFFF, i < 15 ? ',' : '\n'); - ret = avpriv_bprint_to_extradata(avctx, &extradata); + ret = bprint_to_extradata(avctx, &extradata); if (ret < 0) return ret; diff --git a/libavcodec/internal.h b/libavcodec/internal.h index ce4dbbc2b9..17defb9b50 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -313,11 +313,6 @@ int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx); */ int ff_codec_open2_recursive(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); -/** - * Finalize buf into extradata and set its size appropriately. - */ -int avpriv_bprint_to_extradata(AVCodecContext *avctx, struct AVBPrint *buf); - const uint8_t *avpriv_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state); diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 93ac1cd9f0..fb40962c47 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1946,29 +1946,6 @@ int avcodec_is_open(AVCodecContext *s) return !!s->internal; } -int avpriv_bprint_to_extradata(AVCodecContext *avctx, struct AVBPrint *buf) -{ - int ret; - char *str; - - ret = av_bprint_finalize(buf, &str); - if (ret < 0) - return ret; - if (!av_bprint_is_complete(buf)) { - av_free(str); - return AVERROR(ENOMEM); - } - - avctx->extradata = str; - /* Note: the string is NUL terminated (so extradata can be read as a - * string), but the ending character is not accounted in the size (in - * binary formats you are likely not supposed to mux that character). When - * extradata is copied, it is also padded with AV_INPUT_BUFFER_PADDING_SIZE - * zeros. */ - avctx->extradata_size = buf->len; - return 0; -} - const uint8_t *avpriv_find_start_code(const uint8_t *av_restrict p, const uint8_t *end, uint32_t *av_restrict state)