summaryrefslogtreecommitdiffstats
path: root/libavcodec/h2645_parse.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2016-08-20 00:39:07 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2016-08-20 00:39:07 +0200
commit528171ba84b24830b74d9c19dd957ac3609f7270 (patch)
tree6f18d0ae151e12808047dc64f19293ca887db056 /libavcodec/h2645_parse.c
parentf10ea03df3dd1c15e3a957ca0aba528251438a79 (diff)
downloadffmpeg-streaming-528171ba84b24830b74d9c19dd957ac3609f7270.zip
ffmpeg-streaming-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.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/libavcodec/h2645_parse.c b/libavcodec/h2645_parse.c
index e92e38a..0059437 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)
OpenPOWER on IntegriCloud