48 for (i = 0; i < buf_size; i++) {
53 }
else if (state <= 2) {
60 }
else if (state <= 5) {
61 int nalu_type = buf[i] & 0x1F;
89 return i - (state & 5);
106 for (list = 0; list < h->
list_count; list++) {
109 for (index = 0; ; index++) {
112 if (reordering_of_pic_nums_idc < 3)
114 else if (reordering_of_pic_nums_idc > 3) {
116 "illegal reordering_of_pic_nums_idc %d\n",
117 reordering_of_pic_nums_idc);
124 "reference count %d overflow\n", index);
142 "illegal memory management control operation %d\n",
172 const uint8_t *buf,
int buf_size)
175 const uint8_t *buf_end = buf + buf_size;
177 unsigned int slice_type;
178 int state = -1, got_reset = 0;
194 int src_length, dst_length, consumed;
199 src_length = buf_end - buf;
200 switch (state & 0x1f) {
204 if ((state & 0x1f) ==
NAL_IDR_SLICE || ((state >> 5) & 0x3) == 0) {
211 if (src_length > 1000)
217 if (ptr ==
NULL || dst_length < 0)
250 "pps_id %u out of range\n", pps_id);
255 "non-existing PPS %u referenced\n", pps_id);
261 "non-existing SPS %u referenced\n", h->
pps.
sps_id);
301 field_poc[0] = field_poc[1] = INT_MAX;
374 if (field_poc[0] < field_poc[1])
376 else if (field_poc[0] > field_poc[1])
400 const uint8_t **poutbuf,
int *poutbuf_size,
401 const uint8_t *buf,
int buf_size)
456 *poutbuf_size = buf_size;
461 const uint8_t *buf,
int buf_size)
467 for (i = 0; i <= buf_size; i++) {
468 if ((state & 0xFFFFFF1F) == 0x107)
475 if ((state & 0xFFFFFF00) == 0x100 && (state & 0xFFFFFF1F) != 0x107 &&
476 (state & 0xFFFFFF1F) != 0x108 && (state & 0xFFFFFF1F) != 0x109) {
478 while (i > 4 && buf[i - 5] == 0)
484 state = (state << 8) | buf[i];
512 .parser_close =
close,