Reading it from any other position would result in a wrong size being
read, instead fallback to the re-sync mechanic in the else clause.
int extract_length = 0;
int skip_trailing_zeros = 1;
int extract_length = 0;
int skip_trailing_zeros = 1;
int i;
for (i = 0; i < nal_length_size; i++)
extract_length = (extract_length << 8) | buf[i];
int i;
for (i = 0; i < nal_length_size; i++)
extract_length = (extract_length << 8) | buf[i];
}
next_avc = buf + extract_length;
} else {
}
next_avc = buf + extract_length;
} else {
+ if (buf > next_avc)
+ av_log(logctx, AV_LOG_WARNING, "Exceeded next NALFF position, re-syncing.\n");
+
/* search start code */
while (buf[0] != 0 || buf[1] != 0 || buf[2] != 1) {
++buf;
/* search start code */
while (buf[0] != 0 || buf[1] != 0 || buf[2] != 1) {
++buf;