Mercurial > libavcodec.hg
annotate sh4/dsputil_align.c @ 12483:0159a19bfff7 libavcodec
aacdec: Rework channel mapping compatibility hacks.
For a PCE based configuration map the channels solely based on tags.
For an indexed configuration map the channels solely based on position.
This works with all known exotic samples including al17, elem_id0, bad_concat,
and lfe_is_sce.
author | alexc |
---|---|
date | Fri, 10 Sep 2010 18:01:48 +0000 |
parents | c166792100a0 |
children |
rev | line source |
---|---|
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
1 /* |
2967 | 2 * aligned/packed access motion |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
3 * |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
4 * Copyright (c) 2001-2003 BERO <bero@geocities.co.jp> |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
5 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
6 * This file is part of FFmpeg. |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
7 * |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
10 * License as published by the Free Software Foundation; either |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
12 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
16 * Lesser General Public License for more details. |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
17 * |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
18 * You should have received a copy of the GNU Lesser General Public |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
3036
0b546eab515d
Update licensing information: The FSF changed postal address.
diego
parents:
2979
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
21 */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
22 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
23 |
6763 | 24 #include "libavcodec/avcodec.h" |
25 #include "libavcodec/dsputil.h" | |
11400 | 26 #include "dsputil_sh4.h" |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
27 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
28 |
2979 | 29 #define LP(p) *(uint32_t*)(p) |
11399 | 30 #define LPC(p) *(const uint32_t*)(p) |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
31 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
32 |
2979 | 33 #define UNPACK(ph,pl,tt0,tt1) do { \ |
34 uint32_t t0,t1; t0=tt0;t1=tt1; \ | |
35 ph = ( (t0 & ~BYTE_VEC32(0x03))>>2) + ( (t1 & ~BYTE_VEC32(0x03))>>2); \ | |
36 pl = (t0 & BYTE_VEC32(0x03)) + (t1 & BYTE_VEC32(0x03)); } while(0) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
37 |
2979 | 38 #define rnd_PACK(ph,pl,nph,npl) ph + nph + (((pl + npl + BYTE_VEC32(0x02))>>2) & BYTE_VEC32(0x03)) |
39 #define no_rnd_PACK(ph,pl,nph,npl) ph + nph + (((pl + npl + BYTE_VEC32(0x01))>>2) & BYTE_VEC32(0x03)) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
40 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
41 /* little endian */ |
2979 | 42 #define MERGE1(a,b,ofs) (ofs==0)?a:( ((a)>>(8*ofs))|((b)<<(32-8*ofs)) ) |
43 #define MERGE2(a,b,ofs) (ofs==3)?b:( ((a)>>(8*(ofs+1)))|((b)<<(32-8*(ofs+1))) ) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
44 /* big |
2979 | 45 #define MERGE1(a,b,ofs) (ofs==0)?a:( ((a)<<(8*ofs))|((b)>>(32-8*ofs)) ) |
46 #define MERGE2(a,b,ofs) (ofs==3)?b:( ((a)<<(8+8*ofs))|((b)>>(32-8-8*ofs)) ) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
47 */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
48 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
49 |
2979 | 50 #define put(d,s) d = s |
51 #define avg(d,s) d = rnd_avg32(s,d) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
52 |
2979 | 53 #define OP_C4(ofs) \ |
54 ref-=ofs; \ | |
55 do { \ | |
11399 | 56 OP(LP(dest),MERGE1(LPC(ref),LPC(ref+4),ofs)); \ |
2979 | 57 ref+=stride; \ |
58 dest+=stride; \ | |
59 } while(--height) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
60 |
2979 | 61 #define OP_C40() \ |
62 do { \ | |
11399 | 63 OP(LP(dest),LPC(ref)); \ |
2979 | 64 ref+=stride; \ |
65 dest+=stride; \ | |
66 } while(--height) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
67 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
68 |
2979 | 69 #define OP put |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
70 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
71 static void put_pixels4_c(uint8_t *dest,const uint8_t *ref, const int stride,int height) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
72 { |
2979 | 73 switch((int)ref&3){ |
74 case 0: OP_C40(); return; | |
75 case 1: OP_C4(1); return; | |
76 case 2: OP_C4(2); return; | |
77 case 3: OP_C4(3); return; | |
78 } | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
79 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
80 |
2979 | 81 #undef OP |
82 #define OP avg | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
83 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
84 static void avg_pixels4_c(uint8_t *dest,const uint8_t *ref, const int stride,int height) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
85 { |
2979 | 86 switch((int)ref&3){ |
87 case 0: OP_C40(); return; | |
88 case 1: OP_C4(1); return; | |
89 case 2: OP_C4(2); return; | |
90 case 3: OP_C4(3); return; | |
91 } | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
92 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
93 |
2979 | 94 #undef OP |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
95 |
2979 | 96 #define OP_C(ofs,sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
97 { \ |
2979 | 98 ref-=ofs; \ |
99 do { \ | |
100 uint32_t t0,t1; \ | |
11399 | 101 t0 = LPC(ref+0); \ |
102 t1 = LPC(ref+4); \ | |
2979 | 103 OP(LP(dest+0), MERGE1(t0,t1,ofs)); \ |
11399 | 104 t0 = LPC(ref+8); \ |
2979 | 105 OP(LP(dest+4), MERGE1(t1,t0,ofs)); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
106 if (sz==16) { \ |
11399 | 107 t1 = LPC(ref+12); \ |
2979 | 108 OP(LP(dest+8), MERGE1(t0,t1,ofs)); \ |
11399 | 109 t0 = LPC(ref+16); \ |
2979 | 110 OP(LP(dest+12), MERGE1(t1,t0,ofs)); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
111 } \ |
2979 | 112 ref+=stride; \ |
113 dest+= stride; \ | |
114 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
115 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
116 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
117 /* aligned */ |
2979 | 118 #define OP_C0(sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
119 { \ |
2979 | 120 do { \ |
11399 | 121 OP(LP(dest+0), LPC(ref+0)); \ |
122 OP(LP(dest+4), LPC(ref+4)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
123 if (sz==16) { \ |
11399 | 124 OP(LP(dest+8), LPC(ref+8)); \ |
125 OP(LP(dest+12), LPC(ref+12)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
126 } \ |
2979 | 127 ref+=stride; \ |
128 dest+= stride; \ | |
129 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
130 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
131 |
2979 | 132 #define OP_X(ofs,sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
133 { \ |
2979 | 134 ref-=ofs; \ |
135 do { \ | |
136 uint32_t t0,t1; \ | |
11399 | 137 t0 = LPC(ref+0); \ |
138 t1 = LPC(ref+4); \ | |
2979 | 139 OP(LP(dest+0), avg2(MERGE1(t0,t1,ofs),MERGE2(t0,t1,ofs))); \ |
11399 | 140 t0 = LPC(ref+8); \ |
2979 | 141 OP(LP(dest+4), avg2(MERGE1(t1,t0,ofs),MERGE2(t1,t0,ofs))); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
142 if (sz==16) { \ |
11399 | 143 t1 = LPC(ref+12); \ |
2979 | 144 OP(LP(dest+8), avg2(MERGE1(t0,t1,ofs),MERGE2(t0,t1,ofs))); \ |
11399 | 145 t0 = LPC(ref+16); \ |
2979 | 146 OP(LP(dest+12), avg2(MERGE1(t1,t0,ofs),MERGE2(t1,t0,ofs))); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
147 } \ |
2979 | 148 ref+=stride; \ |
149 dest+= stride; \ | |
150 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
151 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
152 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
153 /* aligned */ |
2979 | 154 #define OP_Y0(sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
155 { \ |
2979 | 156 uint32_t t0,t1,t2,t3,t; \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
157 \ |
11399 | 158 t0 = LPC(ref+0); \ |
159 t1 = LPC(ref+4); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
160 if (sz==16) { \ |
11399 | 161 t2 = LPC(ref+8); \ |
162 t3 = LPC(ref+12); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
163 } \ |
2979 | 164 do { \ |
165 ref += stride; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
166 \ |
11399 | 167 t = LPC(ref+0); \ |
2979 | 168 OP(LP(dest+0), avg2(t0,t)); t0 = t; \ |
11399 | 169 t = LPC(ref+4); \ |
2979 | 170 OP(LP(dest+4), avg2(t1,t)); t1 = t; \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
171 if (sz==16) { \ |
11399 | 172 t = LPC(ref+8); \ |
2979 | 173 OP(LP(dest+8), avg2(t2,t)); t2 = t; \ |
11399 | 174 t = LPC(ref+12); \ |
2979 | 175 OP(LP(dest+12), avg2(t3,t)); t3 = t; \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
176 } \ |
2979 | 177 dest+= stride; \ |
178 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
179 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
180 |
2979 | 181 #define OP_Y(ofs,sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
182 { \ |
2979 | 183 uint32_t t0,t1,t2,t3,t,w0,w1; \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
184 \ |
2979 | 185 ref-=ofs; \ |
11399 | 186 w0 = LPC(ref+0); \ |
187 w1 = LPC(ref+4); \ | |
2979 | 188 t0 = MERGE1(w0,w1,ofs); \ |
11399 | 189 w0 = LPC(ref+8); \ |
2979 | 190 t1 = MERGE1(w1,w0,ofs); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
191 if (sz==16) { \ |
11399 | 192 w1 = LPC(ref+12); \ |
2979 | 193 t2 = MERGE1(w0,w1,ofs); \ |
11399 | 194 w0 = LPC(ref+16); \ |
2979 | 195 t3 = MERGE1(w1,w0,ofs); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
196 } \ |
2979 | 197 do { \ |
198 ref += stride; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
199 \ |
11399 | 200 w0 = LPC(ref+0); \ |
201 w1 = LPC(ref+4); \ | |
2979 | 202 t = MERGE1(w0,w1,ofs); \ |
203 OP(LP(dest+0), avg2(t0,t)); t0 = t; \ | |
11399 | 204 w0 = LPC(ref+8); \ |
2979 | 205 t = MERGE1(w1,w0,ofs); \ |
206 OP(LP(dest+4), avg2(t1,t)); t1 = t; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
207 if (sz==16) { \ |
11399 | 208 w1 = LPC(ref+12); \ |
2979 | 209 t = MERGE1(w0,w1,ofs); \ |
210 OP(LP(dest+8), avg2(t2,t)); t2 = t; \ | |
11399 | 211 w0 = LPC(ref+16); \ |
2979 | 212 t = MERGE1(w1,w0,ofs); \ |
213 OP(LP(dest+12), avg2(t3,t)); t3 = t; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
214 } \ |
2979 | 215 dest+=stride; \ |
216 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
217 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
218 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
219 #define OP_X0(sz,avg2) OP_X(0,sz,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
220 #define OP_XY0(sz,PACK) OP_XY(0,sz,PACK) |
2979 | 221 #define OP_XY(ofs,sz,PACK) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
222 { \ |
2979 | 223 uint32_t t2,t3,w0,w1; \ |
224 uint32_t a0,a1,a2,a3,a4,a5,a6,a7; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
225 \ |
2979 | 226 ref -= ofs; \ |
11399 | 227 w0 = LPC(ref+0); \ |
228 w1 = LPC(ref+4); \ | |
2979 | 229 UNPACK(a0,a1,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ |
11399 | 230 w0 = LPC(ref+8); \ |
2979 | 231 UNPACK(a2,a3,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
232 if (sz==16) { \ |
11399 | 233 w1 = LPC(ref+12); \ |
2979 | 234 UNPACK(a4,a5,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ |
11399 | 235 w0 = LPC(ref+16); \ |
2979 | 236 UNPACK(a6,a7,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
237 } \ |
2979 | 238 do { \ |
239 ref+=stride; \ | |
11399 | 240 w0 = LPC(ref+0); \ |
241 w1 = LPC(ref+4); \ | |
2979 | 242 UNPACK(t2,t3,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ |
243 OP(LP(dest+0),PACK(a0,a1,t2,t3)); \ | |
244 a0 = t2; a1 = t3; \ | |
11399 | 245 w0 = LPC(ref+8); \ |
2979 | 246 UNPACK(t2,t3,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ |
247 OP(LP(dest+4),PACK(a2,a3,t2,t3)); \ | |
248 a2 = t2; a3 = t3; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
249 if (sz==16) { \ |
11399 | 250 w1 = LPC(ref+12); \ |
2979 | 251 UNPACK(t2,t3,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ |
252 OP(LP(dest+8),PACK(a4,a5,t2,t3)); \ | |
253 a4 = t2; a5 = t3; \ | |
11399 | 254 w0 = LPC(ref+16); \ |
2979 | 255 UNPACK(t2,t3,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ |
256 OP(LP(dest+12),PACK(a6,a7,t2,t3)); \ | |
257 a6 = t2; a7 = t3; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
258 } \ |
2979 | 259 dest+=stride; \ |
260 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
261 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
262 |
2979 | 263 #define DEFFUNC(op,rnd,xy,sz,OP_N,avgfunc) \ |
264 static void op##_##rnd##_pixels##sz##_##xy (uint8_t * dest, const uint8_t * ref, \ | |
265 const int stride, int height) \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
266 { \ |
2979 | 267 switch((int)ref&3) { \ |
268 case 0:OP_N##0(sz,rnd##_##avgfunc); return; \ | |
269 case 1:OP_N(1,sz,rnd##_##avgfunc); return; \ | |
270 case 2:OP_N(2,sz,rnd##_##avgfunc); return; \ | |
271 case 3:OP_N(3,sz,rnd##_##avgfunc); return; \ | |
272 } \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
273 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
274 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
275 #define OP put |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
276 |
8168 | 277 DEFFUNC(put, rnd,o,8,OP_C,avg32) |
278 DEFFUNC(put, rnd,x,8,OP_X,avg32) | |
279 DEFFUNC(put,no_rnd,x,8,OP_X,avg32) | |
280 DEFFUNC(put, rnd,y,8,OP_Y,avg32) | |
281 DEFFUNC(put,no_rnd,y,8,OP_Y,avg32) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
282 DEFFUNC(put, rnd,xy,8,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
283 DEFFUNC(put,no_rnd,xy,8,OP_XY,PACK) |
8168 | 284 DEFFUNC(put, rnd,o,16,OP_C,avg32) |
285 DEFFUNC(put, rnd,x,16,OP_X,avg32) | |
286 DEFFUNC(put,no_rnd,x,16,OP_X,avg32) | |
287 DEFFUNC(put, rnd,y,16,OP_Y,avg32) | |
288 DEFFUNC(put,no_rnd,y,16,OP_Y,avg32) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
289 DEFFUNC(put, rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
290 DEFFUNC(put,no_rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
291 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
292 #undef OP |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
293 #define OP avg |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
294 |
8168 | 295 DEFFUNC(avg, rnd,o,8,OP_C,avg32) |
296 DEFFUNC(avg, rnd,x,8,OP_X,avg32) | |
297 DEFFUNC(avg,no_rnd,x,8,OP_X,avg32) | |
298 DEFFUNC(avg, rnd,y,8,OP_Y,avg32) | |
299 DEFFUNC(avg,no_rnd,y,8,OP_Y,avg32) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
300 DEFFUNC(avg, rnd,xy,8,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
301 DEFFUNC(avg,no_rnd,xy,8,OP_XY,PACK) |
8168 | 302 DEFFUNC(avg, rnd,o,16,OP_C,avg32) |
303 DEFFUNC(avg, rnd,x,16,OP_X,avg32) | |
304 DEFFUNC(avg,no_rnd,x,16,OP_X,avg32) | |
305 DEFFUNC(avg, rnd,y,16,OP_Y,avg32) | |
306 DEFFUNC(avg,no_rnd,y,16,OP_Y,avg32) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
307 DEFFUNC(avg, rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
308 DEFFUNC(avg,no_rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
309 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
310 #undef OP |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
311 |
2979 | 312 #define put_no_rnd_pixels8_o put_rnd_pixels8_o |
313 #define put_no_rnd_pixels16_o put_rnd_pixels16_o | |
314 #define avg_no_rnd_pixels8_o avg_rnd_pixels8_o | |
315 #define avg_no_rnd_pixels16_o avg_rnd_pixels16_o | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
316 |
2979 | 317 #define put_pixels8_c put_rnd_pixels8_o |
318 #define put_pixels16_c put_rnd_pixels16_o | |
319 #define avg_pixels8_c avg_rnd_pixels8_o | |
320 #define avg_pixels16_c avg_rnd_pixels16_o | |
321 #define put_no_rnd_pixels8_c put_rnd_pixels8_o | |
322 #define put_no_rnd_pixels16_c put_rnd_pixels16_o | |
323 #define avg_no_rnd_pixels8_c avg_rnd_pixels8_o | |
324 #define avg_no_rnd_pixels16_c avg_rnd_pixels16_o | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
325 |
2979 | 326 #define QPEL |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
327 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
328 #ifdef QPEL |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
329 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
330 #include "qpel.c" |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
331 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
332 #endif |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
333 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
334 void dsputil_init_align(DSPContext* c, AVCodecContext *avctx) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
335 { |
2979 | 336 c->put_pixels_tab[0][0] = put_rnd_pixels16_o; |
337 c->put_pixels_tab[0][1] = put_rnd_pixels16_x; | |
338 c->put_pixels_tab[0][2] = put_rnd_pixels16_y; | |
339 c->put_pixels_tab[0][3] = put_rnd_pixels16_xy; | |
340 c->put_pixels_tab[1][0] = put_rnd_pixels8_o; | |
341 c->put_pixels_tab[1][1] = put_rnd_pixels8_x; | |
342 c->put_pixels_tab[1][2] = put_rnd_pixels8_y; | |
343 c->put_pixels_tab[1][3] = put_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
344 |
2979 | 345 c->put_no_rnd_pixels_tab[0][0] = put_no_rnd_pixels16_o; |
346 c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x; | |
347 c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y; | |
348 c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy; | |
349 c->put_no_rnd_pixels_tab[1][0] = put_no_rnd_pixels8_o; | |
350 c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x; | |
351 c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y; | |
352 c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
353 |
2979 | 354 c->avg_pixels_tab[0][0] = avg_rnd_pixels16_o; |
355 c->avg_pixels_tab[0][1] = avg_rnd_pixels16_x; | |
356 c->avg_pixels_tab[0][2] = avg_rnd_pixels16_y; | |
357 c->avg_pixels_tab[0][3] = avg_rnd_pixels16_xy; | |
358 c->avg_pixels_tab[1][0] = avg_rnd_pixels8_o; | |
359 c->avg_pixels_tab[1][1] = avg_rnd_pixels8_x; | |
360 c->avg_pixels_tab[1][2] = avg_rnd_pixels8_y; | |
361 c->avg_pixels_tab[1][3] = avg_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
362 |
2979 | 363 c->avg_no_rnd_pixels_tab[0][0] = avg_no_rnd_pixels16_o; |
364 c->avg_no_rnd_pixels_tab[0][1] = avg_no_rnd_pixels16_x; | |
365 c->avg_no_rnd_pixels_tab[0][2] = avg_no_rnd_pixels16_y; | |
366 c->avg_no_rnd_pixels_tab[0][3] = avg_no_rnd_pixels16_xy; | |
367 c->avg_no_rnd_pixels_tab[1][0] = avg_no_rnd_pixels8_o; | |
368 c->avg_no_rnd_pixels_tab[1][1] = avg_no_rnd_pixels8_x; | |
369 c->avg_no_rnd_pixels_tab[1][2] = avg_no_rnd_pixels8_y; | |
370 c->avg_no_rnd_pixels_tab[1][3] = avg_no_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
371 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
372 #ifdef QPEL |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
373 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
374 #define dspfunc(PFX, IDX, NUM) \ |
8167 | 375 c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_sh4; \ |
376 c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_sh4; \ | |
377 c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_sh4; \ | |
378 c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_sh4; \ | |
379 c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_sh4; \ | |
380 c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_sh4; \ | |
381 c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_sh4; \ | |
382 c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_sh4; \ | |
383 c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_sh4; \ | |
384 c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_sh4; \ | |
385 c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_sh4; \ | |
386 c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_sh4; \ | |
387 c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_sh4; \ | |
388 c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_sh4; \ | |
389 c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_sh4; \ | |
390 c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_sh4 | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
391 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
392 dspfunc(put_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
393 dspfunc(put_no_rnd_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
394 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
395 dspfunc(avg_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
396 /* dspfunc(avg_no_rnd_qpel, 0, 16); */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
397 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
398 dspfunc(put_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
399 dspfunc(put_no_rnd_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
400 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
401 dspfunc(avg_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
402 /* dspfunc(avg_no_rnd_qpel, 1, 8); */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
403 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
404 dspfunc(put_h264_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
405 dspfunc(put_h264_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
406 dspfunc(put_h264_qpel, 2, 4); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
407 dspfunc(avg_h264_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
408 dspfunc(avg_h264_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
409 dspfunc(avg_h264_qpel, 2, 4); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
410 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
411 #undef dspfunc |
8167 | 412 c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_sh4; |
413 c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_sh4; | |
414 c->put_h264_chroma_pixels_tab[2]= put_h264_chroma_mc2_sh4; | |
415 c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_sh4; | |
416 c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_sh4; | |
417 c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_sh4; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
418 |
8167 | 419 c->put_mspel_pixels_tab[0]= put_mspel8_mc00_sh4; |
420 c->put_mspel_pixels_tab[1]= put_mspel8_mc10_sh4; | |
421 c->put_mspel_pixels_tab[2]= put_mspel8_mc20_sh4; | |
422 c->put_mspel_pixels_tab[3]= put_mspel8_mc30_sh4; | |
423 c->put_mspel_pixels_tab[4]= put_mspel8_mc02_sh4; | |
424 c->put_mspel_pixels_tab[5]= put_mspel8_mc12_sh4; | |
425 c->put_mspel_pixels_tab[6]= put_mspel8_mc22_sh4; | |
426 c->put_mspel_pixels_tab[7]= put_mspel8_mc32_sh4; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
427 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
428 c->gmc1 = gmc1_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
429 c->gmc = gmc_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
430 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
431 #endif |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
432 } |