annotate armv4l/mpegvideo_armv5te.c @ 6323:e6da66f378c7 libavcodec

mpegvideo.h has two function declarations with the 'inline' specifier but no definition for those functions. The C standard requires a definition to appear in the same translation unit for any function declared with 'inline'. Most of the files including mpegvideo.h do not define those functions. Fix this by removing the 'inline' specifiers from the header. patch by Uoti Urpala
author diego
date Sun, 03 Feb 2008 17:54:30 +0000
parents a312a28104e9
children 43c97362dfa8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4341
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
1 /*
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
2 * Optimization of some functions from mpegvideo.c for armv5te
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
3 * Copyright (c) 2007 Siarhei Siamashka <ssvb@users.sourceforge.net>
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
4 *
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
5 * This file is part of FFmpeg.
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
6 *
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
11 *
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
15 * Lesser General Public License for more details.
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
16 *
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
20 */
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
21
5010
d5ba514e3f4a Add libavcodec to compiler include flags in order to simplify header
diego
parents: 4435
diff changeset
22 #include "dsputil.h"
d5ba514e3f4a Add libavcodec to compiler include flags in order to simplify header
diego
parents: 4435
diff changeset
23 #include "mpegvideo.h"
d5ba514e3f4a Add libavcodec to compiler include flags in order to simplify header
diego
parents: 4435
diff changeset
24 #include "avcodec.h"
4341
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
25
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
26
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
27 #ifdef ENABLE_ARM_TESTS
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
28 /**
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
29 * h263 dequantizer supplementary function, it is performance critical and needs to
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
30 * have optimized implementations for each architecture. Is also used as a reference
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
31 * implementation in regression tests
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
32 */
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
33 static inline void dct_unquantize_h263_helper_c(DCTELEM *block, int qmul, int qadd, int count)
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
34 {
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
35 int i, level;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
36 for (i = 0; i < count; i++) {
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
37 level = block[i];
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
38 if (level) {
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
39 if (level < 0) {
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
40 level = level * qmul - qadd;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
41 } else {
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
42 level = level * qmul + qadd;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
43 }
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
44 block[i] = level;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
45 }
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
46 }
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
47 }
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
48 #endif
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
49
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
50 /* GCC 3.1 or higher is required to support symbolic names in assembly code */
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
51 #if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
52
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
53 /**
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
54 * Special optimized version of dct_unquantize_h263_helper_c, it requires the block
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
55 * to be at least 8 bytes aligned, and may process more elements than requested.
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
56 * But it is guaranteed to never process more than 64 elements provided that
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
57 * xxcount argument is <= 64, so it is safe. This macro is optimized for a common
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
58 * distribution of values for nCoeffs (they are mostly multiple of 8 plus one or
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
59 * two extra elements). So this macro processes data as 8 elements per loop iteration
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
60 * and contains optional 2 elements processing in the end.
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
61 *
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
62 * Inner loop should take 6 cycles per element on arm926ej-s (Nokia 770)
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
63 */
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
64 #define dct_unquantize_h263_special_helper_armv5te(xxblock, xxqmul, xxqadd, xxcount) \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
65 ({ DCTELEM *xblock = xxblock; \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
66 int xqmul = xxqmul, xqadd = xxqadd, xcount = xxcount, xtmp; \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
67 int xdata1, xdata2; \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
68 __asm__ __volatile__( \
4435
04b5141fa890 typo fix by Dmitry Antipov dmantipov =a= yandex =d= ru
mru
parents: 4341
diff changeset
69 "subs %[count], %[count], #2 \n\t" \
4341
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
70 "ble 2f \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
71 "ldrd r4, [%[block], #0] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
72 "1: \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
73 "ldrd r6, [%[block], #8] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
74 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
75 "rsbs %[data1], %[zero], r4, asr #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
76 "addgt %[data1], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
77 "rsblt %[data1], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
78 "smlatbne %[data1], r4, %[qmul], %[data1] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
79 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
80 "rsbs %[data2], %[zero], r5, asr #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
81 "addgt %[data2], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
82 "rsblt %[data2], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
83 "smlatbne %[data2], r5, %[qmul], %[data2] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
84 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
85 "rsbs %[tmp], %[zero], r4, asl #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
86 "addgt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
87 "rsblt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
88 "smlabbne r4, r4, %[qmul], %[tmp] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
89 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
90 "rsbs %[tmp], %[zero], r5, asl #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
91 "addgt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
92 "rsblt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
93 "smlabbne r5, r5, %[qmul], %[tmp] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
94 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
95 "strh r4, [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
96 "strh %[data1], [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
97 "strh r5, [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
98 "strh %[data2], [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
99 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
100 "rsbs %[data1], %[zero], r6, asr #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
101 "addgt %[data1], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
102 "rsblt %[data1], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
103 "smlatbne %[data1], r6, %[qmul], %[data1] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
104 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
105 "rsbs %[data2], %[zero], r7, asr #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
106 "addgt %[data2], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
107 "rsblt %[data2], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
108 "smlatbne %[data2], r7, %[qmul], %[data2] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
109 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
110 "rsbs %[tmp], %[zero], r6, asl #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
111 "addgt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
112 "rsblt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
113 "smlabbne r6, r6, %[qmul], %[tmp] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
114 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
115 "rsbs %[tmp], %[zero], r7, asl #16 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
116 "addgt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
117 "rsblt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
118 "smlabbne r7, r7, %[qmul], %[tmp] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
119 \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
120 "strh r6, [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
121 "strh %[data1], [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
122 "strh r7, [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
123 "strh %[data2], [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
124 \
4435
04b5141fa890 typo fix by Dmitry Antipov dmantipov =a= yandex =d= ru
mru
parents: 4341
diff changeset
125 "subs %[count], %[count], #8 \n\t" \
4341
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
126 "ldrgtd r4, [%[block], #0] \n\t" /* load data early to avoid load/use pipeline stall */ \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
127 "bgt 1b \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
128 \
4435
04b5141fa890 typo fix by Dmitry Antipov dmantipov =a= yandex =d= ru
mru
parents: 4341
diff changeset
129 "adds %[count], %[count], #2 \n\t" \
4341
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
130 "ble 3f \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
131 "2: \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
132 "ldrsh %[data1], [%[block], #0] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
133 "ldrsh %[data2], [%[block], #2] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
134 "mov %[tmp], %[qadd] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
135 "cmp %[data1], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
136 "rsblt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
137 "smlabbne %[data1], %[data1], %[qmul], %[tmp] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
138 "mov %[tmp], %[qadd] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
139 "cmp %[data2], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
140 "rsblt %[tmp], %[qadd], #0 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
141 "smlabbne %[data2], %[data2], %[qmul], %[tmp] \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
142 "strh %[data1], [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
143 "strh %[data2], [%[block]], #2 \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
144 "3: \n\t" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
145 : [block] "+&r" (xblock), [count] "+&r" (xcount), [tmp] "=&r" (xtmp), \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
146 [data1] "=&r" (xdata1), [data2] "=&r" (xdata2) \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
147 : [qmul] "r" (xqmul), [qadd] "r" (xqadd), [zero] "r" (0) \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
148 : "r4", "r5", "r6", "r7", "cc", "memory" \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
149 ); \
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
150 })
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
151
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
152 static void dct_unquantize_h263_intra_armv5te(MpegEncContext *s,
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
153 DCTELEM *block, int n, int qscale)
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
154 {
5100
daff9ebd2e0b Remove unused variables.
diego
parents: 5010
diff changeset
155 int level, qmul, qadd;
4341
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
156 int nCoeffs;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
157
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
158 assert(s->block_last_index[n]>=0);
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
159
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
160 qmul = qscale << 1;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
161
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
162 if (!s->h263_aic) {
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
163 if (n < 4)
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
164 level = block[0] * s->y_dc_scale;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
165 else
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
166 level = block[0] * s->c_dc_scale;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
167 qadd = (qscale - 1) | 1;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
168 }else{
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
169 qadd = 0;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
170 level = block[0];
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
171 }
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
172 if(s->ac_pred)
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
173 nCoeffs=63;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
174 else
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
175 nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
176
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
177 dct_unquantize_h263_special_helper_armv5te(block, qmul, qadd, nCoeffs + 1);
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
178 block[0] = level;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
179 }
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
180
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
181 static void dct_unquantize_h263_inter_armv5te(MpegEncContext *s,
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
182 DCTELEM *block, int n, int qscale)
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
183 {
5100
daff9ebd2e0b Remove unused variables.
diego
parents: 5010
diff changeset
184 int qmul, qadd;
4341
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
185 int nCoeffs;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
186
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
187 assert(s->block_last_index[n]>=0);
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
188
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
189 qadd = (qscale - 1) | 1;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
190 qmul = qscale << 1;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
191
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
192 nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
193
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
194 dct_unquantize_h263_special_helper_armv5te(block, qmul, qadd, nCoeffs + 1);
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
195 }
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
196
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
197 #define HAVE_DCT_UNQUANTIZE_H263_ARMV5TE_OPTIMIZED
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
198
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
199 #endif
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
200
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
201 void MPV_common_init_armv5te(MpegEncContext *s)
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
202 {
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
203 #ifdef HAVE_DCT_UNQUANTIZE_H263_ARMV5TE_OPTIMIZED
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
204 s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_armv5te;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
205 s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_armv5te;
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
206 #endif
5053e6b3ea45 add missing bit from commit r7423
gpoirier
parents:
diff changeset
207 }