[SCM] libav/experimental: share some constants between the FLAC encoder and FLAC decoder

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:41:41 UTC 2013


The following commit has been merged in the experimental branch:
commit 07d16e2ecfb7da976ef56829c4fd6f93ca94b00e
Author: Justin Ruggles <justin.ruggles at gmail.com>
Date:   Thu Mar 19 03:04:21 2009 +0000

    share some constants between the FLAC encoder and FLAC decoder
    
    Originally committed as revision 18041 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/flac.h b/libavcodec/flac.h
index c93d98e..c957893 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 cd746f2..7f2542a 100644
--- a/libavcodec/flacdec.c
+++ b/libavcodec/flacdec.c
@@ -46,9 +46,6 @@
 #undef NDEBUG
 #include <assert.h>
 
-#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 748906e..7ddaf7e 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;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list