[Ffmpeg-cvslog] r7836 - trunk/libavcodec/dtsdec.c

mru subversion
Mon Feb 5 20:55:15 CET 2007


Author: mru
Date: Mon Feb  5 20:55:15 2007
New Revision: 7836

Modified:
   trunk/libavcodec/dtsdec.c

Log:
cosmetics: don't needlessly open new blocks


Modified: trunk/libavcodec/dtsdec.c
==============================================================================
--- trunk/libavcodec/dtsdec.c	(original)
+++ trunk/libavcodec/dtsdec.c	Mon Feb  5 20:55:15 2007
@@ -208,10 +208,15 @@
     int bit_rate;
     int len;
     dts_state_t *state = avctx->priv_data;
+    level_t level;
+    sample_t bias;
+    int i;
 
     *data_size = 0;
 
     while(1) {
+        int length;
+
         len = end - start;
         if(!len)
             break;
@@ -225,60 +230,50 @@
         if(bufpos != buf + HEADER_SIZE)
             break;
 
-        {
-            int length;
-
-            length =
-                dts_syncinfo(state, buf, &flags, &sample_rate, &bit_rate,
-                             &frame_length);
-            if(!length) {
-                av_log(NULL, AV_LOG_INFO, "skip\n");
-                for(bufptr = buf; bufptr < buf + HEADER_SIZE - 1; bufptr++)
-                    bufptr[0] = bufptr[1];
-                continue;
-            }
-            bufpos = buf + length;
+        length = dts_syncinfo(state, buf, &flags, &sample_rate, &bit_rate,
+                              &frame_length);
+        if(!length) {
+            av_log(NULL, AV_LOG_INFO, "skip\n");
+            for(bufptr = buf; bufptr < buf + HEADER_SIZE - 1; bufptr++)
+                bufptr[0] = bufptr[1];
+            continue;
         }
+        bufpos = buf + length;
+    }
+
+    flags = 2;              /* ???????????? */
+    level = CONVERT_LEVEL;
+    bias = CONVERT_BIAS;
+
+    flags |= DTS_ADJUST_LEVEL;
+    if(dts_frame(state, buf, &flags, &level, bias)) {
+        av_log(avctx, AV_LOG_ERROR, "dts_frame() failed\n");
+        goto end;
     }
 
-    {
-        level_t level;
-        sample_t bias;
-        int i;
-
-        flags = 2;              /* ???????????? */
-        level = CONVERT_LEVEL;
-        bias = CONVERT_BIAS;
-
-        flags |= DTS_ADJUST_LEVEL;
-        if(dts_frame(state, buf, &flags, &level, bias))
-            goto error;
-        avctx->sample_rate = sample_rate;
-        avctx->channels = channels_multi(flags);
-        avctx->bit_rate = bit_rate;
-        for(i = 0; i < dts_blocks_num(state); i++) {
-            if(dts_block(state))
-                goto error;
-            {
-                int chans;
-
-                chans = channels_multi(flags);
-                convert2s16_multi(dts_samples(state), out_samples,
-                                  flags & (DTS_CHANNEL_MASK | DTS_LFE));
-
-                out_samples += 256 * chans;
-                *data_size += 256 * sizeof(int16_t) * chans;
-            }
+    avctx->sample_rate = sample_rate;
+    avctx->channels = channels_multi(flags);
+    avctx->bit_rate = bit_rate;
+
+    for(i = 0; i < dts_blocks_num(state); i++) {
+        int chans;
+
+        if(dts_block(state)) {
+            av_log(avctx, AV_LOG_ERROR, "dts_block() failed\n");
+            goto end;
         }
-        bufptr = buf;
-        bufpos = buf + HEADER_SIZE;
-        return start - buff;
-      error:
-        av_log(NULL, AV_LOG_ERROR, "error\n");
-        bufptr = buf;
-        bufpos = buf + HEADER_SIZE;
+
+        chans = channels_multi(flags);
+        convert2s16_multi(dts_samples(state), out_samples,
+                          flags & (DTS_CHANNEL_MASK | DTS_LFE));
+
+        out_samples += 256 * chans;
+        *data_size += 256 * sizeof(int16_t) * chans;
     }
 
+end:
+    bufptr = buf;
+    bufpos = buf + HEADER_SIZE;
     return start - buff;
 }
 




More information about the ffmpeg-cvslog mailing list