summaryrefslogtreecommitdiffstats
path: root/libswscale
diff options
context:
space:
mode:
authorstefano <stefano@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-17 23:00:01 +0000
committerstefano <stefano@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-17 23:00:01 +0000
commit3c54865aeab03d40ed311818a1dcf212171dd176 (patch)
tree27464973290a7a159fb9b463cd1e078fff772429 /libswscale
parent1a8479b95e38e0db089c3eadee419c61562ad19c (diff)
downloadmpv-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
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/swscale.c5
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];