diff options
author | stefano <stefano@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-17 23:00:01 +0000 |
---|---|---|
committer | stefano <stefano@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-17 23:00:01 +0000 |
commit | 3c54865aeab03d40ed311818a1dcf212171dd176 (patch) | |
tree | 27464973290a7a159fb9b463cd1e078fff772429 | |
parent | 1a8479b95e38e0db089c3eadee419c61562ad19c (diff) | |
download | mpv-3c54865aeab03d40ed311818a1dcf212171dd176.tar.bz2 mpv-3c54865aeab03d40ed311818a1dcf212171dd176.tar.xz |
Make the pal2rgbWrapper set and use the converter in pal2rgbWrapper
only if the input format is paletted.
Fix potential crashes/weirdness if the input format is non-paletted.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30358 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libswscale/swscale.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 6896d504ee..0623d5dc99 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -2035,7 +2035,7 @@ static int pal2rgbWrapper(SwsContext *c, const uint8_t* src[], int srcStride[], if (!usePal(srcFormat)) av_log(c, AV_LOG_ERROR, "internal error %s -> %s converter\n", sws_format_name(srcFormat), sws_format_name(dstFormat)); - + else { switch(dstFormat) { case PIX_FMT_RGB32 : conv = palette8topacked32; break; case PIX_FMT_BGR32 : conv = palette8topacked32; break; @@ -2046,8 +2046,9 @@ static int pal2rgbWrapper(SwsContext *c, const uint8_t* src[], int srcStride[], default: av_log(c, AV_LOG_ERROR, "internal error %s -> %s converter\n", sws_format_name(srcFormat), sws_format_name(dstFormat)); break; } + } - + if (conv) for (i=0; i<srcSliceH; i++) { conv(srcPtr, dstPtr, c->srcW, (uint8_t *) c->pal_rgb); srcPtr+= srcStride[0]; |