int number, len;
ptr += strcspn(ptr, "#");
- if (sscanf(ptr, "#define %256s %u", name, &number) != 2)
+ if (sscanf(ptr, "#define %256s %u", name, &number) != 2) {
+ av_log(avctx, AV_LOG_ERROR, "Unexpected preprocessor directive\n");
return AVERROR_INVALIDDATA;
+ }
len = strlen(name);
if ((len > 6) && !avctx->height && !memcmp(name + len - 7, "_height", 7)) {
} else if ((len > 5) && !avctx->width && !memcmp(name + len - 6, "_width", 6)) {
avctx->width = number;
} else {
+ av_log(avctx, AV_LOG_ERROR, "Unknown define '%s'\n", name);
return AVERROR_INVALIDDATA;
}
ptr += strcspn(ptr, "\n\r") + 1;
if ((ret = avctx->get_buffer(avctx, p)) < 0)
return ret;
+ // goto start of image data
+ ptr += strcspn(ptr, "{") + 1;
+
linesize = (avctx->width + 7) / 8;
for (i = 0; i < avctx->height; i++) {
dst = p->data[0] + i * p->linesize[0];
val = (val << 4) + convert(*ptr);
*dst++ = av_reverse[val];
} else {
+ av_log(avctx, AV_LOG_ERROR, "Unexpected data at '%.8s'\n", ptr);
return AVERROR_INVALIDDATA;
}
}