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
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