mirror of https://git.ffmpeg.org/ffmpeg.git
qcelp: Convert to the new bitstream reader
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
770406d1e8
commit
0dabd329e8
|
@ -31,9 +31,10 @@
|
||||||
|
|
||||||
#include "libavutil/channel_layout.h"
|
#include "libavutil/channel_layout.h"
|
||||||
#include "libavutil/float_dsp.h"
|
#include "libavutil/float_dsp.h"
|
||||||
|
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
|
#include "bitstream.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "get_bits.h"
|
|
||||||
#include "qcelpdata.h"
|
#include "qcelpdata.h"
|
||||||
#include "celp_filters.h"
|
#include "celp_filters.h"
|
||||||
#include "acelp_filters.h"
|
#include "acelp_filters.h"
|
||||||
|
@ -53,7 +54,7 @@ typedef enum {
|
||||||
} qcelp_packet_rate;
|
} qcelp_packet_rate;
|
||||||
|
|
||||||
typedef struct QCELPContext {
|
typedef struct QCELPContext {
|
||||||
GetBitContext gb;
|
BitstreamContext bc;
|
||||||
qcelp_packet_rate bitrate;
|
qcelp_packet_rate bitrate;
|
||||||
QCELPFrame frame; /**< unpacked data frame */
|
QCELPFrame frame; /**< unpacked data frame */
|
||||||
|
|
||||||
|
@ -718,12 +719,12 @@ static int qcelp_decode_frame(AVCodecContext *avctx, void *data,
|
||||||
qcelp_unpacking_bitmaps_lengths[q->bitrate];
|
qcelp_unpacking_bitmaps_lengths[q->bitrate];
|
||||||
uint8_t *unpacked_data = (uint8_t *)&q->frame;
|
uint8_t *unpacked_data = (uint8_t *)&q->frame;
|
||||||
|
|
||||||
init_get_bits(&q->gb, buf, 8 * buf_size);
|
bitstream_init(&q->bc, buf, 8 * buf_size);
|
||||||
|
|
||||||
memset(&q->frame, 0, sizeof(QCELPFrame));
|
memset(&q->frame, 0, sizeof(QCELPFrame));
|
||||||
|
|
||||||
for (; bitmaps < bitmaps_end; bitmaps++)
|
for (; bitmaps < bitmaps_end; bitmaps++)
|
||||||
unpacked_data[bitmaps->index] |= get_bits(&q->gb, bitmaps->bitlen) << bitmaps->bitpos;
|
unpacked_data[bitmaps->index] |= bitstream_read(&q->bc, bitmaps->bitlen) << bitmaps->bitpos;
|
||||||
|
|
||||||
// Check for erasures/blanks on rates 1, 1/4 and 1/8.
|
// Check for erasures/blanks on rates 1, 1/4 and 1/8.
|
||||||
if (q->frame.reserved) {
|
if (q->frame.reserved) {
|
||||||
|
|
Loading…
Reference in New Issue