Commit dae9b0b9 authored by Alexandra Hájková's avatar Alexandra Hájková Committed by Anton Khirnov

avs: Convert to the new bitstream reader

Signed-off-by: 's avatarAnton Khirnov <anton@khirnov.net>
parent edd4c19a
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
*/ */
#include "avcodec.h" #include "avcodec.h"
#include "get_bits.h" #include "bitstream.h"
#include "internal.h" #include "internal.h"
typedef struct AvsContext { typedef struct AvsContext {
...@@ -57,7 +57,7 @@ avs_decode_frame(AVCodecContext * avctx, ...@@ -57,7 +57,7 @@ avs_decode_frame(AVCodecContext * avctx,
int i, j, x, y, stride, ret, vect_w = 3, vect_h = 3; int i, j, x, y, stride, ret, vect_w = 3, vect_h = 3;
AvsVideoSubType sub_type; AvsVideoSubType sub_type;
AvsBlockType type; AvsBlockType type;
GetBitContext change_map; BitstreamContext change_map;
if ((ret = ff_reget_buffer(avctx, p)) < 0) { if ((ret = ff_reget_buffer(avctx, p)) < 0) {
av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n"); av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
...@@ -125,13 +125,13 @@ avs_decode_frame(AVCodecContext * avctx, ...@@ -125,13 +125,13 @@ avs_decode_frame(AVCodecContext * avctx,
int map_size = ((318 / vect_w + 7) / 8) * (198 / vect_h); int map_size = ((318 / vect_w + 7) / 8) * (198 / vect_h);
if (buf_end - table < map_size) if (buf_end - table < map_size)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
init_get_bits(&change_map, table, map_size * 8); bitstream_init(&change_map, table, map_size * 8);
table += map_size; table += map_size;
} }
for (y=0; y<198; y+=vect_h) { for (y=0; y<198; y+=vect_h) {
for (x=0; x<318; x+=vect_w) { for (x=0; x<318; x+=vect_w) {
if (sub_type == AVS_I_FRAME || get_bits1(&change_map)) { if (sub_type == AVS_I_FRAME || bitstream_read_bit(&change_map)) {
if (buf_end - table < 1) if (buf_end - table < 1)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
vect = &buf[*table++ * (vect_w * vect_h)]; vect = &buf[*table++ * (vect_w * vect_h)];
...@@ -145,7 +145,7 @@ avs_decode_frame(AVCodecContext * avctx, ...@@ -145,7 +145,7 @@ avs_decode_frame(AVCodecContext * avctx,
} }
} }
if (sub_type != AVS_I_FRAME) if (sub_type != AVS_I_FRAME)
align_get_bits(&change_map); bitstream_align(&change_map);
} }
if ((ret = av_frame_ref(picture, p)) < 0) if ((ret = av_frame_ref(picture, p)) < 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment