You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-16 22:42:38 +02:00
sipr: Convert to the new bitstream reader
This commit is contained in:
committed by
Diego Biurrun
parent
f26cbb555b
commit
087bc8d704
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
#define BITSTREAM_READER_LE
|
#define BITSTREAM_READER_LE
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "get_bits.h"
|
#include "bitstream.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "lsp.h"
|
#include "lsp.h"
|
||||||
#include "acelp_vectors.h"
|
#include "acelp_vectors.h"
|
||||||
@ -188,28 +188,28 @@ static void pitch_sharpening(int pitch_lag_int, float beta,
|
|||||||
/**
|
/**
|
||||||
* Extract decoding parameters from the input bitstream.
|
* Extract decoding parameters from the input bitstream.
|
||||||
* @param parms parameters structure
|
* @param parms parameters structure
|
||||||
* @param pgb pointer to initialized GetBitContext structure
|
* @param bc pointer to initialized BitstreamContext structure
|
||||||
*/
|
*/
|
||||||
static void decode_parameters(SiprParameters* parms, GetBitContext *pgb,
|
static void decode_parameters(SiprParameters* parms, BitstreamContext *bc,
|
||||||
const SiprModeParam *p)
|
const SiprModeParam *p)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
if (p->ma_predictor_bits)
|
if (p->ma_predictor_bits)
|
||||||
parms->ma_pred_switch = get_bits(pgb, p->ma_predictor_bits);
|
parms->ma_pred_switch = bitstream_read(bc, p->ma_predictor_bits);
|
||||||
|
|
||||||
for (i = 0; i < 5; i++)
|
for (i = 0; i < 5; i++)
|
||||||
parms->vq_indexes[i] = get_bits(pgb, p->vq_indexes_bits[i]);
|
parms->vq_indexes[i] = bitstream_read(bc, p->vq_indexes_bits[i]);
|
||||||
|
|
||||||
for (i = 0; i < p->subframe_count; i++) {
|
for (i = 0; i < p->subframe_count; i++) {
|
||||||
parms->pitch_delay[i] = get_bits(pgb, p->pitch_delay_bits[i]);
|
parms->pitch_delay[i] = bitstream_read(bc, p->pitch_delay_bits[i]);
|
||||||
if (p->gp_index_bits)
|
if (p->gp_index_bits)
|
||||||
parms->gp_index[i] = get_bits(pgb, p->gp_index_bits);
|
parms->gp_index[i] = bitstream_read(bc, p->gp_index_bits);
|
||||||
|
|
||||||
for (j = 0; j < p->number_of_fc_indexes; j++)
|
for (j = 0; j < p->number_of_fc_indexes; j++)
|
||||||
parms->fc_indexes[i][j] = get_bits(pgb, p->fc_index_bits[j]);
|
parms->fc_indexes[i][j] = bitstream_read(bc, p->fc_index_bits[j]);
|
||||||
|
|
||||||
parms->gc_index[i] = get_bits(pgb, p->gc_index_bits);
|
parms->gc_index[i] = bitstream_read(bc, p->gc_index_bits);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -527,7 +527,7 @@ static int sipr_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
const uint8_t *buf=avpkt->data;
|
const uint8_t *buf=avpkt->data;
|
||||||
SiprParameters parm;
|
SiprParameters parm;
|
||||||
const SiprModeParam *mode_par = &modes[ctx->mode];
|
const SiprModeParam *mode_par = &modes[ctx->mode];
|
||||||
GetBitContext gb;
|
BitstreamContext bc;
|
||||||
float *samples;
|
float *samples;
|
||||||
int subframe_size = ctx->mode == MODE_16k ? L_SUBFR_16k : SUBFR_SIZE;
|
int subframe_size = ctx->mode == MODE_16k ? L_SUBFR_16k : SUBFR_SIZE;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
@ -549,10 +549,10 @@ static int sipr_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
}
|
}
|
||||||
samples = (float *)frame->data[0];
|
samples = (float *)frame->data[0];
|
||||||
|
|
||||||
init_get_bits(&gb, buf, mode_par->bits_per_frame);
|
bitstream_init(&bc, buf, mode_par->bits_per_frame);
|
||||||
|
|
||||||
for (i = 0; i < mode_par->frames_per_packet; i++) {
|
for (i = 0; i < mode_par->frames_per_packet; i++) {
|
||||||
decode_parameters(&parm, &gb, mode_par);
|
decode_parameters(&parm, &bc, mode_par);
|
||||||
|
|
||||||
ctx->decode_frame(ctx, &parm, samples);
|
ctx->decode_frame(ctx, &parm, samples);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user