diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-02-23 19:25:46 +0100 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2013-02-23 22:18:38 +0100 |
commit | 1f9073f41be1776aca2382357ca2ad7b3bb934db (patch) | |
tree | 1d49370b4a7f28b158b653f5f931789b5e6e2151 /libavfilter/libmpcodecs/mp_image.c | |
parent | 5bed920971c555da67965918f440e516294cd44d (diff) | |
download | ffmpeg-1f9073f41be1776aca2382357ca2ad7b3bb934db.tar.gz |
vf_mp: Set pseudo pal
Fixes ticket2140
Fixes null pointer dereference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 73fce258b774d0480f2d2dd7ec81fa1ec1b27812)
Diffstat (limited to 'libavfilter/libmpcodecs/mp_image.c')
-rw-r--r-- | libavfilter/libmpcodecs/mp_image.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libavfilter/libmpcodecs/mp_image.c b/libavfilter/libmpcodecs/mp_image.c index 1ef5cbd55b..dbc1d62eb7 100644 --- a/libavfilter/libmpcodecs/mp_image.c +++ b/libavfilter/libmpcodecs/mp_image.c @@ -31,8 +31,13 @@ #include "libvo/fastmemcpy.h" //#include "libavutil/mem.h" +#include "libavutil/imgutils.h" void ff_mp_image_alloc_planes(mp_image_t *mpi) { + uint32_t temp[256]; + if (avpriv_set_systematic_pal2(temp, ff_mp2ff_pix_fmt(mpi->imgfmt)) >= 0) + mpi->flags |= MP_IMGFLAG_RGB_PALETTE; + // IF09 - allocate space for 4. plane delta info - unused if (mpi->imgfmt == IMGFMT_IF09) { mpi->planes[0]=av_malloc(mpi->bpp*mpi->width*(mpi->height+2)/8+ @@ -65,8 +70,10 @@ void ff_mp_image_alloc_planes(mp_image_t *mpi) { } } else { mpi->stride[0]=mpi->width*mpi->bpp/8; - if (mpi->flags & MP_IMGFLAG_RGB_PALETTE) + if (mpi->flags & MP_IMGFLAG_RGB_PALETTE) { mpi->planes[1] = av_malloc(1024); + memcpy(mpi->planes[1], temp, 1024); + } } mpi->flags|=MP_IMGFLAG_ALLOCATED; } |