changeset 9248:f8973e93809a libavcodec

flacdec: cosmetics: separate the pure frame header parsing code from other frame header decoding code
author jbr
date Sun, 22 Mar 2009 23:19:49 +0000
parents ef4444d8b2fc
children 353cfdb196e8
files flacdec.c
diffstat 1 files changed, 34 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/flacdec.c	Sun Mar 22 23:13:21 2009 +0000
+++ b/flacdec.c	Sun Mar 22 23:19:49 2009 +0000
@@ -504,11 +504,6 @@
         av_log(s->avctx, AV_LOG_ERROR, "invalid channel mode: %d\n", ch_mode);
         return -1;
     }
-    if (channels != s->channels) {
-        av_log(s->avctx, AV_LOG_ERROR, "switching channel layout mid-stream "
-                                       "is not supported\n");
-        return -1;
-    }
 
     /* bits per sample */
     bps_code = get_bits(gb, 3);
@@ -518,20 +513,6 @@
         return -1;
     }
     bps = sample_size_table[bps_code];
-    if (bps && bps != s->bps) {
-        av_log(s->avctx, AV_LOG_ERROR, "switching bps mid-stream is not "
-                                       "supported\n");
-        return -1;
-    }
-    if (s->bps > 16) {
-        s->avctx->sample_fmt = SAMPLE_FMT_S32;
-        s->sample_shift = 32 - s->bps;
-        s->is32 = 1;
-    } else {
-        s->avctx->sample_fmt = SAMPLE_FMT_S16;
-        s->sample_shift = 16 - s->bps;
-        s->is32 = 0;
-    }
 
     /* reserved bit */
     if (get_bits1(gb)) {
@@ -556,11 +537,6 @@
     } else {
         blocksize = ff_flac_blocksize_table[bs_code];
     }
-    if (blocksize > s->max_blocksize) {
-        av_log(s->avctx, AV_LOG_ERROR, "blocksize %d > %d\n", blocksize,
-               s->max_blocksize);
-        return -1;
-    }
 
     /* sample rate */
     if (sr_code < 12) {
@@ -576,12 +552,6 @@
                sr_code);
         return -1;
     }
-    if (samplerate == 0) {
-        samplerate = s->samplerate;
-    } else if (samplerate != s->samplerate) {
-        av_log(s->avctx, AV_LOG_WARNING, "sample rate changed from %d to %d\n",
-               s->samplerate, samplerate);
-    }
 
     /* header CRC-8 check */
     skip_bits(gb, 8);
@@ -591,10 +561,42 @@
         return -1;
     }
 
+    if (channels != s->channels) {
+        av_log(s->avctx, AV_LOG_ERROR, "switching channel layout mid-stream "
+                                       "is not supported\n");
+        return -1;
+    }
+    s->ch_mode      = ch_mode;
+
+    if (bps && bps != s->bps) {
+        av_log(s->avctx, AV_LOG_ERROR, "switching bps mid-stream is not "
+                                       "supported\n");
+        return -1;
+    }
+    if (s->bps > 16) {
+        s->avctx->sample_fmt = SAMPLE_FMT_S32;
+        s->sample_shift = 32 - s->bps;
+        s->is32 = 1;
+    } else {
+        s->avctx->sample_fmt = SAMPLE_FMT_S16;
+        s->sample_shift = 16 - s->bps;
+        s->is32 = 0;
+    }
+
+    if (blocksize > s->max_blocksize) {
+        av_log(s->avctx, AV_LOG_ERROR, "blocksize %d > %d\n", blocksize,
+               s->max_blocksize);
+        return -1;
+    }
     s->blocksize    = blocksize;
+
+    if (samplerate == 0) {
+        samplerate = s->samplerate;
+    } else if (samplerate != s->samplerate) {
+        av_log(s->avctx, AV_LOG_WARNING, "sample rate changed from %d to %d\n",
+               s->samplerate, samplerate);
+    }
     s->samplerate   = s->avctx->sample_rate = samplerate;
-    s->bps          = bps;
-    s->ch_mode      = ch_mode;
 
 //    dump_headers(s->avctx, (FLACStreaminfo *)s);