Commit Graph

55 Commits

Author SHA1 Message Date
Oskar Arvidsson
8dbe585641 Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
This patch lets e.g. dsputil_init chose dsp functions with respect to
the bit depth to decode. The naming scheme of bit depth dependent
functions is <base name>_<bit depth>[_<prefix>] (i.e. the old
clear_blocks_c is now named clear_blocks_8_c).

Note: Some of the functions for high bit depth is not dependent on the
bit depth, but only on the pixel size. This leaves some room for
optimizing binary size.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:42 +02:00
Ronald S. Bultje
56cbc5f19f Fix PPC build.
(cherry picked from commit ed040f35f2)
2011-02-18 19:52:41 +01:00
Stefano Sabatini
c6c98d0897 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://svn.ffmpeg.org/ffmpeg/trunk
2010-09-08 15:07:14 +00:00
Stefano Sabatini
ccf22d3ed1 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://svn.ffmpeg.org/ffmpeg/trunk
2010-09-08 10:02:40 +00:00
Måns Rullgård
2829ce4b40 Remove PPC perf counter support
This functionality is better accessed through tools like oprofile.

Originally committed as revision 23808 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-26 22:23:35 +00:00
Måns Rullgård
4693b031a3 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
non-h264 code.

Originally committed as revision 22565 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-16 01:17:00 +00:00
Måns Rullgård
ddb8c2c0f1 PPC: move prototypes to headers and make some functions static
Originally committed as revision 22267 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-06 22:37:14 +00:00
Måns Rullgård
84dc2d8afa 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://svn.ffmpeg.org/ffmpeg/trunk
2010-03-06 14:24:59 +00:00
Måns Rullgård
c67278098d Move array specifiers outside DECLARE_ALIGNED() invocations
Originally committed as revision 21377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-22 03:25:11 +00:00
David Conrad
99cc7f8a02 Altivec version of avg_no_rnd_vc1_chroma_mc8
Originally committed as revision 18522 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-15 06:23:40 +00:00
David Conrad
c374691b28 Rename put_no_rnd_h264_chroma* to reflect its usage in VC1 only
Originally committed as revision 18517 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-14 23:55:39 +00:00
Diego Biurrun
5137235e0c Remove gcc_fixes.h. It only contains workarounds for unsupported gcc versions.
Originally committed as revision 18476 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 21:45:26 +00:00
Diego Biurrun
6d79971e69 prettyprinting cosmetics
Originally committed as revision 17962 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-14 19:12:20 +00:00
Diego Biurrun
f5b2476fd3 Add av_uninit to vsrcBuc variable to work around some
'may be used uninitialized' warnings.

Originally committed as revision 17961 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-14 19:11:56 +00:00
David Conrad
b06688ffed 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://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 13:54:26 +00:00
David Conrad
8b2bc85f29 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://svn.ffmpeg.org/ffmpeg/trunk
2009-01-06 22:29:26 +00:00
David Conrad
628653449c fix compilation with GCC-4.3+
patch by David Conrad + fix by myself

Originally committed as revision 16450 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-06 10:44:45 +00:00
David Conrad
54b9095833 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://svn.ffmpeg.org/ffmpeg/trunk
2009-01-06 10:35:06 +00:00
David Conrad
df7fb43569 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://svn.ffmpeg.org/ffmpeg/trunk
2009-01-05 23:15:14 +00:00
David Conrad
c663cb0d4f AltiVec version of h264_idct(8)_dc_add
Patch by David Conrad %lessen42 A gmail P com%

Originally committed as revision 16442 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-05 22:13:42 +00:00
Luca Barbato
a6b4448cdf Cleanup _t types in libavcodec/ppc
Originally committed as revision 16357 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-27 11:21:28 +00:00
Guillaume Poirier
337e3fd990 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://svn.ffmpeg.org/ffmpeg/trunk
2008-12-25 18:27:49 +00:00
Diego Biurrun
309005c047 cosmetics: Fix indentation after last commit.
Originally committed as revision 14370 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 16:54:51 +00:00
Diego Biurrun
80a61f08d2 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
relevant Mac OS X versions. Thus the greater compatibility is no longer
worth cluttering the code with macros.

Originally committed as revision 14366 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-24 10:53:32 +00:00
Diego Biurrun
e3905ce0af cosmetics: Reformat PPC code in libavcodec according to style guidelines.
This includes indentation changes, comment reformatting, consistent brace
placement and some prettyprinting.

Originally committed as revision 14316 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-20 18:58:30 +00:00
Diego Biurrun
245976da2a Use full path for #includes from another directory.
Originally committed as revision 13098 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-09 11:56:36 +00:00
Diego Biurrun
3035cb6796 Add necessary #include, fixes the warnings:
ppc/h264_altivec.c: In function ‘put_h264_qpel16_mc00_altivec’:
ppc/h264_altivec.c:394: warning: implicit declaration of function ‘put_pixels16_altivec’
ppc/h264_altivec.c: In function ‘avg_h264_qpel16_mc00_altivec’:
ppc/h264_altivec.c:395: warning: implicit declaration of function ‘avg_pixels16_altivec’
ppc/h264_altivec.c: In function ‘dsputil_h264_init_ppc’:
ppc/h264_altivec.c:872: warning: implicit declaration of function ‘has_altivec’

Originally committed as revision 11330 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-27 12:31:23 +00:00
Luca Barbato
89523beea4 Sanitize altivec code so it can be built with runtime check properly
Originally committed as revision 10640 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-02 11:39:32 +00:00
Diego Biurrun
830bf1f20d whitespace/indentation cosmetics
Originally committed as revision 10217 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-24 23:49:11 +00:00
Diego Biurrun
2722c98128 Remove HAVE_ALTIVEC preprocessor directives that are only compiled
when AltiVec is enabled anyway.

Originally committed as revision 10216 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-24 23:01:50 +00:00
Guillaume Poirier
3ca96802e2 use shorter types vec_"type" instead of the too long vector "type"
part 1 of h264 luma interpolation 8x8 for altivec contributed by
Mauricio Alvarez % lokifo A gmail P com %
Original thread:
Date: Jun 26, 2007 8:15 PM
Subject: Re: [FFmpeg-devel] [PATCH] h264 luma interpolation 8x8 for altivec

Originally committed as revision 10090 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-12 13:50:06 +00:00
Guillaume Poirier
e970d98c47 restore GCC3 support
Originally committed as revision 9353 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-17 12:38:51 +00:00
Guillaume Poirier
7d2bf29c88 re-enable use of h264_v_loop_filter_luma_altivec and h264_h_loop_filter_luma_altivec,
they work fine now

Originally committed as revision 9350 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-17 09:38:35 +00:00
Graham Booker
22fa38f0c8 part 2/2 of fixing Altivec-accelerated H264 luma inloop filter
In h264_deblock_q1, the result of the deblock needs to be kept to
be used in future deblocks, so return this value now.

Also change the sign of tc0 vector: It is really a signed value, so
treat it as such until after the >=0 check;
then, at that point, after being masked, it can be treated as unsigned.

Patch by Graham Booker % gbooker A tamu P edu%

Originally committed as revision 9349 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-17 09:37:13 +00:00
Guillaume Poirier
963eca226e convert h264_deblock_q1 to an inline function.
part 1/2 of fixing Altivec-accelerated H264 luma inloop filter

Originally committed as revision 9348 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-17 09:14:02 +00:00
Graham Booker
f4a02f6e9b Use a faster way to compute 255-val: Instead of creating a vector of
all 255s, and then doing the subtraction, nor of the vector with itself: saves
one instruction and a register.
Patch by Graham Booker % gbooker A tamu P edu%

Originally committed as revision 9340 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-16 18:59:10 +00:00
Guillaume Poirier
fbb578e90d some samples aren't decoded correctly such as
( http://www.pennfans.net/files/videos/Penn&Teller.on.The.View.mp4 )
with current Altivec implementation of loopfilter, while others are fine.
Let's disable it until we iron this bug out.

Originally committed as revision 9317 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-15 08:22:06 +00:00
Guillaume Poirier
da1fce3921 cosmetics
Originally committed as revision 9298 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-12 21:44:38 +00:00
Sigbjorn Skjaeret
0aec30c58d kill one vector constant value load by the right combination of vec_splatX/vec_sl
patch by Sigbjorn Skjaeret %sskjer-1 A broadpark P no%

Originally committed as revision 9296 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-12 21:24:25 +00:00
Sigbjorn Skjaeret
525751c053 restore GCC2/3 support, patch by Sigbjorn Skjaeret %sskjer-1 A broadpark P no%
Originally committed as revision 9295 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-12 21:17:22 +00:00
Guillaume Poirier
c01d444b3e one step closer to restoring GCC-3.3 support: kills 12 errors, just 2 to go
Originally committed as revision 9280 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-11 08:00:31 +00:00
Guillaume Poirier
5ce27e8c92 minor GCC3 compile fix
(there's still 2 more, but there's burried into several levels of macros, so it's hard to narrow them down)

Originally committed as revision 9265 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-09 22:20:24 +00:00
Graham Booker
f057cc0399 Altivec version of h264_(h|v)_loop_filter_luma
patch by Graham Booker % perian A cod3r P com% with some minor fixes by me.
historic of the patch: http://trac.perian.org/ticket/113
Original thread:
Date: May 11, 2007 9:45 PM
Subject: [FFmpeg-devel] [PATCH] Altivec version of-altivec h264_h-v_loop_filter_luma

Originally committed as revision 9264 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-09 19:13:34 +00:00
Luca Barbato
5dda253943 h264_idct_add_altivec, based on an old patch from Mauricio Alvarez <alvarezATac.upc.edu>, polished by David Conrad <umovimusATgmail.com>
Originally committed as revision 9182 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-03 13:27:44 +00:00
Guillaume Poirier
88bcb6c23f use macro Use DECLARE_ALIGNED_16 to align stack-allocated variables
instead of compiler-dependent  __attribute__((aligned(16)))
Origiginal thread:
Date: May 17, 2007 12:30 AM
Subject: [PATCH] Use DECLARE_ALIGNED_16 in libavcodec/ppc/

Originally committed as revision 9047 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-17 14:14:53 +00:00
Ronald S. Bultje
b550bfaa61 Add libavcodec to compiler include flags in order to simplify header
include paths in the source files.
mostly from a patch by Ronald S. Bultje, rbultje ronald.bitfreak net

Originally committed as revision 9034 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-16 09:51:45 +00:00
Guillaume Poirier
ec4e0056ef GCC 3.3 compile fix
Originally committed as revision 7277 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-11 10:52:18 +00:00
Guillaume Poirier
3813dcc9bf Add IDCT8 routine in Altivec. Patch by yours truely with Linux fixes by Luca Barbato
Originally committed as revision 7210 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-02 14:50:42 +00:00
Luca Barbato
4b47d258f6 Unused variable removed
Originally committed as revision 7203 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-02 01:28:21 +00:00
Diego Biurrun
b78e7197a8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
and fix GPL/LGPL version mismatches.

Originally committed as revision 6577 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-07 15:30:46 +00:00