[FFmpeg-cvslog] avcodec/xbmdec: remove dependancy on zero padding on input packet

Michael Niedermayer git at videolan.org
Sun Jun 15 04:28:04 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Jun 15 03:38:50 2014 +0200| [73d820ee1eb0ab5b7d4b75d8f14a31ae9c3c11db] | committer: Michael Niedermayer

avcodec/xbmdec: remove dependancy on zero padding on input packet

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/xbmdec.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/libavcodec/xbmdec.c b/libavcodec/xbmdec.c
index e03ff31..143e3a2 100644
--- a/libavcodec/xbmdec.c
+++ b/libavcodec/xbmdec.c
@@ -82,10 +82,10 @@ static int xbm_decode_frame(AVCodecContext *avctx, void *data,
         return ret;
 
     // goto start of image data
-    next = ptr + strcspn(ptr, "{");
-    if (!*next)
-        next = ptr + strcspn(ptr, "(");
-    if (!*next)
+    next = memchr(ptr, '{', avpkt->size);
+    if (!next)
+        next = memchr(ptr, '(', avpkt->size);
+    if (!next)
         return AVERROR_INVALIDDATA;
     ptr = next + 1;
 
@@ -95,7 +95,10 @@ static int xbm_decode_frame(AVCodecContext *avctx, void *data,
         for (j = 0; j < linesize; j++) {
             uint8_t val;
 
-            ptr += strcspn(ptr, "x$") + 1;
+            while (ptr < end && *ptr != 'x' && *ptr != '$')
+                ptr++;
+
+            ptr ++;
             if (ptr < end && av_isxdigit(*ptr)) {
                 val = convert(*ptr++);
                 if (av_isxdigit(*ptr))



More information about the ffmpeg-cvslog mailing list