Commit Graph

384 Commits

Author SHA1 Message Date
Stefano Sabatini
72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
David Conrad
14268254c8 vp3: Split out motion vectors to their own array
1.5% faster overall decode on my penryn

Originally committed as revision 22504 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 10:25:41 +00:00
David Conrad
1e76a1da05 theora: Add support for 4:2:2 and 4:4:4 subsampling
Originally committed as revision 22500 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 05:59:22 +00:00
David Conrad
1a8560423e vp3: remove unneeded error, this is internal and doesn't happen
Originally committed as revision 22499 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 05:59:18 +00:00
David Conrad
577838842d vp3: Make fragment_width _height by plane
Originally committed as revision 22498 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 05:56:15 +00:00
David Conrad
1c183aa418 vp3: we only need a temp MV array of size 4
Originally committed as revision 22497 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 05:56:11 +00:00
David Conrad
703acd540e vp3: Use memset to clear the fragment array
Originally committed as revision 22496 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 05:56:08 +00:00
David Conrad
cd9c03f57f vp3: Init MVs to 0
Originally committed as revision 22495 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 05:56:05 +00:00
David Conrad
a16389c18f vp3: Simplify init_block_mapping
Originally committed as revision 22494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 05:56:01 +00:00
David Conrad
f50dafa8fc vp3: avoid buffer overread in coeff decode
I couldn't measure it to be slower for normal interframe videos.
For the worst case, high-bitrate intra-only videos, it can be 0.7% slower.

Originally committed as revision 22416 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-10 00:59:32 +00:00
David Conrad
d63a718764 vp3: correctly clip vp3_draw_horiz_band call
Originally committed as revision 22377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 06:52:33 +00:00
David Conrad
ff65969fd8 vp3: Set pict_type
Originally committed as revision 22361 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 00:29:26 +00:00
David Conrad
7a4e8b5913 vp3: Allocate a dummy reference frame if we have no keyframe
Originally committed as revision 22360 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 00:29:22 +00:00
David Conrad
0c9afacbf5 vp3: use FF_BUFFER_TYPE_COPY
Originally committed as revision 22359 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 00:29:19 +00:00
David Conrad
e72d2d1221 vp3: Don't leak buffers on errors
Originally committed as revision 22358 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 00:29:16 +00:00
David Conrad
739b5090af vp3: Simplify buffer management
Originally committed as revision 22357 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 00:29:12 +00:00
David Conrad
01f9640b21 vp3: be less spammy on broken files
Originally committed as revision 22356 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 00:29:09 +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
David Conrad
e2720b6b1e Really fix 2.95
Originally committed as revision 22204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 10:01:03 +00:00
David Conrad
0448ef7788 Maybe fix gcc 2.95
Originally committed as revision 22203 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 09:25:42 +00:00
David Conrad
c72625f299 Delay translating DCT tokens into coefficients until immediately before IDCT
This is generally around 12% faster than the prior method of creating a
linked list for each block as tokens are read, but can be anywhere from
8% to 28% faster depending on file and CPU.

Originally committed as revision 22190 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 23:27:43 +00:00
David Conrad
7a095ea6fb Do MC and IDCT in coding (hilbert) order
This increases the slice size to 64 pixels, due to having to decode an
entire chroma superblock row per slice.

This can be up to 6% slower depending on clip and CPU, but is necessary
for future optimizations that gain significantly more than was lost.

Originally committed as revision 22189 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 23:27:40 +00:00
David Conrad
35c28d23cb Explictly separate decoding whether fragments are coded by plane
Originally committed as revision 22188 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 23:27:37 +00:00
Carl Eugen Hoyos
770128c448 Remove declaration of unused variables.
Originally committed as revision 22102 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-28 03:02:25 +00:00
David Conrad
6cb35b45e6 Simplify determing whether fragments are coded
No measurable speed difference

Originally committed as revision 21931 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 00:11:01 +00:00
David Conrad
a89264761f Handle Theora's continued runs in superblock coding.
This doesn't really matter yet since 4:2:0 1080p has only 3060 superblocks,
but larger resolutions or 4:4:4 1080p could hit this case.

Originally committed as revision 21930 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 00:10:58 +00:00
David Conrad
855c720c86 Decode fully coded superblocks in the same manner as partial superblocks and qpi
No speed difference, but it will simplify the special 4129 case.

Originally committed as revision 21929 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 00:10:54 +00:00
David Conrad
ecb51b25bb Make the special 4129 case for long-run bit strings a #define and explain it
Originally committed as revision 21928 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 00:10:51 +00:00
David Conrad
33dbc1b7ca Use memset to set the runs partially coded superblocks
Much faster for long runs (e.g. nearly uncoded frames), slightly faster
for the general case.

Originally committed as revision 21927 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 00:10:47 +00:00
Måns Rullgård
40d1122752 Use LOCAL_ALIGNED macro for local arrays
Originally committed as revision 21866 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-17 20:36:20 +00:00
David Conrad
161e8cf42c Move CODEC_FLAG_GRAY check to outer loop
Originally committed as revision 21805 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 18:59:25 +00:00
David Conrad
7c2e31d1f0 Move branch based on custom mode outside the loop
Originally committed as revision 21804 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 18:59:21 +00:00
David Conrad
eb691ef219 Directly check whether a fragment is coded for 4MV mode instead of iterating
through the entire coded fragment list.

Originally committed as revision 21803 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 18:55:27 +00:00
David Conrad
15675ce609 Eliminate fragment -> macroblock mapping array
Originally committed as revision 21802 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 18:55:24 +00:00
David Conrad
ea67614457 Eliminate macroblock -> fragment mapping array
Originally committed as revision 21801 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 18:55:21 +00:00
David Conrad
19cd517dbf Eliminate superblock <-> macroblock mapping array
Originally committed as revision 21800 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 18:55:17 +00:00
David Conrad
735acf567c Don't pre-calculate first_pixel
3.6% faster on Elephants_Dream_HD-q7-aq7.ogg on my penryn

Originally committed as revision 21781 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:01:38 +00:00
David Conrad
a8de390163 Implement CODEC_CAP_DRAW_HORIZ_BAND for VP3 decoder
Originally committed as revision 21780 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:01:35 +00:00
David Conrad
621f9a40b1 Cosmetics: reindent
Originally committed as revision 21779 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:01:32 +00:00
David Conrad
256c0662ef Do loop filter per-row rather than per-frame
3% faster on Elephants_Dream_HD-q7-aq7.ogg on my penryn

Originally committed as revision 21778 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:01:29 +00:00
David Conrad
fe3135564a Move apply_loop_filter above render_slice, it'll be used by the latter soon
Originally committed as revision 21777 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:01:25 +00:00
David Conrad
ea3c2d5393 Export Theora colorspace info if present
Originally committed as revision 21776 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:01:22 +00:00
David Conrad
337f5c6e30 Theora 3.4 doesn't exist; these fields were misunderstandings of the spec
Originally committed as revision 21775 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:01:18 +00:00
David Conrad
45c3c92576 Remove unused code that's moved elsewhere
Originally committed as revision 21774 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-12 22:00:29 +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
Mike Melanson
da8af9388c Cosmetic: indent after last change.
Originally committed as revision 20896 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-19 07:34:11 +00:00
Mike Melanson
e6e32bdc5f Optimize unpack_vectors() by not shuffling around redundant vectors.
Inspired by guidance from Dark Shikari. On a Core 2 Duo 2.0 GHz, this
change decodes the 10-minute Big Buck Bunny 1080p short about 2 seconds
faster.

Originally committed as revision 20895 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-19 07:33:10 +00:00
Carl Eugen Hoyos
08f1960588 Cosmetics: Fix indentation after r20751.
Originally committed as revision 20752 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:39:25 +00:00
Jason Garrett-Glaser
bfb5a8cec6 Simplified deblocking checks.
Patch by Dark Shikari

Originally committed as revision 20751 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:38:05 +00:00
Jason Garrett-Glaser
50ba3fd713 Faster checks in reverse_dc_prediction.
Patch by Dark Shikari

Originally committed as revision 20750 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:33:48 +00:00
Jason Garrett-Glaser
c11cb37520 Check transform==15 first, since it's more common than 13.
Patch by Dark Shikari

Originally committed as revision 20749 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:31:58 +00:00
Carl Eugen Hoyos
306a61b33e Revert r20747: It mixed functional and cosmetical changes.
Originally committed as revision 20748 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:30:53 +00:00
Jason Garrett-Glaser
63c0b3d920 Various VP3 optimizations.
Faster checks in reverse_dc_prediction.
Simplified deblocking checks.
Check transform==15 first, since it's more common than 13.

Originally committed as revision 20747 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 12:48:09 +00:00
Mike Melanson
9d8bb0318a Small refactoring: Instead of 4 loops for decoding AC coefficients based
on their grouping, create one loop that indexes into a table of AC VLC
tables.

There is also a small optimization here: Do not call unpack_vlcs()
if there are no fragments in the list with outstanding coefficients.
My profiling indicates that this can save upwards of 1 million
dezicycles per frame throughout the course of unpack_dct_coeffs().

Originally committed as revision 20699 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-02 04:06:27 +00:00
Mike Melanson
098523eb28 Use a list to track which fragments coded in this frame still have
outstanding coefficients yet to be decoded from the bitstream. Once a
fragment reaches end-of-block, remove it from this new list. This change
makes the VP3/Theora entropy decode process dramatically faster due to
not having to iterate incessantly over fragments which have already been
fully decoded.

Originally committed as revision 20698 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-02 02:30:15 +00:00
Mike Melanson
0efbd068e7 Make sure that all memory allocations succeed.
Based on 28_theora_malloc_checks.patch from the Google Chrome team.

Originally committed as revision 20008 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-24 06:33:16 +00:00
Google Chrome
310afddfe0 Fix >= vs > check of coded_fragment_list_index.
22_fix_theora_frag_fencepost.patch by chrome

Originally committed as revision 19995 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-23 12:42:12 +00:00
Google Chrome
fa6f27517b Fix init_get_bits() buffer size.
18_fix_theora_header_bit_len.patch by chrome

Originally committed as revision 19993 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-23 12:27:10 +00:00
Mike Melanson
428984b041 Another micro-optimization for unpack_vlcs(): Eliminate a possible
branch and save around 45k-55k dezicycles per function run.

Originally committed as revision 19974 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-23 05:38:12 +00:00
Mike Melanson
138fe83215 Perform the DC prediction reversal immediately after decoding all of
the DC coefficients. This has a greater probability of leveraging the
coefficients while they are still cached.

When testing with the Big Buck Bunny 1080p video, I consistently saw
improvements of 500k-600k dezicycles per run (through
reverse_dc_prediction()) thanks to this move.

Originally committed as revision 19966 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-22 15:58:08 +00:00
Mike Melanson
ee3d7f5852 Modify unpack_vlcs() so that there are fewer dereferences through the
main (heavily iterated) loop.

Originally committed as revision 19934 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-21 01:37:50 +00:00
Reimar Döffinger
b8791583e7 compatible_frame array can be static const, too.
Originally committed as revision 19779 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-06 08:27:23 +00:00
Reimar Döffinger
bb99108775 Make vp3 arrays static const where possible.
Originally committed as revision 19771 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-05 17:28:20 +00:00
Måns Rullgård
3aab27b459 Remove useless #include <unistd.h> from many files
Originally committed as revision 19499 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-22 23:37:53 +00:00
Reimar Döffinger
c79c960ade Remove useless ret variable added in last revision again.
Originally committed as revision 19357 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-06 10:28:58 +00:00
Reimar Döffinger
7cda815044 100l, theora_decode_init must pass on errors from vp3_decode_init
Originally committed as revision 19356 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-06 09:35:00 +00:00
Reimar Döffinger
c4b7b8bf9c Make decode_init fail if the huffman tables are invalid and thus init_vlc fails.
Otherwise this will crash during decoding because the vlc tables are NULL.
Partially fixes ogv/smclock.ogv.1.101.ogv from issue 1240.

Originally committed as revision 19355 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-06 09:22:39 +00:00
Reimar Döffinger
e13cca4b14 Ensure that the filter limit values do not exceed the maximum allowed value of 127.
Originally committed as revision 19351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-05 18:27:39 +00:00
Reimar Döffinger
7fa5f9990b Extend init_loop_filter to work for filter limit values up to 127 instead
of only up to 64. 127 is the maximum value allowed by the theora specification.

Originally committed as revision 19350 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-05 18:25:58 +00:00
Baptiste Coudurier
7f57905d55 vp3 and theora decoders use get_buffer, set CODEC_CAP_DR1
Originally committed as revision 19107 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-05 08:44:26 +00:00
David Conrad
f2264fa531 Support block-level quantization in Theora
Originally committed as revision 18986 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-29 21:43:22 +00:00
David Conrad
ef516f7377 Move ALIGN macro to libavutil/common.h and use it in various places
Originally committed as revision 18898 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-22 21:32:13 +00:00
David Conrad
0a8dedc9e1 Use skip_bits_long() for large skips
This fixes ogg/theora on ARM (more generally the A32 bitstream reader)

Originally committed as revision 18819 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-14 00:02:07 +00:00
David Conrad
580a7465fb Add a chroma_sample_location field to define positioning of chroma samples
Originally committed as revision 18795 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-11 04:34:23 +00:00
Benjamin Larsson
241f5eab32 Remove dead assignments found by CSA
Originally committed as revision 18731 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-02 09:12:03 +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
Thilo Borgmann
7a00bbad21 Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
AVPacket argument rather than a const uint8_t *buf + int buf_size. This allows
passing of packet-specific flags from demuxer to decoder, such as the keyframe
flag, which appears necessary to playback corePNG P-frames.

Patch by Thilo Borgmann thilo.borgmann googlemail com, see also the thread
"Google Summer of Code participation" on the mailinglist.

Originally committed as revision 18351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-07 15:59:50 +00:00
Daniel Verkamp
5ef251e504 Add missing av_cold in static init/close functions.
Patch by Daniel Verkamp daniel at drv dot nu.

Originally committed as revision 17526 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-22 13:48:55 +00:00
Alex Converse
00bbe27631 VP3: Do not ignore error from read_huffman_tree().
Originally committed as revision 17090 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-09 01:39:33 +00:00
Alex Converse
2c823b3ccc VP3: Prevent stack corruption from an unset custom coding method.
Originally committed as revision 16978 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-03 22:59: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
b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Loren Merritt
5fecfb7d58 clear_block mmx
Originally committed as revision 16045 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-10 21:35:17 +00:00
David Conrad
357f45d9bc MMX VP3 Loop Filter
Originally committed as revision 15630 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-17 03:18:08 +00:00
David Conrad
c5f67c1559 Remove unused variables
Originally committed as revision 15602 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-12 19:41:17 +00:00
David Conrad
9971331dfb Move VP3 loop filter to DSPContext
Originally committed as revision 15551 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-04 10:26:17 +00:00
David Conrad
1ae4518d73 Cosmetics: reindent
Originally committed as revision 15505 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-01 14:48:54 +00:00
David Conrad
10f38380be Unneeded else
Originally committed as revision 15504 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-01 14:48:35 +00:00
David Conrad
6599e2a74a Unneeded braces
Originally committed as revision 15503 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-01 14:48:16 +00:00
David Conrad
6298f49f75 Return if unpacking motion vectors for a keyframe
Originally committed as revision 15502 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-01 14:48:00 +00:00
David Conrad
a0ce2d1bbc Cosmetics: indentation
Originally committed as revision 15501 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-01 14:44:30 +00:00
David Conrad
277e3e534b Visible width/height fields were added in Theora 3.2
Originally committed as revision 15500 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-01 14:43:08 +00:00
David Conrad
51ace5777e filter_limit_values only needs 7 bits, make its tables smaller
Originally committed as revision 15499 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-01 14:40:29 +00:00
David Conrad
ba31df31d9 Cosmetics: indentation
Originally committed as revision 15492 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-30 19:51:02 +00:00
David Conrad
fc9618195b Merge (vp3|theora)_calculate_pixel_addresses
Originally committed as revision 15491 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-30 19:50:43 +00:00
David Conrad
6920b98322 Missed hunks of last commit
Originally committed as revision 15490 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-30 19:22:20 +00:00
David Conrad
33aae37ec0 Remove unused vp3 debugging info
Originally committed as revision 15489 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-30 19:18:22 +00:00
David Conrad
12ce1f3fc1 Downgrade severity of leftover bits in header packets, and don't check for the comment header
Originally committed as revision 15469 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-30 04:18:22 +00:00
David Conrad
068e82bac1 Use skip_frame for keyframe-only decoding rather than #ifdef
Originally committed as revision 15463 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-29 22:04:35 +00:00
David Conrad
7f065b36c8 Take idct permutation into account when initializing dequantization matrices
Originally committed as revision 15344 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-17 19:29:40 +00:00
Aurelien Jacobs
4834eb191c theoradec: cosmetics: indentation
Originally committed as revision 15167 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-03 00:19:08 +00:00
Aurelien Jacobs
feaf1a7393 theoradec: skip decoding of uncoded MV in 4MV code
Thusnelda, the new experimental Theora encoder is using this Theora feature
that was previously not exploited.
fixes issue579

Originally committed as revision 15166 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-03 00:17:11 +00:00
Aurelien Jacobs
e32e2d56d4 theoradec: small 4MV code reorganization to ease future improvements
no functional changes

Originally committed as revision 15165 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-03 00:10:30 +00:00
Stefan Gehrer
e8e4743591 make ModeAlphabet read-only and use a custom mode alphabet
only locally in unpack_modes()

Originally committed as revision 13964 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-25 14:14:58 +00:00
Stefano Sabatini
fe4bf37455 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
Originally committed as revision 13759 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-12 21:50:13 +00:00
Reimar Döffinger
eeb2815003 Remove the START_TIMER/STOP_TIMER from vp3.c, they clutter the output and
might cost CPU.

Originally committed as revision 13730 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-09 16:30:59 +00:00
Reimar Döffinger
36e1625396 Almost-cosmetics: split out coeff_count from all_fragments struct into
a separate array.
For the OGG version at http://www.bigbuckbunny.org/index.php/download/
this results in about 50% speedup of unpack_vlcs, resulting in ca. 20% faster
overall speed.

Originally committed as revision 13729 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-09 16:26:28 +00:00
Diego Biurrun
f4433de9ef consistency cosmetics: indices --> indexes
Originally committed as revision 13444 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-26 23:14:25 +00:00
Sisir Koppaka
9db5bdfaa5 Add complete multimedia Wiki URL, patch by Sisir Koppaka.
Originally committed as revision 13055 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-04 09:58:22 +00:00
Stefano Sabatini
d5202e4fda Add long names to many AVCodec declarations.
patch by Stefano Sabatini, stefano.sabatini-lala poste it

Originally committed as revision 13005 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-27 10:52:44 +00:00
Zuxy Meng
98a6fff98c Apply 'cold' attribute to init/uninit functions in libavcodec
Originally committed as revision 12525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-21 03:11:20 +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
Måns Rullgård
6f4e2b5a95 fix memory leaks in vp3 decoder
Originally committed as revision 12191 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-24 18:56:52 +00:00
Michael Niedermayer
cea9642014 Fix ;;
Originally committed as revision 12153 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-19 22:09:08 +00:00
Diego Biurrun
5e53486545 typo fix: inited --> initialized
Originally committed as revision 11920 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-13 09:26:10 +00:00
Diego Biurrun
356306aca2 Print Theora bitstream version at DEBUG, not at VERBOSE level.
Originally committed as revision 11916 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-13 08:05:51 +00:00
Michael Niedermayer
bed9dc1662 const
Originally committed as revision 11776 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-01 15:54:28 +00:00
Alex Beregszaszi
5fc32c275e use get_bits1(..) instead get_bits(.., 1)
Originally committed as revision 9999 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-09 00:13:31 +00:00
Diego Biurrun
3e5008a922 Reduce Theora decoder verbosity.
Originally committed as revision 9872 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-03 16:43:11 +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
Diego Biurrun
2029f312e8 Remove redundant #inclusion of common.h, avcodec.h already #includes it.
Originally committed as revision 8967 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-10 09:00:44 +00:00
Aurelien Jacobs
ba4816a0a9 cosmetics: fix inconsistent indentation
Originally committed as revision 8929 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-07 15:44:42 +00:00
Aurelien Jacobs
c0f716b86f fix display of theora videos with visible size smaller than encoded size
Originally committed as revision 8928 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-07 15:43:01 +00:00
Diego Biurrun
597cbdaf03 Only compile in Theora-specific functions if the Theora decoder has been
enabled.  Also fixes some "defined but not used" warnings in that case.

Originally committed as revision 8685 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-08 18:54:53 +00:00
Diego Biurrun
6f6a3e2acb cosmetics: Move one code block to save an #ifdef in the next commit.
Originally committed as revision 8684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-08 18:52:03 +00:00
Diego Biurrun
d7455a1c18 Remove #if 0 code.
Originally committed as revision 8683 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-08 18:50:18 +00:00
Diego Biurrun
51cea49ab4 Fix compilation when Theora decoder is disabled, but VP3 is enabled.
Originally committed as revision 8682 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-08 13:42:44 +00:00
Nicholas Tung
587d07227e Remove superfluous setting of has_b_frames in codecs without B-frames.
patch by Nicholas Tung, ntung ntung com

Originally committed as revision 8647 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-07 17:37:30 +00:00
Aurelien Jacobs
da91ed594e use generic xiph header spliting func to split theora headers
Original thread:
Date: Thu, 22 Mar 2007 20:23:08 -0400
Subject: [Ffmpeg-devel] [PATCH] Theora in MKV (GSoC '07 Qualification)

Originally committed as revision 8506 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-25 01:09:26 +00:00
Reimar Döffinger
f66e4f5f9e Add av_ prefix to clip functions
Originally committed as revision 8122 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-25 10:27:12 +00:00
Diego Biurrun
3700dab4f2 cosmetics: aswell --> as well typo fix
Originally committed as revision 8062 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-22 00:14:54 +00:00
Diego Biurrun
a9621908dc Unconditionally enable Theora decoder. It works fine now and there is no
Theora support through libtheora in FFmpeg.

Originally committed as revision 7435 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-10 14:19:33 +00:00
Diego Biurrun
c26abfa541 Rename ABS macro to FFABS.
Originally committed as revision 6666 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-11 23:17:58 +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
Michael Niedermayer
59ef342beb fix decoding of ED-small-sample-file.ogg
Originally committed as revision 6567 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-06 11:33:57 +00:00
Diego Biurrun
36c32bdddf Remove unused variables and the corresponding warnings along with them.
Originally committed as revision 6536 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-03 17:12:48 +00:00
Måns Rullgård
191e8ca752 fix some signedness warnings
Originally committed as revision 6355 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-27 19:47:39 +00:00
Michael Niedermayer
2287c100b2 cleanup
Originally committed as revision 6007 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-08-17 08:08:28 +00:00
Reimar Döffinger
bc185f72c0 Do not crash when the first frame is not a keyframe (and thus none of the
necessary initialization has been done yet).

Originally committed as revision 5815 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-23 18:22:29 +00:00
Michael Niedermayer
684d9e36fc simplify
Originally committed as revision 5796 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-19 22:42:31 +00:00
Michael Niedermayer
006ff1cabe more simplifications
Originally committed as revision 5795 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-19 22:21:45 +00:00
Michael Niedermayer
f72f8a7735 simplification
Originally committed as revision 5794 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-19 21:20:56 +00:00
Michael Niedermayer
09eb00f6b5 iabs -> ABS
Originally committed as revision 5793 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-19 21:05:42 +00:00
Michael Niedermayer
1abbf64e3b simplify
Originally committed as revision 5792 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-19 20:57:44 +00:00
Michael Niedermayer
1af5f60f6a fix loop filter
Originally committed as revision 5791 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-19 20:41:16 +00:00
Michael Niedermayer
efea852877 parse all QIS values (we still ignore them though ...)
Originally committed as revision 5778 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-17 13:09:45 +00:00
Michael Niedermayer
a14ab4e4d4 100l for me
Originally committed as revision 5777 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-17 11:06:09 +00:00
Matthieu Castet
116d866ca5 fix playback of theora.ogg on mphq patch by (matthieu castet %% castet dat matthieu ot free dat fr %%)
Originally committed as revision 5776 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-17 10:44:53 +00:00
Michael Niedermayer
ae1dd8e125 attempt to implement xiphs useless and stupid quantization matrix mess
Originally committed as revision 5775 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-17 09:51:59 +00:00
Michael Niedermayer
187c9be7a6 replace *_dequant (2 intra, 1 inter) by qmat (3 intra, 3 inter) (needed for theora according to spec)
Originally committed as revision 5774 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-17 08:09:08 +00:00
Michael Niedermayer
d2744e19e0 use RSHIFT
Originally committed as revision 5773 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 21:09:32 +00:00
Michael Niedermayer
4501e678e7 useless memcpy
Originally committed as revision 5772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 21:00:38 +00:00
Michael Niedermayer
7cfe7fe5e7 some fixmes if someone ever wants to implement theora support correctly ...
Originally committed as revision 5771 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 20:47:48 +00:00
Michael Niedermayer
e278056fba check how many bits are left after decoding extradata
this change is messy as whoever wrote the original code copied the GetBitContext instead of passing a pointer to it which has to be fixed for the above thing

Originally committed as revision 5770 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 20:30:39 +00:00
Michael Niedermayer
b7f3fdd779 cleanup
Originally committed as revision 5769 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-16 19:21:59 +00:00
Måns Rullgård
1bd8624697 kill some warnings
Originally committed as revision 5063 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-02-25 22:41:31 +00:00
Steve L'Homme
68b51e58ce MSVC-compatible __align8/__align16 declaration
patch by Steve Lhomme, steve .dot. lhomme .at. free .dot. fr

Originally committed as revision 4942 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-02-05 13:35:17 +00:00
Diego Biurrun
5509bffa88 Update licensing information: The FSF changed postal address.
Originally committed as revision 4842 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-12 22:43:26 +00:00
Diego Biurrun
bb270c0896 COSMETICS: tabs --> spaces, some prettyprinting
Originally committed as revision 4764 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-22 01:10:11 +00:00
Diego Biurrun
115329f160 COSMETICS: Remove all trailing whitespace.
Originally committed as revision 4749 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-17 18:14:38 +00:00
Alex Beregszaszi
52ceae0624 10l, left debugging on
Originally committed as revision 4705 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-11-13 20:12:33 +00:00
Matthieu Castet
2da2ba037a Correctly skip unknown matrices (patch by Matthieu Castet) and disable comment reading
Originally committed as revision 4704 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-11-13 20:06:31 +00:00
Alex Beregszaszi
7146d2c267 Fixing theora _again_. DONT BOTHER BREAKING THIS AGAIN. Added support for Theora 3.4 and stream created by Elphel cameras are decodable.
Originally committed as revision 4703 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-11-13 17:59:21 +00:00
Alex Beregszaszi
dd36b66722 fixed long standing off-by-one bug (fixes playback on ppc)
Originally committed as revision 4702 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-11-13 17:48:27 +00:00
Alex Beregszaszi
8868d31065 use av_log in debug mode
Originally committed as revision 4570 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-09-07 19:15:48 +00:00
Måns Rullgård
bf4e3bd2d0 kill a bunch of compiler warnings
Originally committed as revision 4522 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-08-14 15:42:40 +00:00
Mike Melanson
485bb00108 removed a bunch of unused, sub-optimal code
Originally committed as revision 4516 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-08-13 18:49:01 +00:00
Mike Melanson
9c7154c7ae read loop filter limit values from Theora header, courtesy of Matthieu
Castet (castet.matthieu -at- free.fr)

Originally committed as revision 4304 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-24 14:21:42 +00:00
Mike Melanson
2935001c86 fix bugs in new loop filter code; also, refrain from filtering against
data that has yet to be rendered; still #if'd out, will revisit when
proper algorithm can be validated

Originally committed as revision 4297 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-21 19:31:16 +00:00
Michael Niedermayer
720537282b disable broken loop filter optimization
melanson please test your optimizations before commiting!

Originally committed as revision 4292 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-21 07:35:15 +00:00
Mike Melanson
f44b08a5a0 apply the loop filter to fragments as they are rendered into the final
output

Originally committed as revision 4291 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-21 05:20:52 +00:00
Mike Melanson
dc4b78d9dd render by the slice rather than the plane
Originally committed as revision 4290 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-21 04:43:36 +00:00
Mike Melanson
7dc9ed1155 clean up some warnings and dead code
Originally committed as revision 4288 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-21 02:06:27 +00:00
Mike Melanson
7f9926a45e another bitstream extraction to optimize: fixed-length motion vectors
Originally committed as revision 4286 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-21 01:12:41 +00:00
Mike Melanson
39922395d2 read Huffman tables from Theora header (patch courtesy of
Matthieu Castet <castet.matthieu at free.fr>)

Originally committed as revision 4284 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-19 23:59:10 +00:00
Michael Niedermayer
7beddb12d4 use O(number of non zero coeffs) instead of O(number of coeffs) storage for the coefficient colleting/reordering
Originally committed as revision 4279 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-19 10:48:36 +00:00
Mike Melanson
d30769555f replace unpack_token() with a series of lookup tables
Originally committed as revision 4277 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-19 02:43:21 +00:00
Mike Melanson
f4daf33ee8 fix 4MV MC and reinstate new MC VLC
Originally committed as revision 4273 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-18 17:14:59 +00:00
Michael Niedermayer
288774bbfc reduce size of Vp3Fragment from 32byte to 16byte
Originally committed as revision 4270 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-18 09:07:26 +00:00
Michael Niedermayer
b5da363592 optimizing rle decoding loops a little
Originally committed as revision 4269 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-18 08:48:11 +00:00
Michael Niedermayer
8aeadb903a disabling buggy optimizations
Originally committed as revision 4268 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-18 07:59:07 +00:00
Mike Melanson
d8278bab79 replace get_superblock_run_length() with a VLC table
Originally committed as revision 4267 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-18 00:11:49 +00:00
Mike Melanson
0ad72bdd5c use VLCs for in place of get_fragment_run_length(), get_mode_code(), and
get_motion_vector_vlc()

Originally committed as revision 4266 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 23:39:23 +00:00
Michael Niedermayer
6f7aa5891d some optimizations gcc should have done (10% faster loop filter)
Originally committed as revision 4263 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 20:50:47 +00:00
Michael Niedermayer
ee408eadba SATURATE_U8 -> clip_uint8 (10% faster loop filter)
Originally committed as revision 4262 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 20:30:22 +00:00
Michael Niedermayer
1482fee88d remove duplicate zigzag tables
Originally committed as revision 4259 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 11:36:07 +00:00
Michael Niedermayer
36af0c959e fix idct permutation
Originally committed as revision 4258 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 11:31:57 +00:00
Michael Niedermayer
8b6103da0f porting vp3 idct over to lavc idct api
Originally committed as revision 4257 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 11:12:04 +00:00
Michael Niedermayer
ea191e08d6 remove permutation done to quant tables and then undone during idct
move permutation from idct to unpack_vlcs

Originally committed as revision 4256 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 09:18:49 +00:00
Michael Niedermayer
36661afe02 fix last coeff
Originally committed as revision 4254 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 08:46:40 +00:00
Michael Niedermayer
a2df5a50ae clear blocks after each idct instead of per picture
dont store the all zero coefficients of skiped blocks

Originally committed as revision 4253 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-17 00:52:29 +00:00
Michael Niedermayer
220a6f401d some benchmarking code
Originally committed as revision 4250 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-16 21:49:18 +00:00
Michael Niedermayer
d5e188359e various 10l fixes for the loop filter
Originally committed as revision 4249 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-16 17:22:36 +00:00
Michael Niedermayer
7bad42cf59 fix dequant matrix
Originally committed as revision 4246 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-16 09:29:13 +00:00
Matthieu Castet
ba7ee4a460 fix theora header parsing
patch by Matthieu Castet <castet dot matthieu at free dot fr>

Originally committed as revision 4238 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-13 21:06:44 +00:00
Måns Rullgård
aac064b5bd theora decoding using libtheora
Originally committed as revision 4218 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-11 16:42:15 +00:00
Michael Niedermayer
ee89b2b9e7 04-vp3 fix(by matthieu castet).patch
Originally committed as revision 3998 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-03-03 02:24:20 +00:00
Mike Melanson
a54ea19a52 VP3 post-processing loop filter; disabled until the correct final step
is determined

Originally committed as revision 3996 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-03-01 06:14:45 +00:00
Michael Niedermayer
edaf11e87a 10l (negative strides)
Originally committed as revision 3887 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-01-26 17:04:34 +00:00
Michael Niedermayer
0ecca7a49f various security fixes and precautionary checks
Originally committed as revision 3822 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-01-12 00:16:25 +00:00