|
|
|
@ -88,12 +88,8 @@ static int getBitrateMode(int bitrate) |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
for(i=0;i<8;i++) |
|
|
|
|
{ |
|
|
|
|
if(rates[i].rate==bitrate) |
|
|
|
|
{ |
|
|
|
|
return rates[i].mode; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
/* no bitrate matching, return an error */ |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
@ -103,14 +99,10 @@ static void amr_decode_fix_avctx(AVCodecContext * avctx) |
|
|
|
|
const int is_amr_wb = 1 + (avctx->codec_id == CODEC_ID_AMR_WB); |
|
|
|
|
|
|
|
|
|
if(avctx->sample_rate == 0) |
|
|
|
|
{ |
|
|
|
|
avctx->sample_rate = 8000 * is_amr_wb; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(avctx->channels == 0) |
|
|
|
|
{ |
|
|
|
|
avctx->channels = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
avctx->frame_size = 160 * is_amr_wb; |
|
|
|
|
avctx->sample_fmt = SAMPLE_FMT_S16; |
|
|
|
@ -329,12 +321,8 @@ static int getWBBitrateMode(int bitrate) |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
for(i=0;i<9;i++) |
|
|
|
|
{ |
|
|
|
|
if(rates[i].rate==bitrate) |
|
|
|
|
{ |
|
|
|
|
return rates[i].mode; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
/* no bitrate matching, return an error */ |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
@ -443,10 +431,9 @@ static int amr_wb_decode_frame(AVCodecContext * avctx, |
|
|
|
|
int packet_size; |
|
|
|
|
static const uint8_t block_size[16] = {18, 23, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1}; |
|
|
|
|
|
|
|
|
|
if(buf_size==0) { |
|
|
|
|
if(buf_size==0) |
|
|
|
|
/* nothing to do */ |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
mode = (amrData[0] >> 3) & 0x000F; |
|
|
|
|
packet_size = block_size[mode]; |
|
|
|
|