vo_vesa: more rgb2rgb support

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2506 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
nick 2001-10-28 10:28:08 +00:00
parent d6bed371d7
commit ce1e5d842b
4 changed files with 38 additions and 1 deletions

View File

@ -582,6 +582,8 @@ init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint3
{
if(image_bpp == 24 && video_mode_info.BitsPerPixel == 32) rgb2rgb_fnc = rgb24to32;
else
if(image_bpp == 32 && video_mode_info.BitsPerPixel == 24) rgb2rgb_fnc = rgb32to24;
else
{
printf("vo_vesa: Can't convert %u to %u\n",image_bpp,video_mode_info.BitsPerPixel);
return -1;

View File

@ -2,6 +2,8 @@
#include "../config.h"
#include "rgb2rgb.h"
/* TODO: MMX optimization */
void rgb24to32(uint8_t *src,uint8_t *dst,uint32_t src_size)
{
uint32_t *dest = (uint32_t *)dst;
@ -16,3 +18,18 @@ void rgb24to32(uint8_t *src,uint8_t *dst,uint32_t src_size)
s += 3;
}
}
void rgb32to24(uint8_t *src,uint8_t *dst,uint32_t src_size)
{
uint8_t *dest = dst;
uint8_t *s = src;
uint8_t *end;
end = s + src_size;
while(s < end)
{
*dest++ = *s++;
*dest++ = *s++;
*dest++ = *s++;
s++;
}
}

View File

@ -1,6 +1,6 @@
/*
*
* rgb2rgb.h, Software RGB to RGB coverter
* rgb2rgb.h, Software RGB to RGB converter
*
*/
@ -8,5 +8,6 @@
#define RGB2RGB_INCLUDED
extern void rgb24to32(uint8_t *src,uint8_t *dst,uint32_t src_size);
extern void rgb32to24(uint8_t *src,uint8_t *dst,uint32_t src_size);
#endif

View File

@ -2,6 +2,8 @@
#include "../config.h"
#include "rgb2rgb.h"
/* TODO: MMX optimization */
void rgb24to32(uint8_t *src,uint8_t *dst,uint32_t src_size)
{
uint32_t *dest = (uint32_t *)dst;
@ -16,3 +18,18 @@ void rgb24to32(uint8_t *src,uint8_t *dst,uint32_t src_size)
s += 3;
}
}
void rgb32to24(uint8_t *src,uint8_t *dst,uint32_t src_size)
{
uint8_t *dest = dst;
uint8_t *s = src;
uint8_t *end;
end = s + src_size;
while(s < end)
{
*dest++ = *s++;
*dest++ = *s++;
*dest++ = *s++;
s++;
}
}