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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-06-15 03:38:50 +02:00
parent 103f9c261a
commit 73d820ee1e
1 changed files with 8 additions and 5 deletions

View File

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