Support decoding of targa files with 32bit palette.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 8 Oct 2012 23:58:48 +0000 (01:58 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 8 Oct 2012 23:58:48 +0000 (01:58 +0200)
libavcodec/targa.c

index e0c1936..8cef685 100644 (file)
@@ -181,6 +181,7 @@ static int decode_frame(AVCodecContext *avctx,
             return -1;
         }
         switch (csize) {
+        case 32: pal_sample_size = 4; break;
         case 24: pal_sample_size = 3; break;
         case 16:
         case 15: pal_sample_size = 2; break;
@@ -201,6 +202,10 @@ static int decode_frame(AVCodecContext *avctx,
                 return AVERROR_INVALIDDATA;
             }
             switch (pal_sample_size) {
+            case 4:
+                for (t = 0; t < colors; t++)
+                    *pal++ = bytestream2_get_le32u(&s->gb);
+                break;
             case 3:
                 /* RGB24 */
                 for (t = 0; t < colors; t++)