Christophe Gisquet
b6293e2798
fmtconvert: Explicitly use int32_t instead of int
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-17 11:02:47 +03:00
Luca Barbato
2b379a9251
mlpdsp: x86: Respect cpuflags
2013-07-12 04:34:49 +02:00
Jason Garrett-Glaser
d222f6e39e
cabac: x86 version of get_cabac_bypass
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-07-04 16:06:10 +02:00
Diego Biurrun
186599ffe0
build: cosmetics: Place unconditional before conditional OBJS lines
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-05-30 02:17:31 +03:00
Diego Biurrun
004b81c465
mpegvideo: Remove commented-out PARANOID debug cruft
2013-05-15 23:53:42 +02:00
Diego Biurrun
1399931d07
x86: dsputil: Rename dsputil_mmx.h --> dsputil_x86.h
...
The header is not (anymore) MMX-specific.
2013-05-12 22:28:07 +02:00
Diego Biurrun
245b76a108
x86: dsputil: Split inline assembly from init code
...
Also remove some pointless comments.
2013-05-12 22:28:07 +02:00
Diego Biurrun
46bb456853
x86: dsputil: Refactor pixels16 wrapper functions with a macro
2013-05-12 22:28:07 +02:00
Diego Biurrun
f54b55058a
configure: Rename cmov processor capability to i686
...
The goal is to make the capapility slightly more general and have it
cover the availability of the nopl instruction in addition to cmov.
2013-05-12 21:23:38 +02:00
Christophe Gisquet
2c299d4165
x86: sbrdsp: implement SSE2 qmf_pre_shuffle
...
From 253 to 51 cycles on Arrandale and Win64.
44 cycles on SandyBridge.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-05-10 09:31:27 +02:00
Diego Biurrun
f243bf7aa2
x86: dsputil: Remove unused argument from QPEL_OP macro
2013-05-08 18:18:58 +02:00
Diego Biurrun
3d40c1ee74
x86: dsputil: Move TRANSPOSE4 macro to the only place it is used
2013-05-08 18:18:23 +02:00
Diego Biurrun
71469f3b63
x86: dsputil: Move constant declarations into separate header
2013-05-08 18:18:23 +02:00
Diego Biurrun
ed880050ed
x86: dsputil: Group all assembly constants together in constants.c
2013-05-08 01:04:04 +02:00
Diego Biurrun
8761466760
x86: dsputil: Move ff_pd assembly constants to the only place they are used
2013-05-08 01:04:04 +02:00
Diego Biurrun
1b343cedd7
x86: dsputil: Remove unused ff_pb_3F constant
2013-05-07 18:03:35 +02:00
Diego Biurrun
3334cbec0a
x86: dsputil: Remove unused MOVQ_BONE macro
2013-05-07 18:03:35 +02:00
Diego Biurrun
63bac48f73
x86: dsputil: Move rv40-specific functions where they belong
2013-05-07 18:03:35 +02:00
Diego Biurrun
92f8e06ecb
x86: dsputil hpeldsp: Move shared template functions into separate object
2013-05-07 18:03:34 +02:00
Diego Biurrun
7edaf4edb5
x86: rnd_template: Eliminate pointless OP_AVG macro indirection
2013-05-07 18:03:34 +02:00
Diego Biurrun
110796739a
x86: hpeldsp: Move avg_pixels8_x2_mmx() out of hpeldsp_rnd_template.c
...
The function is only instantiated once, so there is no point
in keeping it in a template file.
2013-05-06 11:02:08 +02:00
Diego Biurrun
dc1b328d0d
x86: hpeldsp: Only compile MMX hpeldsp code if MMX is enabled
2013-05-06 11:02:08 +02:00
Diego Biurrun
9e5e76ef9e
x86: More specific ifdefs for dsputil/hpeldsp init functions
2013-05-06 11:02:07 +02:00
Diego Biurrun
6fee1b90ce
avcodec: Add av_cold attributes to init functions missing them
2013-05-04 21:09:45 +02:00
Diego Biurrun
a5f8873620
silly typo fixes
2013-05-03 18:26:12 +02:00
Christophe Gisquet
5a97469a4f
x86: sbrdsp: Implement SSE2 qmf_deint_bfly
...
Sandybridge: 47 cycles
Having a loop counter is a 7 cycle gain.
Unrolling is another 7 cycle gain.
Working in reverse scan is another 6 cycles.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-05-03 18:23:14 +02:00
Diego Biurrun
bf7c3c6b15
x86: dsputil: Move cavs and vc1-specific functions where they belong
2013-05-02 11:45:37 +02:00
Diego Biurrun
9328062321
x86: dsputil: Move avg_pixels16_mmx() out of rnd_template.c
...
The function does not do any rounding, so there is no point in
keeping it in a round template file.
2013-05-02 11:45:37 +02:00
Diego Biurrun
9c112a6158
x86: dsputil: Move avg_pixels8_mmx() out of rnd_template.c
...
The function is only instantiated once, so there is no point
in keeping it in a template file.
2013-05-02 11:45:37 +02:00
Diego Biurrun
9b3a04d306
x86: Move duplicated put_pixels{8|16}_mmx functions into their own file
2013-05-02 11:16:45 +02:00
Diego Biurrun
f2e9d44a57
x86: Drop unnecessary ff_ name prefixes from static functions
2013-04-30 16:02:03 +02:00
Diego Biurrun
643e433bf7
mpegaudiosp: More consistent names for ppc/x86 optimization files
2013-04-30 12:19:43 +02:00
Diego Biurrun
97c56ad796
x86: dsputil: Remove a set of pointless #ifs around function declarations
2013-04-30 01:42:32 +02:00
Diego Biurrun
85f2f82af6
x86: dsputil: cosmetics: Group ff_{avg|put}_pixels16_mmxext() declarations
2013-04-30 01:41:05 +02:00
Diego Biurrun
20784aa678
x86: hpeldsp: Remove unused macro definitions
2013-04-29 15:57:00 +02:00
Diego Biurrun
7c00e9d8ae
x86: ac3dsp: Remove 3dnow version of ff_ac3_extract_exponents
...
The function requires increasing the fuzz factor for the ac3/eac3 encode
tests and even so makes fate fail. It only provides a slight encoding
speedup for legacy CPUs that do not support SS2. Thus its benefit is not
worth the trouble it creates and fixing it would be a waste of time.
2013-04-26 21:06:52 +02:00
Martin Storsjö
74685f6783
x86: Rename dsputil_rnd_template.c to rnd_template.c
...
This makes it less confusing when this template is shared both by
dsputil and by hpeldsp.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-25 23:03:09 +03:00
Martin Storsjö
486f76f029
x86: Get rid of duplication between *_rnd_template.c
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-23 23:30:17 +03:00
Martin Storsjö
6a8561dbd7
x86: Factorize duplicated inline assembly snippets
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-04-23 15:07:31 +02:00
Diego Biurrun
c1ad70c3cb
x86: Move some conditional code around to avoid unused variable warnings
2013-04-22 17:50:02 +02:00
Diego Biurrun
b4ad7c54c8
x86: cavs: Refactor duplicate dspfunc macro
2013-04-22 12:05:09 +02:00
Diego Biurrun
78fa0bd0f7
x86: cavs: Put mmx-specific code into its own init function
...
Before, this code was labeled as mmxext and enabled both for the
3dnow and the mmxext case.
2013-04-22 10:42:50 +02:00
Diego Biurrun
311a592dfc
x86: Remove some duplicate function declarations
2013-04-22 02:29:57 +02:00
Martin Storsjö
b71a0507b0
x86: Remove unused inline asm instruction defines
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-20 00:44:54 +03:00
Ronald S. Bultje
8db00081a3
x86: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:53 +03:00
Ronald S. Bultje
015821229f
vp3: Use full transpose for all IDCTs
...
This way, the special IDCT permutations are no longer needed. This
is similar to how H264 does it, and removes the dsputil dependency
imposed by the scantable code.
Also remove the unused type == 0 cases from the plain C version
of the idct.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:32:05 +03:00
Ronald S. Bultje
c46819f229
x86: Move constants to the only place where they are used
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:17:39 +03:00
Diego Biurrun
a3cb865310
x86: dsputil: Move some ifdefs to avoid unused variable warnings
2013-04-12 09:36:47 +02:00
Diego Biurrun
2004c7c8f7
x86: dsputil: cosmetics: Remove two pointless variable indirections
2013-04-12 09:36:47 +02:00
Diego Biurrun
c51a3a5bd9
x86: dsputil: Refactor some ff_{avg|put}_pixels function declarations
2013-04-12 09:36:46 +02:00
Diego Biurrun
e027032fc6
x86: dsputil: ff_h263_*_loop_filter declarations to a more suitable place
2013-04-12 09:36:46 +02:00
Diego Biurrun
a89c05500f
x86: h264qpel: int --> ptrdiff_t for some line_size parameters
2013-04-12 09:30:12 +02:00
Diego Biurrun
ac9362c5d9
Move misplaced file author information where it belongs
2013-04-11 02:42:11 +02:00
Ronald S. Bultje
b93b27edb0
dsputil: Make dsputil selectable
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:04:05 +03:00
Ronald S. Bultje
62844c3fd6
h264: Integrate clear_blocks calls with IDCT
...
The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700
to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb
(in the decode_slice loop) goes from 1759 to 1733 cycles on the clip
tested (cathedral), i.e. almost 30 cycles per mb faster.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:03:06 +03:00
Ronald S. Bultje
610b18e2e3
x86: qpel: Move fullpel and l2 functions to a separate file
...
This way, they can be shared between mpeg4qpel and h264qpel without
requiring either one to be compiled unconditionally.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Christophe Gisquet
f4b0d12f5b
x86: sbrdsp: Implement SSE neg_odd_64
...
Timing on Arrandale:
C SSE
Win32: 57 44
Win64: 47 38
Unrolling and not storing mask both save some cycles.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-04-05 22:47:04 +02:00
Diego Biurrun
b6649ab503
cosmetics: Remove unnecessary extern keywords from function declarations
2013-03-27 14:21:45 +01:00
Martin Storsjö
a2acadd058
x86: vc1dsp: Fix indentation
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-26 15:49:42 +02:00
Janne Grunau
e5c2794a71
x86: consistently use unaligned movs in the unaligned bswap
...
Fixes fate errors in asv1, ffvhuff and huffyuv on x86_32.
2013-03-25 12:11:11 +01:00
Martin Storsjö
285ff14413
x86: Change a missed occurrance of int to ptrdiff_t for strides
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-24 12:06:53 +02:00
Martin Storsjö
352dbdb96c
x86: Remove win64 xmm clobbering wrappers for the now removed avcodec_encode_video function
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-23 23:37:27 +02:00
Luca Barbato
a8b6015823
dsputil: convert remaining functions to use ptrdiff_t strides
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-12 18:26:42 +01:00
Diego Biurrun
e8c52271c4
Revert "Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm."
...
This reverts commit f90ff772e7
.
The code should be put back in h264_qpel_8bit.asm, but unfortunately
it is unconditionally used from dsputil_mmx.c since 71155d7
.
2013-02-28 21:50:02 +01:00
Diego Biurrun
ebc701993f
x86: dsputil: Drop some unused function #defines
2013-02-26 23:36:24 +01:00
Diego Biurrun
845cfc92f9
x86: dsputil: Drop aliasing of ff_put_pixels8_mmx to ff_put_pixels8_mmxext
...
The external assembly function uses mmxext instructions and should not be
masqueraded as an mmx-only function. Instead, use the mmx-only inline
assembly function.
2013-02-26 23:36:24 +01:00
Diego Biurrun
096cc11ec1
x86: vc1dsp: Move ff_avg_vc1_mspel_mc00_mmxext out of dsputil_mmx.c
2013-02-26 23:36:24 +01:00
Martin Storsjö
31a23a0dc6
x86: dsputil_mmx: Remove leftover inline assembly fragments
...
These became unused in 71155d7b
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-27 00:17:05 +02:00
Diego Biurrun
c242bbd8b6
Remove unnecessary dsputil.h #includes
2013-02-26 00:51:34 +01:00
Matt Wolenetz
311443f6c7
x86: h264: Don't use redzone in AVX h264_deblock on Win64
...
This fixes crashes in chromium on win64 on machines with AVX
(crashes that apparently aren't triggered by fate).
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-21 15:02:16 +02:00
Ronald S. Bultje
e5ffffe48d
h264chroma: Remove duplicate 9/10 bit functions
...
These functions do the same thing in 16 bit space and don't need
any depth specific clipping.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:19 +02:00
Daniel Kang
9acd23d655
x86: dsputil: Fix h263 loop filter link error in some configurations
...
This was caused by unconditionally referencing a conditionally compiled
table. Now the code is also compiled conditionally.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-18 17:09:00 +01:00
Daniel Kang
7a03145ed7
x86: dsputil: int --> ptrdiff_t for ff_put_pixels16_mmxext line_size param
...
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-18 15:23:03 +01:00
Daniel Kang
b3f2a3fe3f
x86: mpeg4qpel: Make movsxifnidn do the right thing
...
Fixes an instruction that does nothing by changing the
source to dword.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-11 20:17:15 +01:00
Diego Biurrun
5d3d39c72e
dsputil: Move fdct function declarations to dct.h
2013-02-09 00:08:28 +01:00
Diego Biurrun
218aefce44
dsputil: Move LOCAL_ALIGNED macros to libavutil
2013-02-08 23:13:37 +01:00
Daniel Kang
a1d3673034
dsputil: x86: Fix compile error
...
Accidentally prefixed ff_ with cextern.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-07 11:06:16 +02:00
Daniel Kang
659d4ba5af
dsputil: x86: Convert h263 loop filter to yasm
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-06 15:38:27 -08:00
Martin Storsjö
a846dccb29
h264chroma: x86: Fix building with yasm disabled
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-06 17:05:33 +02:00
Diego Biurrun
82bd04b170
rv34: Drop now unnecessary dsputil dependencies
2013-02-06 11:30:54 +01:00
Diego Biurrun
79dad2a932
dsputil: Separate h264chroma
2013-02-06 11:30:53 +01:00
Diego Biurrun
c9f933b5b6
Add av_cold attributes to arch-specific init functions
2013-02-05 17:01:05 +01:00
Diego Biurrun
25841dfe80
Use ptrdiff_t instead of int for {avg, put}_pixels line_size parameter.
...
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
2013-02-05 12:59:12 +01:00
Diego Biurrun
52acd79165
x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp
2013-01-31 11:19:23 +01:00
Diego Biurrun
c59211b437
x86: Simplify some arch conditionals
2013-01-29 00:10:53 +01:00
Michael Niedermayer
834e9fb056
x86: hpeldsp: Fix a typo, use the right register
...
This makes the code actually work.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-28 12:49:37 +02:00
Daniel Kang
05b0998f51
dsputil: Fix error by not using redzone and register name
...
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-28 07:23:20 +01:00
Daniel Kang
96753bd00d
dsputil: x86: Correct the number of registers used in put_no_rnd_pixels16_l2
...
put_no_rnd_pixels16_l2 allocated 5 instead of 6 registers.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 08:41:48 +01:00
Daniel Kang
0eedf5d74d
dsputil: add missing HAVE_YASM guard
...
Fix compile error under
"--disable-optimizations --disable-yasm --disable-inline-asm"
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 08:41:46 +01:00
Daniel Kang
71155d7b41
dsputil: x86: Convert mpeg4 qpel and dsputil avg to yasm
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-27 06:45:31 +01:00
Ronald S. Bultje
f90ff772e7
Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm.
2013-01-26 20:35:42 -08:00
Diego Biurrun
033a86f9bb
x86: h264qpel: Move stray comment to the right spot and clarify it
2013-01-26 11:19:22 +01:00
Janne Grunau
c5c2060cf5
x86: h264qpel: add cpu flag checks for init function
...
The code was copied from per cpu extension init function so the checks
for supported extensions was overlooked.
2013-01-24 19:03:59 +01:00
Mans Rullgard
e9d817351b
dsputil: Separate h264 qpel
...
The sh4 optimizations are removed, because the code is
100% identical to the C code, so it is unlikely to
provide any real practical benefit.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-24 10:44:43 +01:00
Ronald S. Bultje
baf35bb4bc
dsputil: remove one array dimension from avg_no_rnd_pixels_tab.
2013-01-22 18:41:36 -08:00
Ronald S. Bultje
32ff643228
dsputil: remove avg_no_rnd_pixels8.
...
This is never used.
2013-01-22 18:41:36 -08:00
Diego Biurrun
88bd7fdc82
Drop DCTELEM typedef
...
It does not help as an abstraction and adds dsputil dependencies.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2013-01-22 18:32:56 -08:00
Ronald S. Bultje
2e4bb99f4d
vorbisdsp: convert x86 simd functions from inline asm to yasm.
2013-01-22 18:02:24 -08:00
Ronald S. Bultje
d56668bd80
floatdsp: move scalarproduct_float from dsputil to avfloatdsp.
...
This makes the aac decoder and all voice codecs independent of dsputil.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
42d3246948
floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.
...
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent
of this patch, wmaprodec also does not depend on dsputil, so I removed
it from there also.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
55aa03b9f8
floatdsp: move vector_fmul_add from dsputil to avfloatdsp.
2013-01-22 11:55:42 -08:00
Diego Biurrun
4f56e773fe
x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
...
CC: libav-stable@libav.org
2013-01-21 23:54:32 +01:00
Daniel Kang
9f00b1cbab
dsputilenc: x86: Convert pixel inline asm to yasm
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-21 09:54:10 +01:00
Ronald S. Bultje
1768e43ceb
vorbisdsp: change block_size type from int to intptr_t.
...
This saves one instruction in the x86-64 assembly.
2013-01-20 22:26:42 -08:00
Ronald S. Bultje
8a4f26206d
dsputil: remove butterflies_float_interleave.
...
The function is unused.
2013-01-20 21:57:35 -08:00
Mans Rullgard
0b711ca3f3
dsputil: drop non-compliant "fast" qpel mc functions
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-20 14:50:42 +01:00
Ronald S. Bultje
fef906c77c
Move vorbis_inverse_coupling from dsputil to vorbisdspcontext.
...
Conveniently (together with Justin's earlier patches), this makes
our vorbis decoder entirely independent of dsputil.
2013-01-19 22:21:10 -08:00
Ronald S. Bultje
aeaf268e52
vp3: integrate clear_blocks with idct of previous block.
...
This is identical to what e.g. vp8 does, and prevents the function call
overhead (plus dependency on dsputil for this particular function).
Arm asm updated by Janne Grunau <janne-libav@jannau.net>.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2013-01-19 22:04:55 -08:00
Diego Biurrun
822b0728f0
x86: dsputil: Drop some unused macro definitions
2013-01-18 22:24:58 +01:00
Justin Ruggles
e034cc6c60
lavc: Move vector_fmul_window to AVFloatDSPContext
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-16 10:45:45 +01:00
Diego Biurrun
dae1d507af
x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags
2013-01-15 17:29:43 +01:00
Diego Biurrun
51969a652c
x86: ABS2: port to cpuflags
2013-01-14 21:56:55 +01:00
Diego Biurrun
a0c5917f86
Drop Snow codec
...
Snow is a toy codec with no real-world use and horrible code.
2013-01-06 16:30:02 +01:00
Christophe Gisquet
4f50646697
x86: sbrdsp: Implement SSE qmf_post_shuffle
...
255 to 174 cycles on Arrandale / Win64. Unrolling yields no gain.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-06 13:57:01 +01:00
Christophe Gisquet
44a0036d10
x86: sbrdsp: Implement SSE sum64x5
...
698 to 174 cycles on Arrandale. Unrolling is a 6 cycles gain.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-06 13:57:01 +01:00
Diego Biurrun
5b4dfbffc2
x86: ABS1: port to cpuflags
2013-01-06 13:57:01 +01:00
Ronald S. Bultje
8c53d39e7f
lavc: introduce VideoDSPContext
...
Move some functions from dsputil. The idea is that videodsp contains
functions that are useful for a large and varied set of video decoders.
Currently, it contains emulated_edge_mc() and prefetch().
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-20 13:40:45 +01:00
Ronald S. Bultje
6f40e9f070
x86inc: support stack mem allocation and re-alignment in PROLOGUE
...
Use this in VP8/H264-8bit loopfilter functions so they can be used if
there is no aligned stack (e.g. MSVC 32bit or ICC 10.x).
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-12 05:23:46 +01:00
Mans Rullgard
30b3916425
ac3dec: make downmix() take array of pointers to channel data
2012-12-09 15:52:01 +00:00
Christophe Gisquet
2aef3d66c9
SBR DSP x86: implement SSE sbr_hf_gen
...
Start and end index are multiple of 2, therefore guaranteeing aligned access.
Also, this allows to generate 4 floats per loop, keeping the alignment all
along.
Timing:
- 32 bits: 326c -> 172c
- 64 bits: 323c -> 156c
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-12-07 11:04:26 +01:00
Diego Biurrun
9b15c0a9b3
x86: dsputilenc: port to cpuflags
2012-11-28 16:05:44 +01:00
Diego Biurrun
89145fbbfe
x86: h264dsp: Fix linking with yasm and optimizations disabled
...
Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.
2012-11-28 14:45:28 +01:00
Diego Biurrun
2e89aeed65
x86: h264_idct: port to cpuflags
2012-11-28 00:28:09 +01:00
Diego Biurrun
28e1cf19aa
x86: h264_weight: port to cpuflags
2012-11-27 21:10:38 +01:00
Diego Biurrun
7ee4071362
x86: fix build without inline asm
...
The qpel functions referenced here are not related to h264 and should
thus never have been under CONFIG_H264QPEL.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-26 01:50:47 +01:00
Justin Ruggles
2d3993ce8c
x86: h264 qpel: use the correct number of utilized xmm regs in cglobal
...
Fixes xmm register clobbering on win64.
2012-11-25 18:48:43 -05:00
Daniel Kang
610e00b359
x86: h264: Convert 8-bit QPEL inline assembly to YASM
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-25 20:38:35 +01:00
Daniel Kang
ad01ba6cea
x86: h264: Remove 3dnow QPEL code
...
The only CPUs that have 3dnow and don't have mmxext are 12 years old.
Moreover, AMD has dropped 3dnow extensions from newer CPUs.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-25 20:32:55 +01:00
Diego Biurrun
28c8e288fa
x86: h264_chromamc: port to cpuflags
2012-11-25 17:25:10 +01:00
Diego Biurrun
89923fce70
x86: h264_intrapred: Fix C function names in comments
...
Function names changed after switching to declaration with
PRED4x4/8x8/8x8L/16x16 macros in the C code.
2012-11-18 18:34:05 +01:00
Diego Biurrun
87af05c575
x86: SPLATD: port to cpuflags
2012-11-18 18:34:05 +01:00
Diego Biurrun
8c3849bc76
x86: dsputil: port to cpuflags
2012-11-16 10:38:23 +01:00
Diego Biurrun
26301caaa1
x86: mmx2 ---> mmxext in asm constructs
2012-11-14 00:58:51 +01:00
Diego Biurrun
5e9c6ef8f3
x86: h264_weight_10bit: port to cpuflags
2012-11-13 19:07:09 +01:00
Diego Biurrun
2b479bcab0
build: Drop AVX assembly ifdefs
...
An assembler able to cope with AVX instructions is now required.
2012-11-11 20:43:28 +01:00
Diego Biurrun
6cd796049d
x86: h264_qpel_10bit: drop unused parameter from MC10/MC20/MC30 macros
2012-11-10 14:49:09 +01:00
Diego Biurrun
4b60fac419
x86: PALIGNR: port to cpuflags
2012-11-09 21:31:31 +01:00
Diego Biurrun
4d1f69f244
x86: h264_qpel_10bit: port to cpuflags
2012-11-09 21:17:05 +01:00
Diego Biurrun
6ca60d4ddd
x86: h264_intrapred: port to cpuflags
2012-11-08 18:05:23 +01:00
Diego Biurrun
930e26a3ea
x86: h264qpel: Only define mmxext QPEL functions if H264QPEL is enabled
...
This fixes compilation with --disable-everything and components enabled.
2012-11-05 20:48:43 +01:00
Diego Biurrun
dbb37e7711
x86: PABSW: port to cpuflags
2012-11-05 14:51:10 +01:00
Diego Biurrun
6c104826bd
x86: vc1dsp: port to cpuflags
2012-11-05 14:51:10 +01:00
Diego Biurrun
0a7a94f2e5
x86: Refactor PSWAPD fallback implementations and port to cpuflags
2012-11-02 17:05:29 +01:00
Diego Biurrun
26f01bd106
x86: PMINUB: port to cpuflags
2012-11-02 15:38:15 +01:00
Diego Biurrun
9ce02e14f0
x86: ac3dsp: port to cpuflags
2012-11-02 15:24:50 +01:00
Diego Biurrun
c37322e68c
x86: Move optimization suffix to end of function names
...
This simplifies cpuflags porting.
2012-10-31 18:21:55 +01:00
Diego Biurrun
fa8fcab1e0
x86: h264_chromamc_10bit: drop pointless PAVG %define
...
It is only used in one place so there is no need for the abstraction.
2012-10-31 18:21:55 +01:00
Diego Biurrun
d8eda37080
x86: mmx2 ---> mmxext in function names
2012-10-31 17:53:57 +01:00
Diego Biurrun
be2c456e96
x86: fmtconvert: Refactor cvtps2pi emulation through cpuflags
2012-10-31 01:05:03 +01:00
Diego Biurrun
be923ed659
x86: fmtconvert: port to cpuflags
2012-10-31 01:05:03 +01:00
Diego Biurrun
588fafe7f3
x86: MMX2 ---> MMXEXT in macro names
2012-10-31 01:04:55 +01:00
Diego Biurrun
652f518594
x86: mmx2 ---> mmxext in comments and messages
2012-10-31 00:37:42 +01:00
Diego Biurrun
04581c8c77
x86: yasm: Use complete source path for macro helper %includes
...
This is more consistent with the way we handle C #includes and
it simplifies the build system.
2012-10-31 00:37:42 +01:00
Diego Biurrun
6860b4081d
x86: include x86inc.asm in x86util.asm
...
This is necessary to allow refactoring some x86util macros with cpuflags.
2012-10-31 00:37:42 +01:00
Ronald S. Bultje
95c89da36e
Use ptrdiff_t instead of int for intra pred "stride" function parameter.
...
This way, SIMD-optimized functions don't have to sign-extend their
stride argument manually to be able to do pointer arithmetic.
2012-10-29 17:49:13 -07:00
Ronald S. Bultje
bad8e33dc9
x86: use PRED4x4/8x8/8x8L/16x16 macros to declare intrapred prototypes.
2012-10-29 17:48:23 -07:00
Ronald S. Bultje
c285edd06e
Remove usage of INIT_AVX in h264_intrapred_10bit.asm.
...
Replace INIT_AVX by INIT_XMM avx. Port the whole file to use cpuflag
based function declarations. Remove (now unused) cputype argument in
function declaration macros. Change function prototypes to have mmx2
instead of mmxext as suffix, since that's required by cpuflags.
2012-10-29 14:10:51 -07:00
Luca Barbato
2d6caade22
dsputil: split out mlp dsp function
2012-10-11 12:01:08 +02:00
Janne Grunau
7e522859fc
x86: vc1: call ff_vc1dsp_init_x86() under if (ARCH_X86)
2012-10-08 11:54:05 +02:00
Janne Grunau
cb36febcbc
x86: cavs: call ff_cavsdsp_init_x86() under if (ARCH_X86)
2012-10-08 11:54:05 +02:00
Janne Grunau
f101eab1be
x86: call most of the x86 dsp init functions under if (ARCH_X86)
...
Rename the called dsp init functions to *_init_x86.
2012-10-08 11:54:05 +02:00
Diego Biurrun
e4cbf7529b
Give all anonymously typedeffed structs in headers a name
...
Anonymous structs cannot be forward declared and have no benefit.
2012-10-06 09:27:11 +02:00
Mans Rullgard
bcf07a15a0
x86: dsputil: kill VLA in gmc_mmx()
...
Instead of using an evil VLA, fall back to C version when edge
emulation is needed. MPEG4 GMC is a rarely used fringe feature
so the speed loss is an acceptable cost for safer code.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-05 22:33:32 +01:00
Diego Biurrun
9c6cf7f2c9
avcodec: Drop silly and/or broken printf debug output
2012-10-01 10:24:28 +02:00
Michael Niedermayer
791b5954bc
dsputil_mmx: fix reading prior of the src array in sub_hfyu_median_prediction()
...
This should fix the utvideoenc valgrind failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 12:25:07 -04:00
Diego Biurrun
58139e141b
x86: dsputil: Move Xvid IDCT put/add functions to a more suitable place
2012-09-14 01:59:47 +02:00
Diego Biurrun
2017f0fdb7
x86: Remove some leftover declarations for non-existent functions
2012-09-13 21:38:47 +02:00
Martin Storsjö
91ff4e83ca
x86: ac3dsp: Only refer to the ac3_downmix_sse symbol if it has been declared
...
This fixes building without inline assembly.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-13 13:51:52 +03:00
Mans Rullgard
97cb9236cf
ac3: move ac3_downmix() from dsputil to ac3dsp
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-12 23:39:50 +01:00
Diego Biurrun
1648a508fa
x86: dsputil: Move specific optimization settings out of global init function
...
They belong in the init functions specific to each CPU capability.
2012-09-11 10:12:17 +02:00
Diego Biurrun
a84edbacaf
x86: dsputil: Only compile motion_est code when encoders are enabled
2012-09-10 08:31:47 +02:00
Diego Biurrun
e0c6cce447
x86: Replace checks for CPU extensions and flags by convenience macros
...
This separates code relying on inline from that relying on external
assembly and fixes instances where the coalesced check was incorrect.
2012-09-08 18:18:34 +02:00
Hendrik Leppkes
fb4e983e0c
x86: mlpdsp: mlp_filter_channel_x86 requires inline asm
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-08 15:41:44 +03:00
Diego Biurrun
1169f0d0af
x86: more specific checks for availability of required assembly capabilities
2012-09-07 18:16:04 +02:00
Diego Biurrun
8cb7ed5562
x86: avcodec: Drop silly "_mmx" suffix from dsputil template names
2012-09-07 13:50:52 +02:00
Mans Rullgard
6efb698883
cavsdsp: set idct permutation independently of dsputil
...
CAVS uses its own idct so using dsputil to set the permutation
is fragile.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-07 11:42:35 +01:00
Mans Rullgard
5fe64d88f6
x86: allow using add_hfyu_median_prediction_cmov on any cpu with cmov
...
For some reason add_hfyu_median_prediction_cmov is only selected
on 3Dnow-capable CPUs, even though it uses no 3Dnow instructions.
This patch allows it to be selected on any cpu with cmov with the
possibility of being overridden by the mmxext version.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-07 11:42:35 +01:00
Diego Biurrun
ef6ba1f237
x86: dsputil: Do not redundantly check for CPU caps before calling init funcs
...
The init functions check for CPU capabilities on their own already.
2012-09-06 09:05:52 +02:00
Hendrik Leppkes
d914ea6fd8
x86: vp56: cmov version of vp56_rac_get_prob requires inline asm
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-05 21:30:46 +02:00
Diego Biurrun
a84ac7a860
x86: h264dsp: drop some unnecessary ifdefs around prototype declarations
2012-09-04 01:44:59 +02:00
Diego Biurrun
17337f54c0
x86: Split inline and external assembly #ifdefs
2012-08-31 01:53:25 +02:00
Diego Biurrun
ec36aa6944
x86: Fix linking with some or all of yasm, mmx, optimizations disabled
...
Some optimized template functions reference optimized symbols, so they
must be explicitly disabled when those symbols are unavailable.
2012-08-30 19:37:32 +02:00
Diego Biurrun
a886b279a0
x86: cosmetics: Comment some #endifs for better readability
2012-08-30 18:50:33 +02:00
Diego Biurrun
2e6f93a284
x86: Always compile files with functions that are called unconditionally
2012-08-29 00:27:06 +02:00
Diego Biurrun
2f2aa2e542
x86: mpegvideoenc: fix linking with --disable-mmx
...
The optimized dct_quantize template functions reference optimized
fdct symbols, so these functions must only be enabled if the relevant
optimizations have been enabled by configure.
2012-08-29 00:26:56 +02:00
Diego Biurrun
d39791bf39
x86: mpegvideoenc: Do not abuse HAVE_ variables for template instantiation
...
This avoids trouble if HAVE_ variables are used elsewhere in the file.
2012-08-29 00:14:52 +02:00
Diego Biurrun
bcc45d6348
x86: avcodec: Drop silly "_mmx" suffixes from filenames
2012-08-28 18:37:34 +02:00
Diego Biurrun
efbd04c332
x86: avcodec: Drop silly "_sse" suffixes from filenames
2012-08-28 18:37:33 +02:00
Diego Biurrun
3f02c533f3
build: fft: x86: Drop unused YASM-OBJS-FFT- variable
2012-08-27 03:10:58 +02:00
Mans Rullgard
db70730291
x86: fft: remove unused fft_dispatch* functions
...
These functions are not used since the yasm conversion.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-25 23:58:26 +01:00
Diego Biurrun
dc40285427
x86: mpegvideo: more sensible names for optimization file and init function
2012-08-24 02:23:16 +02:00
Diego Biurrun
d211547ddd
x86: mpegvideoenc: Split optimizations off into a separate file
2012-08-24 02:23:16 +02:00
Diego Biurrun
26ce9aec03
dnxhdenc: x86: more sensible names for optimization file and init function
2012-08-24 02:23:15 +02:00
Diego Biurrun
6fa488678f
build: x86: Only compile mpegvideo optimizations when necessary
2012-08-22 01:06:33 +02:00
Diego Biurrun
6961bdface
x86: avcodec: Consistently name all init files
2012-08-16 11:05:38 +02:00
Martin Storsjö
1d9c2dc89a
Don't include common.h from avutil.h
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 22:32:06 +03:00
Diego Biurrun
29cfdd3767
x86: avcodec: Appropriately name files containing only init functions
2012-08-15 03:24:08 +02:00
Diego Biurrun
be12958937
mpegvideo_mmx_template: drop some commented-out cruft
2012-08-15 03:24:07 +02:00
Mans Rullgard
8ec0204ee4
x86: cabac: allow building with suncc
...
This fixes two issues preventing suncc from building this code.
The undocumented 'a' operand modifier, causing gcc to omit a $ in
front of immediate operands (as required in addresses), is not
supported by suncc. Luckily, the also undocumented 'c' modifer
has the same effect and is supported.
On some asm statements with a large number of operands, suncc for no
obvious reason fails to correctly substitute some of the operands.
Fortunately, some of the operands in these statements are plain
numbers which can be inserted directly into the code block instead
of passed as operands.
With these changes, the code builds correctly with both gcc and
suncc.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Mans Rullgard
c8252e80eb
x86: mlpdsp: avoid taking address of void
...
This code contains a C array of addresses of labels defined in
inline asm. To do this, the names must be declared as external
in C. The declared type does not matter since only the address is
used, and for some reason, the author of the code used the 'void'
type despite taking the address of a void expression being invalid.
Changing the type to char, a reasonable choice since the alignment
of the code labels cannot be known or guaranteed, eliminates gcc
warnings and allows building with suncc.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00