OSDN Git Service

Make the pal2rgbWrapper set and use the converter in pal2rgbWrapper
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Sun, 17 Jan 2010 23:00:01 +0000 (23:00 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Sun, 17 Jan 2010 23:00:01 +0000 (23:00 +0000)
only if the input format is paletted.

Fix potential crashes/weirdness if the input format is non-paletted.

Originally committed as revision 30358 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale

libswscale/swscale.c

index 6896d50..0623d5d 100644 (file)
@@ -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];