~phatforge/libav/fixup

« back to all changes in this revision

Viewing changes to libavcodec/arm/dsputil_init_neon.c

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2011-04-30 14:27:42 UTC
  • mfrom: (1.1.2 experimental)
  • Revision ID: james.westby@ubuntu.com-20110430142742-quvblxk1tj6adlh5
Tags: 4:0.7~b1-1ubuntu1
* Merge from debian. Remaining changes:
  - don't build against libfaad, libdirac, librtmp and libopenjpeg
    (all in universe)
  - explicitly --enable-pic on powerpc, cf. LP #654666
  - different arm configure bits that should probably better be
    merged into debian
* Cherry-picked from git: 
  - install doc/APIChanges and refer to them in NEWS.Debian (Closes: #623682)
  - don't try to install non-existing documentation, fixes FTBFS on powerpc

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 * ARM NEON optimised DSP functions
3
3
 * Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
4
4
 *
5
 
 * This file is part of FFmpeg.
 
5
 * This file is part of Libav.
6
6
 *
7
 
 * FFmpeg is free software; you can redistribute it and/or
 
7
 * Libav is free software; you can redistribute it and/or
8
8
 * modify it under the terms of the GNU Lesser General Public
9
9
 * License as published by the Free Software Foundation; either
10
10
 * version 2.1 of the License, or (at your option) any later version.
11
11
 *
12
 
 * FFmpeg is distributed in the hope that it will be useful,
 
12
 * Libav is distributed in the hope that it will be useful,
13
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
15
 * Lesser General Public License for more details.
16
16
 *
17
17
 * You should have received a copy of the GNU Lesser General Public
18
 
 * License along with FFmpeg; if not, write to the Free Software
 
18
 * License along with Libav; if not, write to the Free Software
19
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
20
 */
21
21
 
34
34
void ff_vp3_idct_add_neon(uint8_t *dest, int line_size, DCTELEM *data);
35
35
void ff_vp3_idct_dc_add_neon(uint8_t *dest, int line_size, const DCTELEM *data);
36
36
 
 
37
void ff_clear_block_neon(DCTELEM *block);
 
38
void ff_clear_blocks_neon(DCTELEM *blocks);
 
39
 
37
40
void ff_put_pixels16_neon(uint8_t *, const uint8_t *, int, int);
38
41
void ff_put_pixels16_x2_neon(uint8_t *, const uint8_t *, int, int);
39
42
void ff_put_pixels16_y2_neon(uint8_t *, const uint8_t *, int, int);
135
138
void ff_vp3_v_loop_filter_neon(uint8_t *, int, int *);
136
139
void ff_vp3_h_loop_filter_neon(uint8_t *, int, int *);
137
140
 
138
 
void ff_vector_fmul_neon(float *dst, const float *src, int len);
 
141
void ff_vector_fmul_neon(float *dst, const float *src0, const float *src1, int len);
139
142
void ff_vector_fmul_window_neon(float *dst, const float *src0,
140
 
                                const float *src1, const float *win,
141
 
                                float add_bias, int len);
 
143
                                const float *src1, const float *win, int len);
142
144
void ff_vector_fmul_scalar_neon(float *dst, const float *src, float mul,
143
145
                                int len);
144
146
void ff_vector_fmul_sv_scalar_2_neon(float *dst, const float *src,
151
153
                              int len);
152
154
void ff_butterflies_float_neon(float *v1, float *v2, int len);
153
155
float ff_scalarproduct_float_neon(const float *v1, const float *v2, int len);
154
 
void ff_int32_to_float_fmul_scalar_neon(float *dst, const int *src,
155
 
                                        float mul, int len);
156
156
void ff_vector_fmul_reverse_neon(float *dst, const float *src0,
157
157
                                 const float *src1, int len);
158
158
void ff_vector_fmul_add_neon(float *dst, const float *src0, const float *src1,
160
160
 
161
161
void ff_vector_clipf_neon(float *dst, const float *src, float min, float max,
162
162
                          int len);
163
 
void ff_float_to_int16_neon(int16_t *, const float *, long);
164
 
void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int);
165
163
 
166
164
void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, int blocksize);
167
165
 
168
 
int32_t ff_scalarproduct_int16_neon(int16_t *v1, int16_t *v2, int len,
 
166
int32_t ff_scalarproduct_int16_neon(const int16_t *v1, const int16_t *v2, int len,
169
167
                                    int shift);
170
 
int32_t ff_scalarproduct_and_madd_int16_neon(int16_t *v1, int16_t *v2,
171
 
                                             int16_t *v3, int len, int mul);
 
168
int32_t ff_scalarproduct_and_madd_int16_neon(int16_t *v1, const int16_t *v2,
 
169
                                             const int16_t *v3, int len, int mul);
 
170
 
 
171
void ff_apply_window_int16_neon(int16_t *dst, const int16_t *src,
 
172
                                const int16_t *window, unsigned n);
172
173
 
173
174
void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
174
175
{
189
190
        }
190
191
    }
191
192
 
 
193
    c->clear_block  = ff_clear_block_neon;
 
194
    c->clear_blocks = ff_clear_blocks_neon;
 
195
 
192
196
    c->put_pixels_tab[0][0] = ff_put_pixels16_neon;
193
197
    c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon;
194
198
    c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon;
303
307
    c->vector_fmul_scalar         = ff_vector_fmul_scalar_neon;
304
308
    c->butterflies_float          = ff_butterflies_float_neon;
305
309
    c->scalarproduct_float        = ff_scalarproduct_float_neon;
306
 
    c->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_neon;
307
310
    c->vector_fmul_reverse        = ff_vector_fmul_reverse_neon;
308
311
    c->vector_fmul_add            = ff_vector_fmul_add_neon;
309
312
    c->vector_clipf               = ff_vector_clipf_neon;
314
317
    c->sv_fmul_scalar[0] = ff_sv_fmul_scalar_2_neon;
315
318
    c->sv_fmul_scalar[1] = ff_sv_fmul_scalar_4_neon;
316
319
 
317
 
    if (!(avctx->flags & CODEC_FLAG_BITEXACT)) {
318
 
        c->float_to_int16            = ff_float_to_int16_neon;
319
 
        c->float_to_int16_interleave = ff_float_to_int16_interleave_neon;
320
 
    }
321
 
 
322
320
    if (CONFIG_VORBIS_DECODER)
323
321
        c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_neon;
324
322
 
325
323
    c->scalarproduct_int16 = ff_scalarproduct_int16_neon;
326
324
    c->scalarproduct_and_madd_int16 = ff_scalarproduct_and_madd_int16_neon;
 
325
 
 
326
    c->apply_window_int16 = ff_apply_window_int16_neon;
327
327
}