summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2007-02-05 19:55:15 +0000
committerMåns Rullgård <mans@mansr.com>2007-02-05 19:55:15 +0000
commit8af23633a2821a94a7decff47d82369000fedd00 (patch)
tree90b8a97a5ddb52ac6f16b2376a2cb92cb6666097
parentac49ddc60df866a042d9023b1d9230b3ab2c0cad (diff)
downloadffmpeg-streaming-8af23633a2821a94a7decff47d82369000fedd00.zip
ffmpeg-streaming-8af23633a2821a94a7decff47d82369000fedd00.tar.gz
cosmetics: don't needlessly open new blocks
Originally committed as revision 7836 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/dtsdec.c91
1 files changed, 43 insertions, 48 deletions
diff --git a/libavcodec/dtsdec.c b/libavcodec/dtsdec.c
index df15f15..3c73b47 100644
--- a/libavcodec/dtsdec.c
+++ b/libavcodec/dtsdec.c
@@ -208,10 +208,15 @@ dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
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 @@ dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
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;
}
OpenPOWER on IntegriCloud