[FFmpeg-cvslog] avcodec/qtrleenc: Check that width is a multiple of 4 for grayscale

Michael Niedermayer git at videolan.org
Wed Jun 11 04:13:14 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Jun 11 04:02:53 2014 +0200| [c69defd4d014e27cbcf207fe6facaebb02ba1285] | committer: Michael Niedermayer

avcodec/qtrleenc: Check that width is a multiple of 4 for grayscale

grayscale is coded as 4 pixels at a time, the encoder lacks support
for the case where width%4 != 0, and will simply encode less data
leaving random data after decoding at the right side

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

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

 libavcodec/qtrleenc.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/qtrleenc.c b/libavcodec/qtrleenc.c
index 8750e30..d723188 100644
--- a/libavcodec/qtrleenc.c
+++ b/libavcodec/qtrleenc.c
@@ -86,6 +86,10 @@ static av_cold int qtrle_encode_init(AVCodecContext *avctx)
 
     switch (avctx->pix_fmt) {
     case AV_PIX_FMT_GRAY8:
+        if (avctx->width % 4) {
+            av_log(avctx, AV_LOG_ERROR, "Width not being a multiple of 4 is not supported\n");
+            return AVERROR(EINVAL);
+        }
         s->logical_width = avctx->width / 4;
         s->pixel_size = 4;
         break;



More information about the ffmpeg-cvslog mailing list