#define SUBSCRIPTS(subs, ...) (subs > 0 ? ((int[subs + 1]){ subs, __VA_ARGS__ }) : NULL)
#define f(width, name) \
- xf(width, name, current->name, 0)
+ xf(width, name, current->name, 0, )
#define s(width, name) \
- xs(width, name, current->name, 0)
+ xs(width, name, current->name, 0, )
#define fs(width, name, subs, ...) \
xf(width, name, current->name, subs, __VA_ARGS__)
#define ss(width, name, subs, ...) \
xs(width, name, current->name, subs, __VA_ARGS__)
-
#define READ
#define READWRITE read
#define RWContext GetBitContext
#define delta_q(name) do { \
uint8_t delta_coded; \
int8_t delta_q; \
- xf(1, name.delta_coded, delta_coded, 0); \
+ xf(1, name.delta_coded, delta_coded, 0, ); \
if (delta_coded) \
- xs(4, name.delta_q, delta_q, 0); \
+ xs(4, name.delta_q, delta_q, 0, ); \
else \
delta_q = 0; \
current->name = delta_q; \
} while (0)
#define delta_q(name) do { \
- xf(1, name.delta_coded, !!current->name, 0); \
+ xf(1, name.delta_coded, !!current->name, 0, ); \
if (current->name) \
- xs(4, name.delta_q, current->name, 0); \
+ xs(4, name.delta_q, current->name, 0, ); \
} while (0)
#define prob(name, subs, ...) do { \
uint8_t superframe_header;
int err;
+ if (frag->data_size == 0)
+ return AVERROR_INVALIDDATA;
+
// Last byte in the packet.
superframe_header = frag->data[frag->data_size - 1];
index_size = 2 + (((superframe_header & 0x18) >> 3) + 1) *
((superframe_header & 0x07) + 1);
+ if (index_size > frag->data_size)
+ return AVERROR_INVALIDDATA;
+
err = init_get_bits(&gbc, frag->data + frag->data_size - index_size,
8 * index_size);
if (err < 0)
return AVERROR_INVALIDDATA;
}
- err = ff_cbs_insert_unit_data(ctx, frag, -1, 0,
+ err = ff_cbs_insert_unit_data(frag, -1, 0,
frag->data + pos,
sfi.frame_sizes[i],
frag->data_ref);
return 0;
} else {
- err = ff_cbs_insert_unit_data(ctx, frag, -1, 0,
+ err = ff_cbs_insert_unit_data(frag, -1, 0,
frag->data, frag->data_size,
frag->data_ref);
if (err < 0)
if (err < 0)
return err;
- err = ff_cbs_alloc_unit_content(ctx, unit, sizeof(*frame),
+ err = ff_cbs_alloc_unit_content(unit, sizeof(*frame),
&cbs_vp9_free_frame);
if (err < 0)
return err;