diff -Naur xserver-xorg-video-siliconmotion-2.2.8/debian/changelog xserver-xorg-video-siliconmotion-2.2.8-new/debian/changelog --- xserver-xorg-video-siliconmotion-2.2.8/debian/changelog 2009-02-22 02:19:30.000000000 +0800 +++ xserver-xorg-video-siliconmotion-2.2.8-new/debian/changelog 2009-02-21 07:36:10.000000000 +0800 @@ -1,3 +1,18 @@ +xserver-xorg-video-siliconmotion (2:2.2.8-medan.r04) unstable; urgency=low + + * Fixed Xv not reporting any imaging modes. Caused all SDL overlays to + be software scaled and drawn in xshm. + + -- Derrick Sobodash Sat, 21 Feb 2009 06:49:11 +0000 + +xserver-xorg-video-siliconmotion (2:2.2.8-medan.r03) unstable; urgency=low + + * Hacked Xv to fix driver reporting RGB colorspaces as BGR. + * Forked from 2:2.2.8-lemote.r02. Next revision writes Loongson opcodes, + which GCC is not supporting. How do you compile it!? + + -- Derrick Sobodash Sat, 14 Feb 2009 06:49:11 +0000 + xserver-xorg-video-siliconmotion (2:2.2.8-lemote.r02) unstable; urgency=low * Add fast Xv packed ouput for YeeLoong notebook without lost of quality. diff -Naur xserver-xorg-video-siliconmotion-2.2.8/src/smi_video.c xserver-xorg-video-siliconmotion-2.2.8-new/src/smi_video.c --- xserver-xorg-video-siliconmotion-2.2.8/src/smi_video.c 2009-02-22 02:19:30.000000000 +0800 +++ xserver-xorg-video-siliconmotion-2.2.8-new/src/smi_video.c 2009-02-22 02:23:55.000000000 +0800 @@ -245,7 +245,7 @@ /**************************************************************************/ /* number of (generated) XV_ENCODING vaulues */ -#define N_ENCODINGS ((N_VIDEO_NORMS) * (N_COMPOSITE_CHANNELS + N_SVIDEO_CHANNELS)) +#define N_ENCODINGS (((N_VIDEO_NORMS) * (N_COMPOSITE_CHANNELS + N_SVIDEO_CHANNELS)) +1) /**************************************************************************/ @@ -310,7 +310,7 @@ XvPacked, /* format */ 1, /* num_planes */ 15, /* depth */ - 0x001F, 0x03E0, 0x7C00, /* red_mask, green, blue */ + 0x7C00, 0x03E0, 0x001F, /* red_mask, green, blue */ 0, 0, 0, /* y_sample_bits, u, v */ 0, 0, 0, /* horz_y_period, u, v */ 0, 0, 0, /* vert_y_period, u, v */ @@ -329,7 +329,7 @@ XvPacked, /* format */ 1, /* num_planes */ 16, /* depth */ - 0x001F, 0x07E0, 0xF800, /* red_mask, green, blue */ + 0xF800, 0x07E0, 0x001F, /* red_mask, green, blue */ 0, 0, 0, /* y_sample_bits, u, v */ 0, 0, 0, /* horz_y_period, u, v */ 0, 0, 0, /* vert_y_period, u, v */ @@ -348,7 +348,7 @@ XvPacked, /* format */ 1, /* num_planes */ 24, /* depth */ - 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ + 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ 0, 0, 0, /* y_sample_bits, u, v */ 0, 0, 0, /* horz_y_period, u, v */ 0, 0, 0, /* vert_y_period, u, v */ @@ -367,7 +367,7 @@ XvPacked, /* format */ 1, /* num_planes */ 24, /* depth */ - 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ + 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ 0, 0, 0, /* y_sample_bits, u, v */ 0, 0, 0, /* horz_y_period, u, v */ 0, 0, 0, /* vert_y_period, u, v */ @@ -394,7 +394,7 @@ XvPacked, /* format */ 1, /* num_planes */ 16, /* depth */ - 0x001F, 0x07E0, 0xF800, /* red_mask, green, blue */ + 0xF800, 0x07E0, 0x001F, /* red_mask, green, blue */ 0, 0, 0, /* y_sample_bits, u, v */ 0, 0, 0, /* horz_y_period, u, v */ 0, 0, 0, /* vert_y_period, u, v */ @@ -413,7 +413,7 @@ XvPacked, /* format */ 1, /* num_planes */ 24, /* depth */ - 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ + 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ 0, 0, 0, /* y_sample_bits, u, v */ 0, 0, 0, /* horz_y_period, u, v */ 0, 0, 0, /* vert_y_period, u, v */ @@ -589,6 +589,15 @@ /* fill arrays */ p->nenc = 0; + /* force XV_IMAGE at 0 */ + p->enc[0].width = 2048; + p->enc[0].height = 2048; + p->enc[0].rate.numerator = 1; + p->enc[0].rate.denominator = 1; + p->enc[0].name = xalloc(strlen("XV_IMAGE")+1); + sprintf(p->enc[0].name, "% s", "XV_IMAGE"); + + p->nenc = 1; for (ch = 0; ch < N_COMPOSITE_CHANNELS; ch++) { for (n = 0; n < N_VIDEO_NORMS; n++) { SMI_AddEncoding(p->enc, p->nenc, n, VID_COMPOSITE, ch);