43 void *
data,
int *got_frame,
47 int buf_size = avpkt->
size;
49 const uint8_t *buf_end, *buf_ptr;
51 uint32_t dqt_offs, dht_offs, sof_offs, sos_offs, second_field_offs;
52 uint32_t field_size, sod_offs;
56 buf_end = buf + buf_size;
65 if (buf_end - buf_ptr >= 1 << 28)
81 second_field_offs =
read_offs(avctx, &hgb, buf_end - buf_ptr,
"second_field_offs is %d and size is %d\n");
85 dqt_offs =
read_offs(avctx, &hgb, buf_end - buf_ptr,
"dqt is %d and size is %d\n");
89 init_get_bits(&s->
gb, buf_ptr+dqt_offs, (buf_end - (buf_ptr+dqt_offs))*8);
96 dht_offs =
read_offs(avctx, &hgb, buf_end - buf_ptr,
"dht is %d and size is %d\n");
100 init_get_bits(&s->
gb, buf_ptr+dht_offs, (buf_end - (buf_ptr+dht_offs))*8);
105 sof_offs =
read_offs(avctx, &hgb, buf_end - buf_ptr,
"sof is %d and size is %d\n");
109 init_get_bits(&s->
gb, buf_ptr+sof_offs, (buf_end - (buf_ptr+sof_offs))*8);
115 sos_offs =
read_offs(avctx, &hgb, buf_end - buf_ptr,
"sos is %d and size is %d\n");
117 sod_offs =
read_offs(avctx, &hgb, buf_end - buf_ptr,
"sof is %d and size is %d\n");
122 8 *
FFMIN(field_size, buf_end - buf_ptr - sos_offs));
135 buf_ptr = buf + second_field_offs;