|
|
|
@@ -1330,43 +1330,6 @@ int ff_set_ref_count(H264Context *h) |
|
|
|
|
|
|
|
static const uint8_t start_code[] = { 0x00, 0x00, 0x01 }; |
|
|
|
|
|
|
|
static int find_start_code(const uint8_t *buf, int buf_size, |
|
|
|
int buf_index, int next_avc) |
|
|
|
{ |
|
|
|
// start code prefix search |
|
|
|
for (; buf_index + 3 < next_avc; buf_index++) |
|
|
|
// This should always succeed in the first iteration. |
|
|
|
if (buf[buf_index] == 0 && |
|
|
|
buf[buf_index + 1] == 0 && |
|
|
|
buf[buf_index + 2] == 1) |
|
|
|
break; |
|
|
|
|
|
|
|
buf_index += 3; |
|
|
|
|
|
|
|
if (buf_index >= buf_size) |
|
|
|
return buf_size; |
|
|
|
|
|
|
|
return buf_index; |
|
|
|
} |
|
|
|
|
|
|
|
static int get_avc_nalsize(H264Context *h, const uint8_t *buf, |
|
|
|
int buf_size, int *buf_index) |
|
|
|
{ |
|
|
|
int i, nalsize = 0; |
|
|
|
|
|
|
|
if (*buf_index >= buf_size - h->nal_length_size) |
|
|
|
return -1; |
|
|
|
|
|
|
|
for (i = 0; i < h->nal_length_size; i++) |
|
|
|
nalsize = (nalsize << 8) | buf[(*buf_index)++]; |
|
|
|
if (nalsize <= 0 || nalsize > buf_size - *buf_index) { |
|
|
|
av_log(h->avctx, AV_LOG_ERROR, |
|
|
|
"AVC: nal size %d\n", nalsize); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
return nalsize; |
|
|
|
} |
|
|
|
|
|
|
|
static int get_bit_length(H264Context *h, const uint8_t *buf, |
|
|
|
const uint8_t *ptr, int dst_length, |
|
|
|
int i, int next_avc) |
|
|
|
|