mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-12 01:40:04 +01:00
wnv1: Convert to the new bitstream reader
This commit is contained in:
committed by
Diego Biurrun
parent
0536e7d782
commit
f9c59f26c8
@@ -25,7 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "get_bits.h"
|
#include "bitstream.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "mathops.h"
|
#include "mathops.h"
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ typedef struct WNV1Context {
|
|||||||
AVCodecContext *avctx;
|
AVCodecContext *avctx;
|
||||||
|
|
||||||
int shift;
|
int shift;
|
||||||
GetBitContext gb;
|
BitstreamContext bc;
|
||||||
} WNV1Context;
|
} WNV1Context;
|
||||||
|
|
||||||
static const uint16_t code_tab[16][2] = {
|
static const uint16_t code_tab[16][2] = {
|
||||||
@@ -49,10 +49,10 @@ static VLC code_vlc;
|
|||||||
/* returns modified base_value */
|
/* returns modified base_value */
|
||||||
static inline int wnv1_get_code(WNV1Context *w, int base_value)
|
static inline int wnv1_get_code(WNV1Context *w, int base_value)
|
||||||
{
|
{
|
||||||
int v = get_vlc2(&w->gb, code_vlc.table, CODE_VLC_BITS, 1);
|
int v = bitstream_read_vlc(&w->bc, code_vlc.table, CODE_VLC_BITS, 1);
|
||||||
|
|
||||||
if (v == 15)
|
if (v == 15)
|
||||||
return ff_reverse[get_bits(&w->gb, 8 - w->shift)];
|
return ff_reverse[bitstream_read(&w->bc, 8 - w->shift)];
|
||||||
else
|
else
|
||||||
return base_value + ((v - 7) << w->shift);
|
return base_value + ((v - 7) << w->shift);
|
||||||
}
|
}
|
||||||
@@ -90,7 +90,7 @@ static int decode_frame(AVCodecContext *avctx,
|
|||||||
|
|
||||||
for (i = 8; i < buf_size; i++)
|
for (i = 8; i < buf_size; i++)
|
||||||
rbuf[i] = ff_reverse[buf[i]];
|
rbuf[i] = ff_reverse[buf[i]];
|
||||||
init_get_bits(&l->gb, rbuf + 8, (buf_size - 8) * 8);
|
bitstream_init(&l->bc, rbuf + 8, (buf_size - 8) * 8);
|
||||||
|
|
||||||
if (buf[2] >> 4 == 6)
|
if (buf[2] >> 4 == 6)
|
||||||
l->shift = 2;
|
l->shift = 2;
|
||||||
|
|||||||
Reference in New Issue
Block a user