summaryrefslogtreecommitdiff
path: root/libavcodec/pnm_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/pnm_parser.c')
-rw-r--r--libavcodec/pnm_parser.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/pnm_parser.c b/libavcodec/pnm_parser.c
index 309bc76a24..6607ac7e7f 100644
--- a/libavcodec/pnm_parser.c
+++ b/libavcodec/pnm_parser.c
@@ -111,6 +111,8 @@ retry:
} else {
int ret = av_image_get_buffer_size(avctx->pix_fmt, avctx->width, avctx->height, 1);
next = pnmctx.bytestream - pnmctx.bytestream_start + skip;
+ if (ret > 0 && pnmctx.half)
+ ret >>= 1;
if (ret >= 0 && next + (uint64_t)ret <= INT_MAX)
next += ret;
}
@@ -133,7 +135,8 @@ end:
const AVCodecParser ff_pnm_parser = {
.codec_ids = { AV_CODEC_ID_PGM, AV_CODEC_ID_PGMYUV, AV_CODEC_ID_PPM,
- AV_CODEC_ID_PBM, AV_CODEC_ID_PAM, AV_CODEC_ID_PFM },
+ AV_CODEC_ID_PBM, AV_CODEC_ID_PAM, AV_CODEC_ID_PFM,
+ AV_CODEC_ID_PHM },
.priv_data_size = sizeof(PNMParseContext),
.parser_parse = pnm_parse,
.parser_close = ff_parse_close,