Commit Graph

328 Commits

Author SHA1 Message Date
Ronald S. Bultje
8dcf518430 vp3/theora: flush after seek. 2011-07-28 12:17:26 -07:00
Stefano Sabatini
ce5e49b0c2 replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_* 2011-05-02 16:41:41 +02:00
Stefano Sabatini
975a1447f7 Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-02 12:18:44 +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
Ronald S. Bultje
f28e599fbc vp3-mt: fix deadlock when first frame is not a keyframe.
(cherry picked from commit 8cf9a09d40)
2011-03-03 14:15:12 +01:00
Ronald S. Bultje
8cf9a09d40 vp3-mt: fix deadlock when first frame is not a keyframe. 2011-03-02 12:15:07 -05:00
David Conrad
0cfcbf217f Fix VP3 edge emulation
With negative stride, the start of the edge_emu buffer should be pointing to
the last line, not the end of the buffer.
With positive stride, pointing to the end of the buffer was completely wrong.
(cherry picked from commit a89f4ca005)
2011-02-20 19:05:46 +01:00
Jason Garrett-Glaser
d14723861b VP3: fix decoding of videos with stride > 2048
Also remove qscale_table code; this didn't make sense anyways as VP3 doesn't
use an MPEG-like quantizer scale.
(cherry picked from commit 902685b8ab)
2011-02-20 19:05:44 +01:00
David Conrad
a89f4ca005 Fix VP3 edge emulation
With negative stride, the start of the edge_emu buffer should be pointing to
the last line, not the end of the buffer.
With positive stride, pointing to the end of the buffer was completely wrong.
2011-02-19 01:42:12 -08:00
Jason Garrett-Glaser
902685b8ab VP3: fix decoding of videos with stride > 2048
Also remove qscale_table code; this didn't make sense anyways as VP3 doesn't
use an MPEG-like quantizer scale.
2011-02-18 14:40:57 -08:00
Reinhard Tartler
7ffe76e540 Merge libavcore into libavutil
Done to keep ABI compatible. Otherwise this is just silly
2011-02-16 23:00:30 +01:00
Reinhard Tartler
737eb5976f Merge libavcore into libavutil
It is pretty hopeless that other considerable projects will adopt
libavutil alone in other projects. Projects that need small footprint
are better off with more specialized libraries such as gnulib or rather
just copy the necessary parts that they need. With this in mind, nobody
is helped by having libavutil and libavcore split. In order to ease
maintenance inside and around FFmpeg and to reduce confusion where to
put common code, avcore's functionality is merged (back) to avutil.

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-02-15 16:18:21 +01:00
Alexander Strange
4a5a16898f vp3: Frame-based multithreading support
Decode times for big_buck_bunny_720p_stereo:

1 thread:
real    1m14.227s
user    1m13.104s
sys     0m1.108s

2 threads: (33% faster)
real    0m49.329s
user    1m33.735s
sys     0m1.834s

3 threads: (44% faster)
real    0m41.593s
user    1m44.884s
sys     0m1.967s
(cherry picked from commit d23845f311)
2011-02-11 02:54:08 +01:00
Alexander Strange
d23845f311 vp3: Frame-based multithreading support
Decode times for big_buck_bunny_720p_stereo:

1 thread:
real    1m14.227s
user    1m13.104s
sys     0m1.108s

2 threads: (33% faster)
real    0m49.329s
user    1m33.735s
sys     0m1.834s

3 threads: (44% faster)
real    0m41.593s
user    1m44.884s
sys     0m1.967s
2011-02-09 09:17:29 -05:00
Alexander Strange
3c90abf40f vp3: Move table allocation code into a new function
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit edbb0c0708)
2011-02-06 20:31:45 +01:00
Alexander Strange
dc4a188309 vp3: Factor out expression
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit e8dcd73058)
2011-02-06 20:31:45 +01:00
Alexander Strange
edbb0c0708 vp3: Move table allocation code into a new function
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-05 20:00:57 -05:00
Alexander Strange
e8dcd73058 vp3: Factor out expression
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-05 19:57:01 -05:00
Ronald S. Bultje
d23e3e5fea Move ff_emulated_edge_mc() into DSPContext.
(cherry picked from commit 2e27959879)
2011-01-30 03:41:01 +01:00
Ronald S. Bultje
2e27959879 Move ff_emulated_edge_mc() into DSPContext. 2011-01-28 22:13:26 -05:00
Diego Elio Pettenò
e7e2df27f8 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit d36beb3f69)
2011-01-28 03:15:34 +01:00
Diego Elio Pettenò
d36beb3f69 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +00:00
Alexander Strange
6ee99a7e13 VP3: remove an unnecessary static variable
Originally committed as revision 26398 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-17 08:36:13 +00:00
Jason Garrett-Glaser
9d777508fa Remove dead code in theora_decode_tables
Reading 7 bits as an unsigned int can't result in a value exceeding 127.
Accordingly, remove error message (as it'll never be reached).

Originally committed as revision 25575 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-26 07:37:51 +00:00
Jason Garrett-Glaser
10f6915814 Reindent after r25573
Originally committed as revision 25574 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-26 07:30:01 +00:00
Jason Garrett-Glaser
1a48a57071 Fix Theora decoding bug if loopfilter is completely disabled
Bug caused by the fact that get_bits(gb, 0) is undefined.
Doesn't affect any streams generated by the official Theora encoder, but such
streams are nevertheless valid.

Fixes decoding of CELT-933dd833-nmr-bandt.ogv.

Originally committed as revision 25573 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-26 07:29:00 +00:00
Reimar Döffinger
83f72f138e Only draw the actually visible area in vp3_draw_horiz_band.
Fixes a black line in non-swapped, non-mod-16-height Theora videos
when vp3_draw_horiz_band is used.

Originally committed as revision 25073 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-08 05:51:31 +00:00
Stefano Sabatini
e16f217ceb Use new imgutils.h API names, fix deprecation warnings.
Originally committed as revision 25058 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-07 19:15:29 +00:00
Reimar Döffinger
3d487db153 Fix slice height for y position calculation for vp3_draw_horiz_band
when the video uses 4:2:2 instead of 4:2:0 coding.

Originally committed as revision 25052 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-06 19:26:18 +00:00
Reimar Döffinger
3b9ee20f70 Fix vp3_draw_horiz_band to not produce completely chaotical values
that result in overdrawing areas again and again if s->flipped_image
is false.

Originally committed as revision 25051 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-06 19:21:13 +00:00
Reimar Döffinger
6974952d24 VP3/Theora: validate aspect and reduce it before exporting it
via the context.

Originally committed as revision 25050 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-06 17:53:29 +00:00
Stefano Sabatini
6ce9b4310c Remove use of the deprecated function avcodec_check_dimensions(), use
av_check_image_size() instead.

Originally committed as revision 24711 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-06 09:37:04 +00:00
Måns Rullgård
49bd8e4b84 Fix grammar errors in documentation
Originally committed as revision 23904 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 15:38:06 +00:00
Reimar Döffinger
8764389d47 Fix vp3_draw_horiz_band to calculate chroma offsets correctly
for 4:2:2 and 4:4:4 formats.

Originally committed as revision 23537 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-08 19:25:28 +00:00
David Conrad
a4501a45db vp3: Skip the loop filter when strength is 0 or when requested
Originally committed as revision 23346 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-27 04:39:12 +00:00
David Conrad
cc46005f50 theora: Don't read an excess bit for maximum length long bit runs if the run
exactly ends the remaining blocks.

Originally committed as revision 23304 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-25 03:19:54 +00:00
David Conrad
8e6daa4a95 theora: coeff huffman codes are allowed to be up to 32 bits long (for 32 tokens)
Originally committed as revision 22931 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-21 13:19:00 +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
David Conrad
33e623831b vp3: Use avctx pointer directly
Originally committed as revision 22899 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-17 10:37:42 +00:00
David Conrad
8099d6c985 vp3: Read fps and aspect ratio in the decoder
Originally committed as revision 22898 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-17 02:04:39 +00:00
David Conrad
ddc7e438e0 vp3: Don't crop if there's a left/top offset, it's wrong
Fixes issue1834

Originally committed as revision 22897 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-17 02:04:35 +00:00
David Conrad
eb6a6cd788 vp3: DC-only IDCT
2-4% faster overall decode

Originally committed as revision 22896 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-17 02:04:30 +00:00
David Conrad
6086731299 vp3: More buffer length checks
.5% slower to fix some crashes on invalid streams

Originally committed as revision 22893 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-16 12:21:44 +00:00
David Conrad
d7097c2d88 vp3: Remove internal debug statement
Originally committed as revision 22892 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-16 12:21:41 +00:00
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