diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-09-14 18:54:42 -0400 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2011-10-20 13:09:25 -0400 |
commit | 0f97c5014b63f94ebffeb3b0f48c21bbe77b11f3 (patch) | |
tree | be69d62f55e579cec663424ae5e7950efa50f9e5 /libavcodec/shorten.c | |
parent | e9e37f2d1051ba71985878a5239deb976183a23b (diff) | |
download | ffmpeg-0f97c5014b63f94ebffeb3b0f48c21bbe77b11f3.tar.gz |
shorten: only calculate output size when returning decoded samples, otherwise
just set data_size to zero.
Diffstat (limited to 'libavcodec/shorten.c')
-rw-r--r-- | libavcodec/shorten.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c index 62cead49e1..a4313aeb37 100644 --- a/libavcodec/shorten.c +++ b/libavcodec/shorten.c @@ -385,6 +385,7 @@ static int shorten_decode_frame(AVCodecContext *avctx, int ret; if ((ret = read_header(s)) < 0) return ret; + *data_size = 0; } else { @@ -423,8 +424,9 @@ static int shorten_decode_frame(AVCodecContext *avctx, break; } case FN_QUIT: - goto frame_done; + break; } + *data_size = 0; } else { /* process audio command */ int residual_size = 0; @@ -510,12 +512,12 @@ static int shorten_decode_frame(AVCodecContext *avctx, if (s->cur_chan == s->channels) { samples = interleave_buffer(samples, s->channels, s->blocksize, s->decoded); s->cur_chan = 0; - goto frame_done; + *data_size = (int8_t *)samples - (int8_t *)data; + } else { + *data_size = 0; } } } -frame_done: - *data_size = (int8_t *)samples - (int8_t *)data; // s->last_blocksize = s->blocksize; s->bitindex = get_bits_count(&s->gb) - 8*((get_bits_count(&s->gb))/8); |