From 17b1375965593e688c3e12ddbbb7298c5140b9e1 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sun, 28 Aug 2022 15:21:27 +0200 Subject: [PATCH] avcodec/flac: Move ff_flac_get_max_frame_size() to flacenc.c It is its only user. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 2 +- libavcodec/flac.c | 21 --------------------- libavcodec/flac.h | 8 -------- libavcodec/flacenc.c | 40 ++++++++++++++++++++++++++++++++++------ 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index cb80f73d99..945908e3b8 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -347,7 +347,7 @@ OBJS-$(CONFIG_FIC_DECODER) += fic.o OBJS-$(CONFIG_FITS_DECODER) += fitsdec.o fits.o OBJS-$(CONFIG_FITS_ENCODER) += fitsenc.o OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flacdsp.o flac.o -OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flacencdsp.o flac.o +OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flacencdsp.o OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o OBJS-$(CONFIG_FLASHSV2_ENCODER) += flashsv2enc.o diff --git a/libavcodec/flac.c b/libavcodec/flac.c index dd68830622..03c7bfb9e6 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -145,27 +145,6 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, return 0; } -int ff_flac_get_max_frame_size(int blocksize, int ch, int bps) -{ - /* Technically, there is no limit to FLAC frame size, but an encoder - should not write a frame that is larger than if verbatim encoding mode - were to be used. */ - - int count; - - count = 16; /* frame header */ - count += ch * ((7+bps+7)/8); /* subframe headers */ - if (ch == 2) { - /* for stereo, need to account for using decorrelation */ - count += (( 2*bps+1) * blocksize + 7) / 8; - } else { - count += ( ch*bps * blocksize + 7) / 8; - } - count += 2; /* frame footer */ - - return count; -} - int ff_flac_is_extradata_valid(AVCodecContext *avctx, enum FLACExtradataFormat *format, uint8_t **streaminfo_start) diff --git a/libavcodec/flac.h b/libavcodec/flac.h index 315df492a3..239e842716 100644 --- a/libavcodec/flac.h +++ b/libavcodec/flac.h @@ -109,14 +109,6 @@ int ff_flac_is_extradata_valid(AVCodecContext *avctx, enum FLACExtradataFormat *format, uint8_t **streaminfo_start); -/** - * Calculate an estimate for the maximum frame size based on verbatim mode. - * @param blocksize block size, in samples - * @param ch number of channels - * @param bps bits-per-sample - */ -int ff_flac_get_max_frame_size(int blocksize, int ch, int bps); - /** * Validate and decode a frame header. * @param avctx AVCodecContext to use as av_log() context diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 73cf185314..0170e02ae8 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -157,6 +157,34 @@ static void write_streaminfo(FlacEncodeContext *s, uint8_t *header) } +/** + * Calculate an estimate for the maximum frame size based on verbatim mode. + * @param blocksize block size, in samples + * @param ch number of channels + * @param bps bits-per-sample + */ +static int flac_get_max_frame_size(int blocksize, int ch, int bps) +{ + /* Technically, there is no limit to FLAC frame size, but an encoder + should not write a frame that is larger than if verbatim encoding mode + were to be used. */ + + int count; + + count = 16; /* frame header */ + count += ch * ((7+bps+7)/8); /* subframe headers */ + if (ch == 2) { + /* for stereo, need to account for using decorrelation */ + count += (( 2*bps+1) * blocksize + 7) / 8; + } else { + count += ( ch*bps * blocksize + 7) / 8; + } + count += 2; /* frame footer */ + + return count; +} + + /** * Set blocksize based on samplerate. * Choose the closest predefined blocksize >= BLOCK_TIME_MS milliseconds. @@ -378,9 +406,9 @@ static av_cold int flac_encode_init(AVCodecContext *avctx) s->max_blocksize = s->avctx->frame_size; /* set maximum encoded frame size in verbatim mode */ - s->max_framesize = ff_flac_get_max_frame_size(s->avctx->frame_size, - s->channels, - s->avctx->bits_per_raw_sample); + s->max_framesize = flac_get_max_frame_size(s->avctx->frame_size, + s->channels, + s->avctx->bits_per_raw_sample); /* initialize MD5 context */ s->md5ctx = av_md5_alloc(); @@ -1353,9 +1381,9 @@ static int flac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, /* change max_framesize for small final frame */ if (frame->nb_samples < s->frame.blocksize) { - s->max_framesize = ff_flac_get_max_frame_size(frame->nb_samples, - s->channels, - avctx->bits_per_raw_sample); + s->max_framesize = flac_get_max_frame_size(frame->nb_samples, + s->channels, + avctx->bits_per_raw_sample); } init_frame(s, frame->nb_samples);