~ubuntu-branches/ubuntu/jaunty/xvidcap/jaunty-proposed

« back to all changes in this revision

Viewing changes to ffmpeg/libavcodec/ppc/dsputil_altivec.h

  • Committer: Bazaar Package Importer
  • Author(s): Lionel Le Folgoc, Andrew Starr-Bochicchio, Lionel Le Folgoc
  • Date: 2008-12-26 00:10:06 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20081226001006-2040ls9680bd1blt
Tags: 1.1.7-0.2ubuntu1
[ Andrew Starr-Bochicchio ]
* Merge from debian-multimedia (LP: #298547), Ubuntu Changes:
 - For ffmpeg-related build-deps, fix versionized dependencies
   as the ubuntu versioning is different than debian-multimedia's.

[ Lionel Le Folgoc ]
* LP: #311412 is fixed since the 1.1.7~rc1-0.1 revision.
* debian/patches/03_ffmpeg.diff: updated to fix FTBFS due to libswscale API
  change (cherry-pick from Gentoo #234383).

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
21
 */
22
22
 
23
 
#ifndef _DSPUTIL_ALTIVEC_
24
 
#define _DSPUTIL_ALTIVEC_
25
 
 
26
 
#include "dsputil_ppc.h"
27
 
 
28
 
#ifdef HAVE_ALTIVEC
 
23
#ifndef FFMPEG_DSPUTIL_ALTIVEC_H
 
24
#define FFMPEG_DSPUTIL_ALTIVEC_H
 
25
 
 
26
#include <stdint.h>
29
27
 
30
28
extern int has_altivec(void);
31
29
 
33
31
 
34
32
void avg_pixels16_altivec(uint8_t *block, const uint8_t *pixels, int line_size, int h);
35
33
 
36
 
// used to build registers permutation vectors (vcprm)
37
 
// the 's' are for words in the _s_econd vector
38
 
#define WORD_0 0x00,0x01,0x02,0x03
39
 
#define WORD_1 0x04,0x05,0x06,0x07
40
 
#define WORD_2 0x08,0x09,0x0a,0x0b
41
 
#define WORD_3 0x0c,0x0d,0x0e,0x0f
42
 
#define WORD_s0 0x10,0x11,0x12,0x13
43
 
#define WORD_s1 0x14,0x15,0x16,0x17
44
 
#define WORD_s2 0x18,0x19,0x1a,0x1b
45
 
#define WORD_s3 0x1c,0x1d,0x1e,0x1f
46
 
 
47
 
#ifdef CONFIG_DARWIN
48
 
#define vcprm(a,b,c,d) (const vector unsigned char)(WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d)
49
 
#else
50
 
#define vcprm(a,b,c,d) (const vector unsigned char){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d}
51
 
#endif
52
 
 
53
 
// vcprmle is used to keep the same index as in the SSE version.
54
 
// it's the same as vcprm, with the index inversed
55
 
// ('le' is Little Endian)
56
 
#define vcprmle(a,b,c,d) vcprm(d,c,b,a)
57
 
 
58
 
// used to build inverse/identity vectors (vcii)
59
 
// n is _n_egative, p is _p_ositive
60
 
#define FLOAT_n -1.
61
 
#define FLOAT_p 1.
62
 
 
63
 
 
64
 
#ifdef CONFIG_DARWIN
65
 
#define vcii(a,b,c,d) (const vector float)(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d)
66
 
#else
67
 
#define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d}
68
 
#endif
69
 
 
70
 
// Transpose 8x8 matrix of 16-bit elements (in-place)
71
 
#define TRANSPOSE8(a,b,c,d,e,f,g,h) \
72
 
do { \
73
 
    vector signed short A1, B1, C1, D1, E1, F1, G1, H1; \
74
 
    vector signed short A2, B2, C2, D2, E2, F2, G2, H2; \
75
 
 \
76
 
    A1 = vec_mergeh (a, e); \
77
 
    B1 = vec_mergel (a, e); \
78
 
    C1 = vec_mergeh (b, f); \
79
 
    D1 = vec_mergel (b, f); \
80
 
    E1 = vec_mergeh (c, g); \
81
 
    F1 = vec_mergel (c, g); \
82
 
    G1 = vec_mergeh (d, h); \
83
 
    H1 = vec_mergel (d, h); \
84
 
 \
85
 
    A2 = vec_mergeh (A1, E1); \
86
 
    B2 = vec_mergel (A1, E1); \
87
 
    C2 = vec_mergeh (B1, F1); \
88
 
    D2 = vec_mergel (B1, F1); \
89
 
    E2 = vec_mergeh (C1, G1); \
90
 
    F2 = vec_mergel (C1, G1); \
91
 
    G2 = vec_mergeh (D1, H1); \
92
 
    H2 = vec_mergel (D1, H1); \
93
 
 \
94
 
    a = vec_mergeh (A2, E2); \
95
 
    b = vec_mergel (A2, E2); \
96
 
    c = vec_mergeh (B2, F2); \
97
 
    d = vec_mergel (B2, F2); \
98
 
    e = vec_mergeh (C2, G2); \
99
 
    f = vec_mergel (C2, G2); \
100
 
    g = vec_mergeh (D2, H2); \
101
 
    h = vec_mergel (D2, H2); \
102
 
} while (0)
103
 
 
104
 
#endif /* HAVE_ALTIVEC */
105
 
 
106
 
#endif /* _DSPUTIL_ALTIVEC_ */
 
34
#endif /* FFMPEG_DSPUTIL_ALTIVEC_H */