c->low = 0;
c->high = 0xFFFFFF;
c->value = bytestream2_get_be24(gB);
+ c->overread = 0;
c->gbc.gB = gB;
c->get_model_sym = arith2_get_model_sym;
c->get_number = arith2_get_number;
return 1 + ncol * 3;
}
-static int decode_555(GetByteContext *gB, uint16_t *dst, ptrdiff_t stride,
+static int decode_555(AVCodecContext *avctx, GetByteContext *gB, uint16_t *dst, ptrdiff_t stride,
int keyframe, int w, int h)
{
int last_symbol = 0, repeat = 0, prev_avail = 0;
repeat = 0;
while (b-- > 130) {
if (repeat >= (INT_MAX >> 8) - 1) {
- av_log(NULL, AV_LOG_ERROR, "repeat overflow\n");
+ av_log(avctx, AV_LOG_ERROR, "repeat overflow\n");
return AVERROR_INVALIDDATA;
}
repeat = (repeat << 8) + bytestream2_get_byte(gB) + 1;
return 0;
}
-typedef struct Rectangle {
+struct Rectangle {
int coded, x, y, w, h;
-} Rectangle;
+};
#define MAX_WMV9_RECTANGLES 20
#define ARITH2_PADDING 2
int keyframe, has_wmv9, has_mv, is_rle, is_555, ret;
- Rectangle wmv9rects[MAX_WMV9_RECTANGLES], *r;
+ struct Rectangle wmv9rects[MAX_WMV9_RECTANGLES], *r;
int used_rects = 0, i, implicit_rect = 0, av_uninit(wmv9_mask);
if ((ret = init_get_bits8(&gb, buf, buf_size)) < 0)
return AVERROR_INVALIDDATA;
}
} else {
- if ((ret = ff_reget_buffer(avctx, ctx->last_pic)) < 0)
+ if ((ret = ff_reget_buffer(avctx, ctx->last_pic, 0)) < 0)
return ret;
if ((ret = av_frame_ref(frame, ctx->last_pic)) < 0)
return ret;
if (is_555) {
bytestream2_init(&gB, buf, buf_size);
- if (decode_555(&gB, (uint16_t *)c->rgb_pic, c->rgb_stride >> 1,
+ if (decode_555(avctx, &gB, (uint16_t *)c->rgb_pic, c->rgb_stride >> 1,
keyframe, avctx->width, avctx->height))
return AVERROR_INVALIDDATA;