summaryrefslogtreecommitdiffstats
path: root/msvidc.c
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-28 15:19:14 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-28 15:19:14 +0000
commit37e8289dd0cfb9121ba5a69d6f957ed5dd585dcf (patch)
treec8690a989ac92c4db5797519b68f0f1cd976e12e /msvidc.c
parentf152b94f984b0ae10c198890e7ee27c74246b85c (diff)
downloadmpv-37e8289dd0cfb9121ba5a69d6f957ed5dd585dcf.tar.bz2
mpv-37e8289dd0cfb9121ba5a69d6f957ed5dd585dcf.tar.xz
added 32bpp output support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3185 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'msvidc.c')
-rw-r--r--msvidc.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/msvidc.c b/msvidc.c
index 0ff8d09558..a74315de43 100644
--- a/msvidc.c
+++ b/msvidc.c
@@ -5,6 +5,8 @@
The description of the algorithm you can read here:
http://www.pcisys.net/~melanson/video1.txt
+
+ 32bpp support (c) alex
*/
#define LE_16(x) *(unsigned short *)(x)
@@ -131,12 +133,16 @@ void AVI_Decode_Video1_16(
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c1_r;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c1_g;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c1_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
else
{
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c2_r;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c2_g;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c2_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
// get the next flag ready to go
@@ -157,12 +163,16 @@ void AVI_Decode_Video1_16(
decoded[pixel_ptr++] = quad[0][0].c1_r;
decoded[pixel_ptr++] = quad[0][0].c1_g;
decoded[pixel_ptr++] = quad[0][0].c1_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
else
{
decoded[pixel_ptr++] = quad[0][0].c2_r;
decoded[pixel_ptr++] = quad[0][0].c2_g;
decoded[pixel_ptr++] = quad[0][0].c2_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
// get the next flag ready to go
@@ -186,6 +196,8 @@ void AVI_Decode_Video1_16(
decoded[pixel_ptr++] = quad[0][0].c1_r;
decoded[pixel_ptr++] = quad[0][0].c1_g;
decoded[pixel_ptr++] = quad[0][0].c1_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
pixel_ptr -= row_dec;
}
@@ -275,12 +287,16 @@ void AVI_Decode_Video1_8(
decoded[pixel_ptr++] = quad[0][0].c1_r;
decoded[pixel_ptr++] = quad[0][0].c1_g;
decoded[pixel_ptr++] = quad[0][0].c1_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
else
{
decoded[pixel_ptr++] = quad[0][0].c2_r;
decoded[pixel_ptr++] = quad[0][0].c2_g;
decoded[pixel_ptr++] = quad[0][0].c2_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
// get the next flag ready to go
@@ -319,12 +335,16 @@ void AVI_Decode_Video1_8(
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c1_r;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c1_g;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c1_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
else
{
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c2_r;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c2_g;
decoded[pixel_ptr++] = quad[pixel_x >> 1][pixel_y >> 1].c2_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
// get the next flag ready to go
@@ -348,6 +368,8 @@ void AVI_Decode_Video1_8(
decoded[pixel_ptr++] = quad[0][0].c1_r;
decoded[pixel_ptr++] = quad[0][0].c1_g;
decoded[pixel_ptr++] = quad[0][0].c1_b;
+ if (bytes_per_pixel == 4) /* 32bpp */
+ pixel_ptr++;
}
pixel_ptr -= row_dec;
}