| Branch: | Revision:

ffmpeg / libavcodec / ppc @ fe2ff6d2

# Date Author Comment
fe2ff6d2 02/04/2011 02:08 AM Justin Ruggles

Separate format conversion DSP functions from DSPContext.

This will be beneficial for use with the audio conversion API without
requiring it to depend on all of dsputil.

Signed-off-by: Mans Rullgard <>
(cherry picked from commit c73d99e672329c8f2df290736ffc474c360ac4ae)

a8ae4e0e 02/02/2011 02:40 AM Justin Ruggles

Remove unneeded add bias from 3 functions.


Signed-off-by: Mans Rullgard <>
(cherry picked from commit 80ba1ddb58b5923b9f36a6acd542affc4ca722eb)

bc0a603c 01/30/2011 02:41 AM Vitor Sessak

Fix overread in altivec DSP function sad16

Signed-off-by: Mans Rullgard <>
(cherry picked from commit 3af1fe829ee6db5eafe261947e74b8516ffe5188)

015f9f1a 01/23/2011 06:32 PM Justin Ruggles

Change DSPContext.vector_fmul() from dst=dst*src to dest=src0*src1.

Signed-off-by: Mans Rullgard <>
(cherry picked from commit 6eabb0d3ad42b91c1b4c298718c29961f7c1653a)

2c3589bf 01/18/2011 08:32 PM Janne Grunau

consolidate .gitignore patters into a single file

Signed-off-by: Janne Grunau <>

348b8218 01/17/2011 02:50 PM Janne Grunau

convert svn:ignore properties to .gitignore files

Signed-off-by: Janne Grunau <>

c6c98d08 09/08/2010 03:07 PM Stefano Sabatini

Move mm_support() from libavcodec to libavutil, make it a public
function and rename it to av_get_cpu_flags().

Originally committed as revision 25076 to svn://

ccf22d3e 09/08/2010 10:02 AM Stefano Sabatini

Merge has_altivec() function into mm_support(), remove it and use
mm_support() instead.

Reduce complexity and simplify pending move to libavutil.

Originally committed as revision 25074 to svn://

7160bb71 09/04/2010 09:59 AM Stefano Sabatini

Rename FF_MM_ symbols related to CPU features flags as AV_CPU_FLAG_
symbols, and move them from libavcodec/avcodec.h to libavutil/cpu.h.

Originally committed as revision 25040 to svn://

c0ec9918 08/24/2010 05:47 PM Måns Rullgård

Remove global mm_flags variable

Originally committed as revision 24909 to svn://

1ee076b1 07/18/2010 08:06 PM Loren Merritt

more credits to D. J. Bernstein for fft

Originally committed as revision 24308 to svn://

a46b84d1 07/04/2010 06:33 PM Måns Rullgård

PPC: convert Altivec FFT to pure assembler

On PPC a leaf function has a 288-byte red zone below the stack pointer,
sparing these functions the chore of setting up a full stack frame.

When a function call is disguised within an inline asm block, the
compiler might not adjust the stack pointer as required before a...

deca86ea 07/04/2010 06:33 PM Måns Rullgård

PPC: gas-preprocessor handles m[ft]spr shorthands

Originally committed as revision 24043 to svn://

fe3d2e4b 07/04/2010 06:33 PM Måns Rullgård

PPC: add some asm support macros

Originally committed as revision 24042 to svn://

a075902f 07/03/2010 06:36 PM Måns Rullgård

PPC: add _interleave versions of fft{4,6,16}_altivec

This removes the need for a post-swizzle with the small FFTs.

Originally committed as revision 24025 to svn://

9bbb5064 07/02/2010 12:20 AM Måns Rullgård

PPC: fix build on OSX without gas-preprocessor

Originally committed as revision 23962 to svn://

cf61994a 07/01/2010 11:21 PM Loren Merritt

PPC: Altivec IMDCT

Patch by Loren Merritt

Originally committed as revision 23959 to svn://

588d28ac 07/01/2010 11:21 PM Måns Rullgård

Remove vestiges of radix-2 FFT

Patch (mostly) by Loren Merritt

Originally committed as revision 23957 to svn://

bf7ba153 07/01/2010 11:21 PM Måns Rullgård

PPC: Altivec split-radix FFT

1.8x faster than altivec radix-2 on a G4
8% faster vorbis decoding

Patch (mostly) by Loren Merritt

Originally committed as revision 23956 to svn://

2f0c136e 07/01/2010 11:21 PM Måns Rullgård

Check whether IBM or Apple PPC assembler syntax is used

This checks which assembler syntax is supported and defines macros
for register names accordingly.

Originally committed as revision 23952 to svn://

060dd930 07/01/2010 09:04 PM Vitor Sessak

Altivec-optimized mp{1,2,3} windowing

Originally committed as revision 23943 to svn://

49bd8e4b 06/30/2010 03:38 PM Måns Rullgård

Fix grammar errors in documentation

Originally committed as revision 23904 to svn://

982fac73 06/29/2010 06:42 AM David Conrad

Altivec VP8 MC functions

Originally committed as revision 23884 to svn://

7bf4e9d7 06/29/2010 06:42 AM David Conrad

Altivec: Add helper function to load from a constant misalignment

Originally committed as revision 23883 to svn://

b3858964 06/27/2010 03:11 PM Eli Friedman

Add const to some pointer parameters.

Patch by Eli Friedman, eli D friedman A gmail

Originally committed as revision 23826 to svn://

2829ce4b 06/26/2010 10:23 PM Måns Rullgård

Remove PPC perf counter support

This functionality is better accessed through tools like oprofile.

Originally committed as revision 23808 to svn://

ba87f080 04/20/2010 02:45 PM Diego Biurrun

Remove explicit filename from Doxygen @file commands.

Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://

3bd74e92 03/16/2010 09:23 PM Måns Rullgård

Simplify arch-specific object file lists

Originally committed as revision 22570 to svn://

43f60eba 03/16/2010 09:22 PM Måns Rullgård

Move arch-specific makefile parts into $arch/Makefile

Originally committed as revision 22569 to svn://

4693b031 03/16/2010 01:17 AM Måns Rullgård

Move H264 dsputil functions into their own struct

This moves the H264-specific functions from DSPContext to the new
H264DSPContext. The code is made conditional on CONFIG_H264DSP
which is set by the codecs requiring it.

The qpel and chroma MC functions are not moved as these are used by...

b8178661 03/08/2010 03:12 PM Martin Storsjö

Move the local includes below the system includes

This fixes a compilation issue on OS X 10.4, where some system headers were
included implicitly through dsputil_altivec.h (with _POSIX_C_SOURCE defined),
and other system headers included later, with _POSIX_C_SOURCE undefined at...

ddb8c2c0 03/06/2010 10:37 PM Måns Rullgård

PPC: move prototypes to headers and make some functions static

Originally committed as revision 22267 to svn://

1429224b 03/06/2010 02:34 PM Måns Rullgård

Move FFT parts from dsputil.h to fft.h

Originally committed as revision 22235 to svn://

84dc2d8a 03/06/2010 02:24 PM Måns Rullgård

Remove DECLARE_ALIGNED_{8,16} macros

These macros are redundant. All uses are replaced with the generic
DECLARE_ALIGNED macro instead.

Originally committed as revision 22233 to svn://

c6727809 01/22/2010 03:25 AM Måns Rullgård

Move array specifiers outside DECLARE_ALIGNED() invocations

Originally committed as revision 21377 to svn://

b1159ad9 12/05/2009 03:09 PM Loren Merritt

refactor and optimize scalarproduct
29-105% faster apply_filter, 6-90% faster ape decoding on core2
(Any x86 other than core2 probably gets much less, since this is mostly due to ssse3 cachesplit avoidance and I haven't written the full gamut of other cachesplit modes.)...

35de5d24 09/27/2009 04:52 PM Måns Rullgård

cosmetics: fix indentation after previous commit

Originally committed as revision 20062 to svn://

952e8721 09/27/2009 04:51 PM Måns Rullgård

Drop unused args from vector_fmul_add_add, simpify code, and rename

The src3 and step arguments to vector_fmul_add_add() are always zero
and one, respectively. This removes these arguments from the function,
simplifies the code accordingly, and renames the function to better...

f4863213 09/15/2009 09:14 PM Måns Rullgård

Move per-arch fft init bits into the corresponding subdirs

Originally committed as revision 19864 to svn://

afe08a72 08/24/2009 09:42 PM Måns Rullgård

PPC: remove unnecessary alignment on local variables

Storing a single element from a vector where all elements have the same
value does not require an aligned destination. Which element is stored
depends on the alignment of the destination address, but since they all...

deb1b2b6 08/24/2009 10:59 AM Diego Biurrun

Add necessary #include for config.h.

Originally committed as revision 19692 to svn://

b662e839 08/24/2009 10:36 AM Måns Rullgård

PPC: simplify loading some values into altivec registers

Instead of filling a local array with the desired value and loading it,
load a single element and vec_splat() it to fill the vector.

Originally committed as revision 19691 to svn://

c7312933 08/23/2009 11:02 AM Måns Rullgård

Include required headers in {mips,ppc}/mathops.h

Originally committed as revision 19686 to svn://

9be6f0d2 07/29/2009 09:54 AM Diego Biurrun

Do not check for both CONFIG_VC1_DECODER and CONFIG_WMV3_DECODER,
the former depends upon the latter.

Originally committed as revision 19533 to svn://

99e5a9d1 07/22/2009 10:27 PM Diego Biurrun

Do not redundantly check for both CONFIG_THEORA_DECODER and CONFIG_VP3_DECODER.
The Theora decoder depends on the VP3 decoder.

Originally committed as revision 19492 to svn://

34d11b87 05/26/2009 05:00 AM Reimar Döffinger

Change HAVE_PPC64 to ARCH_PPC64.
As a side-effect this also gives it the correct value on e.g. PPC970FX-based
PPC64 systems, thus fixing "make test" (mp2/mp3 decoding).

Originally committed as revision 18953 to svn://

454403ba 05/25/2009 10:19 PM David Conrad

Altivec VP3 IDCT

Originally committed as revision 18949 to svn://

76499b9f 05/18/2009 08:21 AM Diego Biurrun

Remove useless casts of vec_ld() parameters.
Gets rid of 'cast discards qualifiers from pointer target type' warnings.

Originally committed as revision 18867 to svn://

014b7ecb 05/11/2009 02:41 AM Måns Rullgård

PPC: 32-bit asm for MAC64 and MLS64

GCC makes a mess of these operations, so give it a hand.

55% faster MP3 decoding on G4.

Originally committed as revision 18794 to svn://

f8c0692d 05/09/2009 12:26 PM Diego Biurrun

Add necessary header for CONFIG_RUNTIME_CPUDETECT preprocessor definition.

Originally committed as revision 18774 to svn://

3737dd1c 05/04/2009 05:31 PM Måns Rullgård

PPC: implement MULH in assembler

Left to its own devices, gcc calculates the full 64-bit product only to
discard the low 32 bits. This forces it to do the right thing.

20% faster MP3 decoding on G4.

Originally committed as revision 18737 to svn://

99cc7f8a 04/15/2009 06:23 AM David Conrad

Altivec version of avg_no_rnd_vc1_chroma_mc8

Originally committed as revision 18522 to svn://

c374691b 04/14/2009 11:55 PM David Conrad

Rename put_no_rnd_h264_chroma* to reflect its usage in VC1 only

Originally committed as revision 18517 to svn://

5137235e 04/12/2009 09:45 PM Diego Biurrun

Remove gcc_fixes.h. It only contains workarounds for unsupported gcc versions.

Originally committed as revision 18476 to svn://

788cca41 04/12/2009 09:42 PM Diego Biurrun

Remove AltiVec optimizations for Snow. They are hindering the development
of Snow, which is still in flux.

Originally committed as revision 18475 to svn://

7a709548 04/09/2009 11:54 AM Diego Biurrun

Remove unnecessary gcc_fixes.h #include.

Originally committed as revision 18384 to svn://

952f18ff 04/09/2009 10:06 AM Diego Biurrun

cosmetics: Reformat comment paragraph and fix a few typos in it.

Originally committed as revision 18383 to svn://

e90f5b5a 04/08/2009 08:26 PM Ramiro Polla

configure: Add --enable-runtime-cpudetect

Originally committed as revision 18380 to svn://

60a847b5 03/15/2009 12:46 PM Diego Biurrun

cosmetics: Remove file name from file header.

Originally committed as revision 17984 to svn://

6d79971e 03/14/2009 07:12 PM Diego Biurrun

prettyprinting cosmetics

Originally committed as revision 17962 to svn://

f5b2476f 03/14/2009 07:11 PM Diego Biurrun

Add av_uninit to vsrcBuc variable to work around some
'may be used uninitialized' warnings.

Originally committed as revision 17961 to svn://

6d4f53cb 03/03/2009 10:51 PM Michael Niedermayer

Remove old scaler.

Originally committed as revision 17786 to svn://

bad5537e 02/01/2009 02:00 AM Diego Biurrun

Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://

67a7e4db 01/30/2009 11:50 PM Diego Biurrun

Use '#if defined()' for OS-specific preprocessor checks.
Avoids some warnings about undefined preprocessor directives.

Originally committed as revision 16869 to svn://

4ceb4e31 01/25/2009 11:16 AM Diego Biurrun

Add required headers to fix warnings during 'make checkheaders'.

Originally committed as revision 16769 to svn://

799fde37 01/24/2009 05:44 PM Diego Biurrun

Add a check for ppc4xx instructions; rename preprocessor directive accordingly.

Originally committed as revision 16756 to svn://

f5b96597 01/24/2009 05:32 PM Diego Biurrun

Remove pointless #if HAVE_ALTIVEC around internal header #include
and function declarations.

Originally committed as revision 16755 to svn://

406792e7 01/19/2009 03:46 PM Diego Biurrun

cosmetics: Remove pointless period after copyright statement non-sentences.

Originally committed as revision 16684 to svn://

49fb20cb 01/14/2009 05:19 PM Aurelien Jacobs

replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
and remove all ENABLE_ definitions.

Originally committed as revision 16600 to svn://

b250f9c6 01/13/2009 11:44 PM Aurelien Jacobs

Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://

b06688ff 01/07/2009 01:54 PM David Conrad

Add AltiVec versions of h264_idct_add(8|16|16intra),
allowing to re-enable ff_h264_idct_add_altivec's usage.

Patch by David Conrad lessen42 A gmail P com

Originally committed as revision 16465 to svn://

4929c636 01/06/2009 11:03 PM David Conrad

Add Altivec version of vector_fmul_window.
Patch by David Conrad lessen42 A gmail P com

Originally committed as revision 16459 to svn://

8b2bc85f 01/06/2009 10:29 PM David Conrad

add AltiVec implementation of weight_h264_pixels(16|8)x(16|8|4)
Patch by David Conrad lessen42 A gmail P com

Originally committed as revision 16458 to svn://

aa9a9b7a 01/06/2009 12:51 PM David Conrad

Fix float_to_int16_altivec prototype to match float_to_int16's in dsputil.h
(parameter 'len' is a long not an int).
Patch by David Conrad % lessen42 A gmail P com %

Originally committed as revision 16451 to svn://

62865344 01/06/2009 10:44 AM David Conrad

fix compilation with GCC-4.3+
patch by David Conrad + fix by myself

Originally committed as revision 16450 to svn://

54b90958 01/06/2009 10:35 AM David Conrad

offset and weights are signed, fixes some non-bitexact issues.
Patch by David Conrad lessen42 A gmail P com

Originally committed as revision 16449 to svn://

df7fb435 01/05/2009 11:15 PM David Conrad

add AltiVec implementation of biweight_h264_pixels(16|8)x(16|8|4)
Patch by David Conrad lessen42 A gmail P com

Originally committed as revision 16443 to svn://

c663cb0d 01/05/2009 10:13 PM David Conrad

AltiVec version of h264_idct(8)_dc_add
Patch by David Conrad lessen42 A gmail P com

Originally committed as revision 16442 to svn://

79cb09b2 12/27/2008 11:33 AM Diego Biurrun

consistency cosmetics: Rename POWERPC identifiers to PPC.

Originally committed as revision 16359 to svn://

d89eae6f 12/27/2008 11:30 AM Luca Barbato

Remove stray code

Originally committed as revision 16358 to svn://

a6b4448c 12/27/2008 11:21 AM Luca Barbato

Cleanup _t types in libavcodec/ppc

Originally committed as revision 16357 to svn://

337e3fd9 12/25/2008 06:27 PM Guillaume Poirier

Disable usage of ff_h264_idct_add_altivec since AltiVec versions of h264_idct_add16,
h264_idct_add16intra, h264_idct_add8 need to be implemented.

Add C version of ff_h264_idct8_dc_add in AltiVec so that ff_h264_idct8_add_altivec
can be used.

Originally committed as revision 16311 to svn://

5f51afd6 12/17/2008 09:47 AM Guillaume Poirier

add AltiVec implementation of int32_to_float_fmul_scalar

Originally committed as revision 16186 to svn://

7a8f36cc 12/13/2008 10:52 AM Luca Barbato

Cleanup types

Originally committed as revision 16092 to svn://

006c8e9e 12/13/2008 10:49 AM Luca Barbato

Unbreak imgresample altivec

Originally committed as revision 16091 to svn://

64adf4f2 12/12/2008 09:59 AM Guillaume Poirier

add Altivec implementation of clear_block

Originally committed as revision 16078 to svn://

9686df2b 12/03/2008 03:23 PM Diego Biurrun

Delete unnecessary 'extern' keywords.

Originally committed as revision 15990 to svn://

82d1605f 11/03/2008 06:08 PM Dominik Mierzejewski

Remove duplicated MM_* macros for CPU capabilities from dsputil.h.
Add missing one for FF_MM_ALTIVEC to avcodec.h.
Rename all the occurences of MM_* to the corresponding FF_MM_*.

Originally committed as revision 15770 to svn://

be449fca 10/16/2008 01:34 PM Diego Pettenò

Convert asm keyword into asm.

Neither the asm() nor the asm() keyword is part of the C99
standard, but while GCC accepts the former in C89 syntax, it is not
accepted in C99 unless GNU extensions are turned on (with -fasm). The
latter form is accepted in any syntax as an extension (without...

8556ea03 09/22/2008 05:40 AM Diego Biurrun

spelling cosmetics

Originally committed as revision 15383 to svn://

acce61a7 09/22/2008 05:38 AM Brad

AltiVec detection support for OpenBSD, patch by Brad, brad comstyle com.

Originally committed as revision 15382 to svn://

7f0d242b 09/13/2008 01:18 PM David Conrad

Fix compilation on Mac OS X 10.4: Defining _POSIX_C_SOURCE hides the u_char &
similar typedefs that sysctl.h needs. Since sysctl() itself isn't POSIX
undefining _POSIX_C_SOURCE for check_altivec.c seems the best way to fix this.
patch by David Conrad lessen42 at gmail com...

98790382 08/31/2008 07:39 AM Stefano Sabatini

Globally rename the header inclusion guard names.

Consistently apply this rule: the guard name is obtained from the
filename by stripping the leading "lib", converting '/' and '.' to
'_' and uppercasing the resulting name. Guard names in the root
directory have to be prefixed by "FFMPEG_"....

9ac78726 08/25/2008 04:32 PM Luca Barbato

Missing static in float_to_int16_altivec declaration

Originally committed as revision 14967 to svn://

0a3650c9 08/23/2008 09:10 PM Luca Barbato

Remove unused variables

Originally committed as revision 14929 to svn://

e1f27dc2 08/23/2008 09:09 PM Luca Barbato

Introduce float_to_int16_interleave_altivec, tested with vorbis

Originally committed as revision 14928 to svn://

8d3d5100 08/23/2008 09:02 PM Luca Barbato

Introduce float_to_int16_one_altivec

Originally committed as revision 14927 to svn://

309005c0 07/24/2008 04:54 PM Diego Biurrun

cosmetics: Fix indentation after last commit.

Originally committed as revision 14370 to svn://

80a61f08 07/24/2008 10:53 AM Diego Biurrun

Remove AltiVec vector declaration compiler compatibility macros.
The original problem was that FSF and Apple gcc used a different syntax
for vector declarations, i.e. {} vs. (). Nowadays Apple gcc versions support
the standard {} syntax and versions that support {} are available on all...

86255db9 07/20/2008 08:56 PM Diego Biurrun

cosmetics: Make libavcodec/ppc/dsputil_altivec.c conform to style guidelines.
This includes indentation changes, comment reformatting, consistent brace
placement and some prettyprinting.

Originally committed as revision 14318 to svn://