Fixes: libavcodec/ffv1dec.c:453:43: runtime error: applying zero offset to null pointer Signed-off-by: James Almer <jamr...@gmail.com> --- libavcodec/ffv1dec.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c index d613aa5395..cf5ca1bae3 100644 --- a/libavcodec/ffv1dec.c +++ b/libavcodec/ffv1dec.c @@ -442,16 +442,20 @@ static int decode_slice(AVCodecContext *c, void *arg) decode_plane(f, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] , width, height, p->linesize[0], 0, 0, 2, ac); decode_plane(f, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] + (ps>>1), width, height, p->linesize[0], 1, 1, 2, ac); } else if (f->use32bit) { - uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0], - p->data[1] + ps * x + y * p->linesize[1], - p->data[2] + ps * x + y * p->linesize[2] }; + uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0] }; + if (f->chroma_planes) { + planes[1] = p->data[1] + ps * x + y * p->linesize[1]; + planes[2] = p->data[2] + ps * x + y * p->linesize[2]; + } if (f->transparency) planes[3] = p->data[3] + ps * x + y * p->linesize[3]; decode_rgb_frame32(f, sc, &gb, planes, width, height, p->linesize); } else { - uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0], - p->data[1] + ps * x + y * p->linesize[1], - p->data[2] + ps * x + y * p->linesize[2] }; + uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0] }; + if (f->chroma_planes) { + planes[1] = p->data[1] + ps * x + y * p->linesize[1]; + planes[2] = p->data[2] + ps * x + y * p->linesize[2]; + } if (f->transparency) planes[3] = p->data[3] + ps * x + y * p->linesize[3]; decode_rgb_frame(f, sc, &gb, planes, width, height, p->linesize); -- 2.50.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".