mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
Remove some duplicated code
Originally committed as revision 9575 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
0d79efeba9
commit
a562e2e651
@ -460,6 +460,10 @@ static int alac_decode_frame(AVCodecContext *avctx,
|
|||||||
|
|
||||||
int channels;
|
int channels;
|
||||||
int32_t outputsamples;
|
int32_t outputsamples;
|
||||||
|
int hassize;
|
||||||
|
int readsamplesize;
|
||||||
|
int wasted_bytes;
|
||||||
|
int isnotcompressed;
|
||||||
|
|
||||||
/* short-circuit null buffers */
|
/* short-circuit null buffers */
|
||||||
if (!inbuffer || !input_buffer_size)
|
if (!inbuffer || !input_buffer_size)
|
||||||
@ -479,24 +483,10 @@ static int alac_decode_frame(AVCodecContext *avctx,
|
|||||||
alac->context_initialized = 1;
|
alac->context_initialized = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
outputsamples = alac->setinfo_max_samples_per_frame;
|
|
||||||
|
|
||||||
init_get_bits(&alac->gb, inbuffer, input_buffer_size * 8);
|
init_get_bits(&alac->gb, inbuffer, input_buffer_size * 8);
|
||||||
|
|
||||||
channels = get_bits(&alac->gb, 3);
|
channels = get_bits(&alac->gb, 3);
|
||||||
|
|
||||||
*outputsize = outputsamples * alac->bytespersample;
|
|
||||||
|
|
||||||
switch(channels) {
|
|
||||||
case 0: { /* 1 channel */
|
|
||||||
int hassize;
|
|
||||||
int isnotcompressed;
|
|
||||||
int readsamplesize;
|
|
||||||
|
|
||||||
int wasted_bytes;
|
|
||||||
int ricemodifier;
|
|
||||||
|
|
||||||
|
|
||||||
/* 2^result = something to do with output waiting.
|
/* 2^result = something to do with output waiting.
|
||||||
* perhaps matters if we read > 1 frame in a pass?
|
* perhaps matters if we read > 1 frame in a pass?
|
||||||
*/
|
*/
|
||||||
@ -514,10 +504,15 @@ static int alac_decode_frame(AVCodecContext *avctx,
|
|||||||
/* now read the number of samples,
|
/* now read the number of samples,
|
||||||
* as a 32bit integer */
|
* as a 32bit integer */
|
||||||
outputsamples = get_bits(&alac->gb, 32);
|
outputsamples = get_bits(&alac->gb, 32);
|
||||||
*outputsize = outputsamples * alac->bytespersample;
|
} else
|
||||||
}
|
outputsamples = alac->setinfo_max_samples_per_frame;
|
||||||
|
|
||||||
readsamplesize = alac->setinfo_sample_size - (wasted_bytes * 8);
|
*outputsize = outputsamples * alac->bytespersample;
|
||||||
|
readsamplesize = alac->setinfo_sample_size - (wasted_bytes * 8) + channels;
|
||||||
|
|
||||||
|
switch(channels) {
|
||||||
|
case 0: { /* 1 channel */
|
||||||
|
int ricemodifier;
|
||||||
|
|
||||||
if (!isnotcompressed) {
|
if (!isnotcompressed) {
|
||||||
/* so it is compressed */
|
/* so it is compressed */
|
||||||
@ -628,37 +623,9 @@ static int alac_decode_frame(AVCodecContext *avctx,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1: { /* 2 channels */
|
case 1: { /* 2 channels */
|
||||||
int hassize;
|
|
||||||
int isnotcompressed;
|
|
||||||
int readsamplesize;
|
|
||||||
|
|
||||||
int wasted_bytes;
|
|
||||||
|
|
||||||
uint8_t interlacing_shift;
|
uint8_t interlacing_shift;
|
||||||
uint8_t interlacing_leftweight;
|
uint8_t interlacing_leftweight;
|
||||||
|
|
||||||
/* 2^result = something to do with output waiting.
|
|
||||||
* perhaps matters if we read > 1 frame in a pass?
|
|
||||||
*/
|
|
||||||
get_bits(&alac->gb, 4);
|
|
||||||
|
|
||||||
get_bits(&alac->gb, 12); /* unknown, skip 12 bits */
|
|
||||||
|
|
||||||
hassize = get_bits(&alac->gb, 1); /* the output sample size is stored soon */
|
|
||||||
|
|
||||||
wasted_bytes = get_bits(&alac->gb, 2); /* unknown ? */
|
|
||||||
|
|
||||||
isnotcompressed = get_bits(&alac->gb, 1); /* whether the frame is compressed */
|
|
||||||
|
|
||||||
if (hassize) {
|
|
||||||
/* now read the number of samples,
|
|
||||||
* as a 32bit integer */
|
|
||||||
outputsamples = get_bits(&alac->gb, 32);
|
|
||||||
*outputsize = outputsamples * alac->bytespersample;
|
|
||||||
}
|
|
||||||
|
|
||||||
readsamplesize = alac->setinfo_sample_size - (wasted_bytes * 8) + 1;
|
|
||||||
|
|
||||||
if (!isnotcompressed) {
|
if (!isnotcompressed) {
|
||||||
/* compressed */
|
/* compressed */
|
||||||
int16_t predictor_coef_table_a[32];
|
int16_t predictor_coef_table_a[32];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user