diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-08-20 00:39:07 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-08-20 00:39:07 +0200 |
commit | 528171ba84b24830b74d9c19dd957ac3609f7270 (patch) | |
tree | 6f18d0ae151e12808047dc64f19293ca887db056 /libavcodec/h2645_parse.c | |
parent | f10ea03df3dd1c15e3a957ca0aba528251438a79 (diff) | |
download | ffmpeg-528171ba84b24830b74d9c19dd957ac3609f7270.tar.gz |
avcodec/h2645_parse: Use get_nalsize() in ff_h2645_packet_split()
This fixes several regressions in h.264
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/h2645_parse.c')
-rw-r--r-- | libavcodec/h2645_parse.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/libavcodec/h2645_parse.c b/libavcodec/h2645_parse.c index e92e38a722..00594371c0 100644 --- a/libavcodec/h2645_parse.c +++ b/libavcodec/h2645_parse.c @@ -260,16 +260,15 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, int skip_trailing_zeros = 1; if (buf == next_avc) { - int i; - for (i = 0; i < nal_length_size; i++) - extract_length = (extract_length << 8) | buf[i]; + int i = 0; + extract_length = get_nalsize(nal_length_size, + buf, length, &i, logctx); + if (extract_length < 0) + return extract_length; + buf += nal_length_size; length -= nal_length_size; - if (extract_length > length) { - av_log(logctx, AV_LOG_ERROR, "Invalid NAL unit size.\n"); - return AVERROR_INVALIDDATA; - } next_avc = buf + extract_length; } else { if (buf > next_avc) |