[FFmpeg-cvslog] avcodec/h2645_parse: Use get_nalsize() in ff_h2645_packet_split()

Michael Niedermayer git at videolan.org
Sat Aug 20 01:59:37 EEST 2016


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Sat Aug 20 00:39:07 2016 +0200| [528171ba84b24830b74d9c19dd957ac3609f7270] | committer: Michael Niedermayer

avcodec/h2645_parse: Use get_nalsize() in ff_h2645_packet_split()

This fixes several regressions in h.264

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=528171ba84b24830b74d9c19dd957ac3609f7270
---

 libavcodec/h2645_parse.c | 13 ++++++-------
 1 file 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)



More information about the ffmpeg-cvslog mailing list