[FFmpeg-devel] [PATCH 05/11] avcodec/flac: Move ff_flac_get_max_frame_size() to flacenc.c
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Mon Aug 29 00:19:51 EEST 2022
It is its only user.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
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);
--
2.34.1
More information about the ffmpeg-devel
mailing list