Mercurial > mplayer.hg
comparison postproc/rgb2rgb.c @ 7159:1df24fd752d0
added missing palette8tobgr pairs (hope it's correct)
author | alex |
---|---|
date | Fri, 30 Aug 2002 11:17:15 +0000 |
parents | 49eac73d0e07 |
children | d5bd28edf486 |
comparison
equal
deleted
inserted
replaced
7158:90ff4ef3ca9e | 7159:1df24fd752d0 |
---|---|
10 #include <inttypes.h> | 10 #include <inttypes.h> |
11 #include "../config.h" | 11 #include "../config.h" |
12 #include "rgb2rgb.h" | 12 #include "rgb2rgb.h" |
13 #include "../cpudetect.h" | 13 #include "../cpudetect.h" |
14 #include "../mangle.h" | 14 #include "../mangle.h" |
15 #include "../bswap.h" | |
15 | 16 |
16 #ifdef ARCH_X86 | 17 #ifdef ARCH_X86 |
17 #define CAN_COMPILE_X86_ASM | 18 #define CAN_COMPILE_X86_ASM |
18 #endif | 19 #endif |
19 | 20 |
266 unsigned i; | 267 unsigned i; |
267 for(i=0; i<num_pixels; i++) | 268 for(i=0; i<num_pixels; i++) |
268 ((unsigned *)dst)[i] = ((unsigned *)palette)[ src[i] ]; | 269 ((unsigned *)dst)[i] = ((unsigned *)palette)[ src[i] ]; |
269 } | 270 } |
270 | 271 |
272 #if 0 | |
273 void palette8tobgr32(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) | |
274 { | |
275 unsigned i; | |
276 for(i=0; i<num_pixels; i++) | |
277 { | |
278 //FIXME slow? | |
279 dst[0]= palette[ src[i]*4+3 ]; | |
280 dst[1]= palette[ src[i]*4+2 ]; | |
281 dst[2]= palette[ src[i]*4+1 ]; | |
282 dst[3]= palette[ src[i]*4+0 ]; | |
283 dst+= 4; | |
284 } | |
285 } | |
286 #else | |
287 void palette8tobgr32(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) | |
288 { | |
289 unsigned i; | |
290 for(i=0; i<num_pixels; i++) | |
291 ((unsigned *)dst)[i] = bswap_32(((unsigned *)palette)[ src[i] ]); | |
292 } | |
293 #endif | |
294 | |
271 /** | 295 /** |
272 * Pallete is assumed to contain bgr32 | 296 * Pallete is assumed to contain bgr32 |
273 */ | 297 */ |
274 void palette8torgb24(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) | 298 void palette8torgb24(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) |
275 { | 299 { |
287 dst[2]= palette[ src[i]*4+2 ]; | 311 dst[2]= palette[ src[i]*4+2 ]; |
288 dst+= 3; | 312 dst+= 3; |
289 } | 313 } |
290 } | 314 } |
291 | 315 |
316 void palette8tobgr24(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) | |
317 { | |
318 unsigned i; | |
319 /* | |
320 writes 1 byte o much and might cause alignment issues on some architectures? | |
321 for(i=0; i<num_pixels; i++) | |
322 ((unsigned *)(&dst[i*3])) = ((unsigned *)palette)[ src[i] ]; | |
323 */ | |
324 for(i=0; i<num_pixels; i++) | |
325 { | |
326 //FIXME slow? | |
327 dst[0]= palette[ src[i]*4+3 ]; | |
328 dst[1]= palette[ src[i]*4+2 ]; | |
329 dst[2]= palette[ src[i]*4+1 ]; | |
330 dst+= 3; | |
331 } | |
332 } | |
333 | |
292 void bgr24torgb24(const uint8_t *src, uint8_t *dst, unsigned src_size) | 334 void bgr24torgb24(const uint8_t *src, uint8_t *dst, unsigned src_size) |
293 { | 335 { |
294 #ifdef CAN_COMPILE_X86_ASM | 336 #ifdef CAN_COMPILE_X86_ASM |
295 // ordered per speed fasterst first | 337 // ordered per speed fasterst first |
296 if(gCpuCaps.hasMMX2) | 338 if(gCpuCaps.hasMMX2) |
373 { | 415 { |
374 unsigned i; | 416 unsigned i; |
375 for(i=0; i<num_pixels; i++) | 417 for(i=0; i<num_pixels; i++) |
376 ((uint16_t *)dst)[i] = ((uint16_t *)palette)[ src[i] ]; | 418 ((uint16_t *)dst)[i] = ((uint16_t *)palette)[ src[i] ]; |
377 } | 419 } |
420 void palette8tobgr16(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) | |
421 { | |
422 unsigned i; | |
423 for(i=0; i<num_pixels; i++) | |
424 ((uint16_t *)dst)[i] = bswap_16(((uint16_t *)palette)[ src[i] ]); | |
425 } | |
378 | 426 |
379 /** | 427 /** |
380 * Pallete is assumed to contain bgr15, see rgb32to15 to convert the palette | 428 * Pallete is assumed to contain bgr15, see rgb32to15 to convert the palette |
381 */ | 429 */ |
382 void palette8torgb15(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) | 430 void palette8torgb15(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) |
383 { | 431 { |
384 unsigned i; | 432 unsigned i; |
385 for(i=0; i<num_pixels; i++) | 433 for(i=0; i<num_pixels; i++) |
386 ((uint16_t *)dst)[i] = ((uint16_t *)palette)[ src[i] ]; | 434 ((uint16_t *)dst)[i] = ((uint16_t *)palette)[ src[i] ]; |
435 } | |
436 void palette8tobgr15(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette) | |
437 { | |
438 unsigned i; | |
439 for(i=0; i<num_pixels; i++) | |
440 ((uint16_t *)dst)[i] = bswap_16(((uint16_t *)palette)[ src[i] ]); | |
387 } | 441 } |
388 | 442 |
389 void rgb32tobgr32(const uint8_t *src, uint8_t *dst, unsigned int src_size) | 443 void rgb32tobgr32(const uint8_t *src, uint8_t *dst, unsigned int src_size) |
390 { | 444 { |
391 #ifdef CAN_COMPILE_X86_ASM | 445 #ifdef CAN_COMPILE_X86_ASM |