Commit Graph

56 Commits

Author SHA1 Message Date
Laurent Aimar 7c249d4fba Check for huffman tree building error in vp6 decoder.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-22 00:42:28 +02:00
Michael Niedermayer 042f9d62ca Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Automatically add more flags required on symbian
  mem.h: switch doxygen parameter order to match function prototype
  doxygen: replace @sa tag by the more readable but equivalent @see
  doxygen: use Doxygen markup for authors and web links where appropriate
  doxygen: do not include license boilerplate in Doxygen documentation
  ac3enc: Mark AVClasses const
  ffserver: Replace two loops with one loop.
  ffmpeg: Fix the check for experimental codecs
  swscale: extend mmx padding.
  swscale: clip unscaled colorspace conversion path.
  doxygen: misc consistency cosmetics
  doc: remove file name from @file directive in Doxygen usage example
  doxygen: consistently place brief description
  doxygen: place empty line between brief description and detailed description
  avformat_open_input(): Add braces to shut up gcc warning.

Conflicts:
	libavcodec/8svx.c
	libavcodec/tiff.c
	libavcodec/tiff.h
	libavcodec/vaapi_h264.c
	libavcodec/vorbis.c
	libavcodec/vorbisdec.c
	libavcodec/vp6.c
	libswscale/swscale_unscaled.c
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-15 17:51:09 +02:00
Diego Biurrun 6168781f70 doxygen: do not include license boilerplate in Doxygen documentation 2011-07-15 00:52:09 +02:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Mans Rullgard 5da7494dc5 ARM optimised vp56_rac_get_prob()
Approximately 3% faster on Cortex-A8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 7da48fd011)
2011-02-13 00:52:51 +01:00
Mans Rullgard 7da48fd011 ARM optimised vp56_rac_get_prob()
Approximately 3% faster on Cortex-A8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-11 15:48:10 +00:00
Jason Garrett-Glaser 05c04cdf54 VP5/6/8: ~7% faster arithmetic decoding
Grab from the bitstream in 16-bit chunks instead of 8-bit chunks.
TODO: grab in 32-bit chunks on 64-bit systems.

Originally committed as revision 24783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-12 01:11:32 +00:00
Jason Garrett-Glaser 905ef0d064 VP5/6/8: eliminate CABAC dependency
Create a custom table for VP5/6/8's renorm to avoid depending on H.264's.
Saves one instruction in the arithmetic decoder as well.

Originally committed as revision 24701 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-04 23:04:05 +00:00
Jason Garrett-Glaser 61ee75bbf8 Silence unused function warnings in vp56.h
Originally committed as revision 24684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-03 11:35:41 +00:00
Jason Garrett-Glaser cd2769c142 VP5/6/8: tweak some arithcoder inlining
Always inline the arithmetic coder, except in the case of header-parsing stuff,
in which case don't inline it at all to save code size.

Originally committed as revision 24677 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-03 08:06:08 +00:00
Alex Converse 52fa20542b Reindent after last commit.
Originally committed as revision 24562 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-28 05:38:30 +00:00
Alex Converse d950497083 ff_prefix non static vp56 functions.
Originally committed as revision 24561 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-28 05:36:33 +00:00
Eli Friedman 3611e7a309 Inline asm for VP56 arith coder
This is a lot more reliable to get cmov rather than trying to trick gcc into
generating it, useful since it's 2% faster overall.

Patch by Eli Friedman <eli.friedman at gmail>

Originally committed as revision 24471 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:46:30 +00:00
David Conrad fe1b5d974a Decode DCT tokens by branching to a different code path for each branch
on the huffman tree, instead of traversing the tree in a while loop.

Based on the similar optimization in libvpx's detokenize.c

10% faster at normal bitrates, and 30% faster for high-bitrate intra-only

Originally committed as revision 24468 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:46:17 +00:00
David Conrad 5474ec2ac8 Move renormalization of the VP56 arith decoder to before decoding a bit
No difference at the moment, but allows a future branchy variant
of vp56_rac_get_prob to be significantly faster

Originally committed as revision 24467 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:46:14 +00:00
David Conrad b3d755ec8b Split renorm of vp56 arith decoder to its own function
Originally committed as revision 24466 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:46:08 +00:00
David Conrad 24675b8093 vp56's arith decoder's code_word is only 16 bits, no need for unsigned long
Originally committed as revision 24465 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:46:01 +00:00
Jason Garrett-Glaser 702e8d3376 Much faster VP8 mv and mode prediction
Originally committed as revision 24412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 04:26:41 +00:00
Jason Garrett-Glaser d229ae2b62 Convert vp56_mv to 16-bit.
Saves nothing except a bit of memory/cache now, but will allow future
optimizations.

Originally committed as revision 24411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 03:33:29 +00:00
Aurelien Jacobs 6eabaef4b8 cosmetic: improve comment breaking at 80 cols
Originally committed as revision 23938 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-01 16:28:38 +00:00
Jason Garrett-Glaser 4148855ee4 Eliminate another redundant instruction in vp56/8 arithcoder
Necessary because of this GCC bug:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44474
To do this, convert some, but not all (!) of the variables in VP56RangeCoder
into local variables.
If we convert c->high into a local variable, gcc gets the stupids and refuses
to use a conditional move for the unpredictable main branch.

TODO: dispense with this bullshit and write an asm version.

Originally committed as revision 23924 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 23:59:27 +00:00
Jason Garrett-Glaser 36d6b545a1 CMOV-ify vp56 arithcoder
This incantation causes gcc 4.3 to generate cmov on x86, a vastly better option
than a completely unpredictable branch.
Hopefully this carries over to newer versions and other CPUs with conditionals.
~5 cycles saved per call on a Core i7.

Originally committed as revision 23921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 23:18:47 +00:00
Jason Garrett-Glaser 2e6ed48d6e Optimize vp56 arithmetic decoder
Negate "bits" to eliminate a negate in cache refilling.

Originally committed as revision 23920 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 23:15:25 +00:00
Stefan Gehrer bce3bd1ced renormalize VP5/6/7/8 range coder without loop
Originally committed as revision 23915 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 22:05:29 +00:00
David Conrad 3b636f21da Native VP8 decoder.
Patch by David Conrad <lessen42 gmail com> and myself.

Originally committed as revision 23719 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-22 19:24:09 +00:00
Ronald S. Bultje c6ef6e14cf Change a / 256 into a >> 8.
Originally committed as revision 23718 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-22 19:19:13 +00:00
Måns Rullgård 5e1ba34bbb VP56: move vp56_edge_filter to new VP56DSPContext
Using macro templates allows the vp[56]_adjust functions to be
inlined instead of called through function pointers.  The new
function pointers enable optimised implementations of the filters.

4% faster VP6 decoding on Cortex-A8.

Originally committed as revision 22992 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-30 21:30:22 +00:00
Diego Biurrun ba87f0801d 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://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +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
Reimar Döffinger 800274f871 Make VP5 and VP6 decoders output a qscale table to allow for more automatic
post-processing, and add a new FF_QSCALE_TYPE_VP56 for this.

Originally committed as revision 21529 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-29 19:11:47 +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
Aurelien Jacobs 7576516a7e vp56dec: ensure range coder won't read past the end of input buffer
Originally committed as revision 19348 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-05 15:23:42 +00:00
Stefano Sabatini 9106a698e7 Rename bitstream.h to get_bits.h.
Originally committed as revision 18494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 16:20:26 +00:00
Aurelien Jacobs 012f930855 fix vp5/vp6 decoding by using new prototype for decode function
Originally committed as revision 18352 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-07 18:24:47 +00:00
Diego Biurrun bad5537e2c 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://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Aurelien Jacobs d887151d8c rename Vp56Model to VP56Model for consistency
Originally committed as revision 16073 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-12 00:51:53 +00:00
Aurelien Jacobs 76025d91da cosmetics: vertical alignment
Originally committed as revision 16069 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-11 23:00:58 +00:00
Aurelien Jacobs 3d52bca6bf avoid POSIX reserved _t suffix
Originally committed as revision 16068 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-11 22:56:19 +00:00
Stefano Sabatini 987903826b 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_".

Originally committed as revision 15120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-31 07:39:47 +00:00
Aurelien Jacobs d37f007d54 remove #include "mpegvideo.h" where it is not needed
Originally committed as revision 12321 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-05 00:07:53 +00:00
Michael Niedermayer 7e5cdb5b1b const
Originally committed as revision 11791 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-01 16:16:40 +00:00
Diego Biurrun 5b21bdabe4 Add FFMPEG_ prefix to all multiple inclusion guards.
Originally committed as revision 10765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-17 09:37:46 +00:00
Aurelien Jacobs f28b10483a add support for VP6 with huffman encoded blocks
closes issue 104

Originally committed as revision 10737 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-14 22:30:59 +00:00
Aurelien Jacobs 91fc2cf150 add a new vp6a codec (add alpha plan support to vp6)
Originally committed as revision 10574 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-25 19:12:46 +00:00
Aurelien Jacobs 247df384ec move all model related tables into their own struct
Originally committed as revision 10571 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-24 22:29:11 +00:00
Aurelien Jacobs 1457516f70 some simplifications and uniformisation
Originally committed as revision 10568 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-24 20:43:47 +00:00
Aurelien Jacobs 977f6a9049 remove wrong const qualifier
Originally committed as revision 9795 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-25 19:34:31 +00:00
Diego Biurrun e5a389a1b7 license header consistency cosmetics
Originally committed as revision 9484 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-05 10:40:25 +00:00
Ramiro Polla 2c124cb65c Use AV_xx throughout libavcodec
Originally committed as revision 9169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-02 01:41:07 +00:00
Aurelien Jacobs 704a2881bc Use pointers to avoid copying AVFrame.
This ensure get_buffer() won't be confused with an AVFrame pointer
which looks like it wasn't released.

Originally committed as revision 8124 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-25 15:33:38 +00:00