From 07d16e2ecfb7da976ef56829c4fd6f93ca94b00e Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Thu, 19 Mar 2009 03:04:21 +0000 Subject: [PATCH] share some constants between the FLAC encoder and FLAC decoder Originally committed as revision 18041 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/flac.h | 3 +++ libavcodec/flacdec.c | 11 ++++------- libavcodec/flacenc.c | 11 +++-------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/libavcodec/flac.h b/libavcodec/flac.h index c93d98e144..c957893d30 100644 --- a/libavcodec/flac.h +++ b/libavcodec/flac.h @@ -30,6 +30,9 @@ #include "avcodec.h" #define FLAC_STREAMINFO_SIZE 34 +#define FLAC_MAX_CHANNELS 8 +#define FLAC_MIN_BLOCKSIZE 16 +#define FLAC_MAX_BLOCKSIZE 65535 enum { FLAC_METADATA_TYPE_STREAMINFO = 0, diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index cd746f224d..7f2542a301 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -46,9 +46,6 @@ #undef NDEBUG #include -#define MAX_CHANNELS 8 -#define MAX_BLOCKSIZE 65535 - enum decorrelation_type { INDEPENDENT, LEFT_SIDE, @@ -69,7 +66,7 @@ typedef struct FLACContext { enum decorrelation_type decorrelation; ///< channel decorrelation type in the current frame int got_streaminfo; ///< indicates if the STREAMINFO has been read - int32_t *decoded[MAX_CHANNELS]; ///< decoded samples + int32_t *decoded[FLAC_MAX_CHANNELS]; ///< decoded samples uint8_t *bitstream; unsigned int bitstream_size; unsigned int bitstream_index; @@ -190,7 +187,7 @@ void ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, skip_bits(&gb, 16); /* skip min blocksize */ s->max_blocksize = get_bits(&gb, 16); - if (s->max_blocksize < 16) { + if (s->max_blocksize < FLAC_MIN_BLOCKSIZE) { av_log(avctx, AV_LOG_WARNING, "invalid max blocksize: %d\n", s->max_blocksize); s->max_blocksize = 16; @@ -510,9 +507,9 @@ static int decode_frame(FLACContext *s, int alloc_data_size) sample_rate_code = get_bits(&s->gb, 4); assignment = get_bits(&s->gb, 4); /* channel assignment */ - if (assignment < 8 && s->channels == assignment+1) + if (assignment < FLAC_MAX_CHANNELS && s->channels == assignment+1) decorrelation = INDEPENDENT; - else if (assignment >=8 && assignment < 11 && s->channels == 2) + else if (assignment >= FLAC_MAX_CHANNELS && assignment < 11 && s->channels == 2) decorrelation = LEFT_SIDE + assignment - 8; else { av_log(s->avctx, AV_LOG_ERROR, "unsupported channel assignment %d (channels=%d)\n", diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 748906ea72..7ddaf7ed81 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -27,10 +27,7 @@ #include "dsputil.h" #include "golomb.h" #include "lpc.h" - -#define FLAC_MAX_CH 8 -#define FLAC_MIN_BLOCKSIZE 16 -#define FLAC_MAX_BLOCKSIZE 65535 +#include "flac.h" #define FLAC_SUBFRAME_CONSTANT 0 #define FLAC_SUBFRAME_VERBATIM 1 @@ -43,8 +40,6 @@ #define FLAC_CHMODE_RIGHT_SIDE 9 #define FLAC_CHMODE_MID_SIDE 10 -#define FLAC_STREAMINFO_SIZE 34 - #define MAX_FIXED_ORDER 4 #define MAX_PARTITION_ORDER 8 #define MAX_PARTITIONS (1 << MAX_PARTITION_ORDER) @@ -82,7 +77,7 @@ typedef struct FlacSubframe { } FlacSubframe; typedef struct FlacFrame { - FlacSubframe subframes[FLAC_MAX_CH]; + FlacSubframe subframes[FLAC_MAX_CHANNELS]; int blocksize; int bs_code[2]; uint8_t crc8; @@ -185,7 +180,7 @@ static av_cold int flac_encode_init(AVCodecContext *avctx) return -1; } - if(channels < 1 || channels > FLAC_MAX_CH) { + if(channels < 1 || channels > FLAC_MAX_CHANNELS) { return -1; } s->channels = channels; -- 2.11.0