#include <stdio.h>#include <stdlib.h>#include <string.h>#include <inttypes.h>#include <assert.h>#include "config.h"#include "libswscale/rgb2rgb.h"#include "libswscale/swscale.h"#include "libswscale/swscale_internal.h"#include "libavutil/cpu.h"#include "libavutil/pixdesc.h"#include "yuv2rgb_altivec.h"Go to the source code of this file.
| Defines | |
| #define | vec_merge3(x2, x1, x0, y0, y1, y2) | 
| #define | vec_mstbgr24(x0, x1, x2, ptr) | 
| #define | vec_mstrgb24(x0, x1, x2, ptr) | 
| #define | vec_mstrgb32(T, x0, x1, x2, x3, ptr) | 
| #define | vec_unh(x) | 
| #define | vec_unl(x) | 
| #define | vec_clip_s16(x) | 
| #define | vec_packclp(x, y) | 
| #define | DEFCSP420_CVT(name, out_pixels) | 
| #define | out_abgr(a, b, c, ptr) vec_mstrgb32(__typeof__(a),((__typeof__ (a)){255}),c,b,a,ptr) | 
| #define | out_bgra(a, b, c, ptr) vec_mstrgb32(__typeof__(a),c,b,a,((__typeof__ (a)){255}),ptr) | 
| #define | out_rgba(a, b, c, ptr) vec_mstrgb32(__typeof__(a),a,b,c,((__typeof__ (a)){255}),ptr) | 
| #define | out_argb(a, b, c, ptr) vec_mstrgb32(__typeof__(a),((__typeof__ (a)){255}),a,b,c,ptr) | 
| #define | out_rgb24(a, b, c, ptr) vec_mstrgb24(a,b,c,ptr) | 
| #define | out_bgr24(a, b, c, ptr) vec_mstbgr24(a,b,c,ptr) | 
| Typedefs | |
| typedef unsigned char | ubyte | 
| typedef signed char | sbyte | 
| Functions | |
| static void | cvtyuvtoRGB (SwsContext *c, vector signed short Y, vector signed short U, vector signed short V, vector signed short *R, vector signed short *G, vector signed short *B) | 
| static int | altivec_uyvy_rgb32 (SwsContext *c, const unsigned char **in, int *instrides, int srcSliceY, int srcSliceH, unsigned char **oplanes, int *outstrides) | 
| SwsFunc | ff_yuv2rgb_init_altivec (SwsContext *c) | 
| void | ff_yuv2rgb_init_tables_altivec (SwsContext *c, const int inv_table[4], int brightness, int contrast, int saturation) | 
| void | ff_yuv2packedX_altivec (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int dstY) | 
| Variables | |
| static const vector unsigned char | perm_rgb_0 | 
| static const vector unsigned char | perm_rgb_1 | 
| static const vector unsigned char | perm_rgb_2 | 
| static const vector unsigned char | perm_rgb_3 | 
| static const vector unsigned char | demux_u | 
| static const vector unsigned char | demux_v | 
| static const vector unsigned char | demux_y | 
| #define DEFCSP420_CVT | ( | name, | |||
| out_pixels | ) | 
Definition at line 279 of file yuv2rgb_altivec.c.
Definition at line 446 of file yuv2rgb_altivec.c.
Referenced by altivec_uyvy_rgb32(), and ff_yuv2packedX_altivec().
| #define vec_clip_s16 | ( | x | ) | 
Value:
vec_max (vec_min (x, ((vector signed short){235,235,235,235,235,235,235,235})), \ ((vector signed short){ 16, 16, 16, 16, 16, 16, 16, 16}))
Definition at line 234 of file yuv2rgb_altivec.c.
Referenced by ff_yuv2packedX_altivec().
| #define vec_merge3 | ( | x2, | |||
| x1, | |||||
| x0, | |||||
| y0, | |||||
| y1, | |||||
| y2 | ) | 
Value:
do { \ __typeof__(x0) o0,o2,o3; \ o0 = vec_mergeh (x0,x1); \ y0 = vec_perm (o0, x2, perm_rgb_0); \ o2 = vec_perm (o0, x2, perm_rgb_1); \ o3 = vec_mergel (x0,x1); \ y1 = vec_perm (o3,o2,perm_rgb_2); \ y2 = vec_perm (o3,o2,perm_rgb_3); \ } while(0)
Definition at line 155 of file yuv2rgb_altivec.c.
| #define vec_mstbgr24 | ( | x0, | |||
| x1, | |||||
| x2, | |||||
| ptr | ) | 
Value:
do { \ __typeof__(x0) _0,_1,_2; \ vec_merge3 (x0,x1,x2,_0,_1,_2); \ vec_st (_0, 0, ptr++); \ vec_st (_1, 0, ptr++); \ vec_st (_2, 0, ptr++); \ } while (0)
Definition at line 166 of file yuv2rgb_altivec.c.
| #define vec_mstrgb24 | ( | x0, | |||
| x1, | |||||
| x2, | |||||
| ptr | ) | 
Value:
do { \ __typeof__(x0) _0,_1,_2; \ vec_merge3 (x2,x1,x0,_0,_1,_2); \ vec_st (_0, 0, ptr++); \ vec_st (_1, 0, ptr++); \ vec_st (_2, 0, ptr++); \ } while (0)
Definition at line 175 of file yuv2rgb_altivec.c.
| #define vec_mstrgb32 | ( | T, | |||
| x0, | |||||
| x1, | |||||
| x2, | |||||
| x3, | |||||
| ptr | ) | 
Value:
do { \ T _0,_1,_2,_3; \ _0 = vec_mergeh (x0,x1); \ _1 = vec_mergeh (x2,x3); \ _2 = (T)vec_mergeh ((vector unsigned short)_0,(vector unsigned short)_1); \ _3 = (T)vec_mergel ((vector unsigned short)_0,(vector unsigned short)_1); \ vec_st (_2, 0*16, (T *)ptr); \ vec_st (_3, 1*16, (T *)ptr); \ _0 = vec_mergel (x0,x1); \ _1 = vec_mergel (x2,x3); \ _2 = (T)vec_mergeh ((vector unsigned short)_0,(vector unsigned short)_1); \ _3 = (T)vec_mergel ((vector unsigned short)_0,(vector unsigned short)_1); \ vec_st (_2, 2*16, (T *)ptr); \ vec_st (_3, 3*16, (T *)ptr); \ ptr += 4; \ } while (0)
Definition at line 188 of file yuv2rgb_altivec.c.
| #define vec_packclp | ( | x, | |||
| y | ) | 
Value:
(vector unsigned char)vec_packs \ ((vector unsigned short)vec_max (x,((vector signed short) {0})), \ (vector unsigned short)vec_max (y,((vector signed short) {0})))
Definition at line 238 of file yuv2rgb_altivec.c.
Referenced by altivec_uyvy_rgb32(), and ff_yuv2packedX_altivec().
| #define vec_unh | ( | x | ) | 
Value:
(vector signed short) \ vec_perm(x,(__typeof__(x)){0}, \ ((vector unsigned char){0x10,0x00,0x10,0x01,0x10,0x02,0x10,0x03,\ 0x10,0x04,0x10,0x05,0x10,0x06,0x10,0x07}))
Definition at line 223 of file yuv2rgb_altivec.c.
| #define vec_unl | ( | x | ) | 
Value:
(vector signed short) \ vec_perm(x,(__typeof__(x)){0}, \ ((vector unsigned char){0x10,0x08,0x10,0x09,0x10,0x0A,0x10,0x0B,\ 0x10,0x0C,0x10,0x0D,0x10,0x0E,0x10,0x0F}))
Definition at line 228 of file yuv2rgb_altivec.c.
| typedef signed char sbyte | 
Definition at line 105 of file yuv2rgb_altivec.c.
| typedef unsigned char ubyte | 
Definition at line 104 of file yuv2rgb_altivec.c.
| static int altivec_uyvy_rgb32 | ( | SwsContext * | c, | |
| const unsigned char ** | in, | |||
| int * | instrides, | |||
| int | srcSliceY, | |||
| int | srcSliceH, | |||
| unsigned char ** | oplanes, | |||
| int * | outstrides | |||
| ) |  [static] | 
| static void cvtyuvtoRGB | ( | SwsContext * | c, | |
| vector signed short | Y, | |||
| vector signed short | U, | |||
| vector signed short | V, | |||
| vector signed short * | R, | |||
| vector signed short * | G, | |||
| vector signed short * | B | |||
| ) |  [inline, static] | 
Definition at line 246 of file yuv2rgb_altivec.c.
Referenced by altivec_uyvy_rgb32(), and ff_yuv2packedX_altivec().
| void ff_yuv2packedX_altivec | ( | SwsContext * | c, | |
| const int16_t * | lumFilter, | |||
| const int16_t ** | lumSrc, | |||
| int | lumFilterSize, | |||
| const int16_t * | chrFilter, | |||
| const int16_t ** | chrUSrc, | |||
| const int16_t ** | chrVSrc, | |||
| int | chrFilterSize, | |||
| const int16_t ** | alpSrc, | |||
| uint8_t * | dest, | |||
| int | dstW, | |||
| int | dstY | |||
| ) | 
| SwsFunc ff_yuv2rgb_init_altivec | ( | SwsContext * | c | ) | 
| void ff_yuv2rgb_init_tables_altivec | ( | SwsContext * | c, | |
| const int | inv_table[4], | |||
| int | brightness, | |||
| int | contrast, | |||
| int | saturation | |||
| ) | 
| const vector unsigned char demux_u  [static] | 
Initial value:
 {0x10,0x00,0x10,0x00,
               0x10,0x04,0x10,0x04,
               0x10,0x08,0x10,0x08,
               0x10,0x0c,0x10,0x0c}
Definition at line 463 of file yuv2rgb_altivec.c.
Referenced by altivec_uyvy_rgb32().
| const vector unsigned char demux_v  [static] | 
Initial value:
 {0x10,0x02,0x10,0x02,
               0x10,0x06,0x10,0x06,
               0x10,0x0A,0x10,0x0A,
               0x10,0x0E,0x10,0x0E}
Definition at line 467 of file yuv2rgb_altivec.c.
Referenced by altivec_uyvy_rgb32().
| const vector unsigned char demux_y  [static] | 
Initial value:
 {0x10,0x01,0x10,0x03,
               0x10,0x05,0x10,0x07,
               0x10,0x09,0x10,0x0B,
               0x10,0x0D,0x10,0x0F}
Definition at line 471 of file yuv2rgb_altivec.c.
Referenced by altivec_uyvy_rgb32().
| const vector unsigned char perm_rgb_0  [static] | 
Initial value:
 {0x00,0x01,0x10,0x02,0x03,0x11,0x04,0x05,
                0x12,0x06,0x07,0x13,0x08,0x09,0x14,0x0a}
Definition at line 146 of file yuv2rgb_altivec.c.
| const vector unsigned char perm_rgb_1  [static] | 
Initial value:
 {0x0b,0x15,0x0c,0x0d,0x16,0x0e,0x0f,0x17,
                0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f}
Definition at line 148 of file yuv2rgb_altivec.c.
| const vector unsigned char perm_rgb_2  [static] | 
Initial value:
 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
                0x00,0x01,0x18,0x02,0x03,0x19,0x04,0x05}
Definition at line 150 of file yuv2rgb_altivec.c.
| const vector unsigned char perm_rgb_3  [static] | 
Initial value:
 {0x1a,0x06,0x07,0x1b,0x08,0x09,0x1c,0x0a,
                0x0b,0x1d,0x0c,0x0d,0x1e,0x0e,0x0f,0x1f}
Definition at line 152 of file yuv2rgb_altivec.c.
 1.5.8
 1.5.8