summaryrefslogtreecommitdiff
path: root/libavcodec/vp8.c
Commit message (Collapse)AuthorAge
* cosmetics: Group .name and .long_name together in codec/format declarationsDiego Biurrun2013-10-03
|
* Add a WebP decoderJustin Ruggles2013-09-18
| | | | | Container and lossy decoding by Aneesh Dogra <aneesh@sugarlabs.org> Lossless decoding by Justin Ruggles <justin.ruggles@gmail.com>
* vp8: Wait for prev_frame to parse segment_map before reading itRonald S. Bultje2013-07-07
| | | | | | | This fixes occasional failures of vp8-test-vector-010 with frame-level multithreading enabled. Signed-off-by: Martin Storsjö <martin@martin.st>
* vp8: Fix pthread_cond and pthread_mutex leaksMatt Wolenetz2013-03-30
| | | | | | CC: libav-stable@libav.org Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* avcodec: av_log_missing_feature(1) ---> avpriv_request_sample()Diego Biurrun2013-03-13
|
* lavc decoders: work with refcounted frames.Anton Khirnov2013-03-08
|
* Drop DCTELEM typedefDiego Biurrun2013-01-22
| | | | | | It does not help as an abstraction and adds dsputil dependencies. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* lavc: introduce VideoDSPContextRonald S. Bultje2012-12-20
| | | | | | | | Move some functions from dsputil. The idea is that videodsp contains functions that are useful for a large and varied set of video decoders. Currently, it contains emulated_edge_mc() and prefetch(). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* lavc: fix decode_frame() third parameter semantics for video decodersAnton Khirnov2012-12-04
| | | | It's got_frame, not data size
* vp8: fix memset() crossing array boundaryMans Rullgard2012-10-27
| | | | | | Indexing across array boundaries is not allowed by C99. Signed-off-by: Mans Rullgard <mans@mansr.com>
* vp8: reset loopfilter delta values at keyframes.Sami Pietila2012-10-12
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormatAnton Khirnov2012-10-08
|
* doxygen: Fix function parameter names to match the codeDiego Biurrun2012-08-09
|
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* vp8: Replace x*155/100 by x*101581>>16.Ronald S. Bultje2012-07-25
| | | | | | Idea stolen from webp (by Pascal Massimino) - because it's Cool. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* vp8: Enclose pthread function calls in ifdefsMartin Storsjö2012-07-15
| | | | | | This fixes building with threads disabled. Signed-off-by: Martin Storsjö <martin@martin.st>
* vp8: Include the thread headers before using the pthread typesMartin Storsjö2012-07-14
| | | | | | | This was unnoticed on linux, since stdlib.h apparently includes files declaring the pthread_mutex_t and pthread_cond_t types. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* vp8: implement sliced threadingDaniel Kang2012-07-14
| | | | | | | | | | | | Testing gives 25-30% gain on HD clips with two threads and up to 50% gain with eight threads. Sliced threading uses more memory than single or frame threading. Frame threading and single threading keep the previous memory layout. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* vp8: move data from VP8Context->VP8MacroblockDaniel Kang2012-07-14
| | | | | | In preparation for sliced threading. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* vp8: refactor decoding a single mb_rowDaniel Kang2012-07-14
| | | | | | This is in preperation for sliced threading. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* vp8: move block coeff arithcoder on stack.Ronald S. Bultje2012-05-30
| | | | | | | This prevents gcc from assuming that contents of it may have changed between calls to vp56_range_get_prob(), thus preventing countless (and unnecessary) movs. Decoding of sintel trailer goes from (avg+SG) 9.796 +/- 0.003 to 9.635 +/- 0.010.
* vp8: update frame size changes on thread context switches.Ronald S. Bultje2012-05-02
| | | | | | | | | This properly synchronizes frame size changes between threads if subsequent threads abort decoding before frame size is initialized, i.e. it prevents the thread after that from ping-ponging back to the original value. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
* cosmetics: Align codec declarationsMartin Storsjö2012-04-06
| | | | | | | Also break some long lines, remove codec function placeholder comments and add spaces in sample/pixel format lists. Signed-off-by: Martin Storsjö <martin@martin.st>
* vp8: fix update_lf_deltas in libavcodec/vp8.cJanne Salonen2012-03-24
| | | | | | | | | lf_delta.ref[i] and lf_delta.mode[i] were incorrectly reset to 0 if specific delta value was not updated. Fixed to keep the previous value if flag indicates that element in question is not updated. Signed-off-by: Janne Salonen <jsalonen@google.com> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* vp8: avoid race condition on segment map.Aaron Colwell2012-03-19
| | | | | | | | | | | This change avoids accessing the segment map of the previous frame if segmentation is not enabled for the current frame. The caller of decode_mb_mode() only calls ff_thread_await_progress() on the reference segmentation index array if segmentation is enabled, so Chromium's TSAN will report a race when accessing this data while segmentation is not enabled. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* dsputil: Add ff_ prefix to the dsputil*_init* functionsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* vp8: always update next_framep[] before returning from decode_frame().Ronald S. Bultje2012-02-07
| | | | | | | | | | Also slightly move around code not allocate a new frame if we won't decode it. This prevents us from putting undecoded frames in frame pointers, which (in mt decoding) other threads will use and wait on as references, causing a deadlock (if we skipped decoding) or a crash (if we didn't initialized next_framep[] at all). Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
* doxygen: Do not include license boilerplates in Doxygen comment blocks.Diego Biurrun2012-02-06
|
* vp8: flush buffers on size changes.Aaron Colwell2011-12-02
|
* avcodec: move some AVCodecContext fields to an internal struct.Justin Ruggles2011-11-19
| | | | | | | | A new field, AVCodecContext.internal is used to hold a new struct AVCodecInternal, which has private fields that are not codec-specific and are used by general libavcodec functions. Moved internal_buffer, internal_buffer_count, and is_copy.
* vp8: fix overflow in segmentation map caching.Ronald S. Bultje2011-10-28
|
* h264: 4:2:2 intra decoding supportBaptiste Coudurier2011-10-21
| | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* vp8: fix up handling of segmentation_maps in reference frames.Ronald S. Bultje2011-10-21
| | | | | | | | | Associate segmentation_map[] with reference frame, rather than decoding instance. This fixes cases where the map would be free()'ed on e.g. a size change in one thread, whereas the other thread was still accessing it. Also, it fixes cases where threads overwrite data that is still being referenced by the previous thread, who thinks that it's part of the frame previously decoded by the next thread.
* vp8: prevent read from uninitialized memory in decode_mvsRonald S. Bultje2011-10-15
| | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* vp8: force reallocation in update_thread_context after frame size changeRonald S. Bultje2011-10-15
| | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* vp8: fix return value if update_dimensions failsRonald S. Bultje2011-10-15
| | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* vp8: fix signed overflowsMans Rullgard2011-10-08
| | | | | | | In addition to avoiding undefined behaviour, an unsigned type makes more sense for packing multiple 8-bit values. Signed-off-by: Mans Rullgard <mans@mansr.com>
* lavc: use designated initialisers for all codecs.Anton Khirnov2011-07-29
| | | | It's more readable and less prone to breakage.
* doxygen: Fix documentation for some VP8 functions.Diego Biurrun2011-07-04
|
* doxygen: Fix parameter names to match the function prototypes.Diego Biurrun2011-07-03
|
* vp8: fix segmentation race during frame-threading.Ronald S. Bultje2011-05-31
| | | | | Fixes occasional failure of make fate-vp8-test-vector-010 with frame-multithreading enabled.
* vp8: use av_clip_uintp2() where possibleMans Rullgard2011-05-29
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Add av_clip_uintp2() functionMans Rullgard2011-05-13
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 ↵Oskar Arvidsson2011-05-10
| | | | | | | | | | | | | | | | | decoder. This patch lets e.g. dsputil_init chose dsp functions with respect to the bit depth to decode. The naming scheme of bit depth dependent functions is <base name>_<bit depth>[_<prefix>] (i.e. the old clear_blocks_c is now named clear_blocks_8_c). Note: Some of the functions for high bit depth is not dependent on the bit depth, but only on the pixel size. This leaves some room for optimizing binary size. Preparatory patch for high bit depth h264 decoding support. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* vp8: frame-multithreading.Ronald S. Bultje2011-05-02
| | | | | | | | | | | | | | | | | | | | | | Tested on a Mac Pro, 2 CPUs, 2 cores each, OSX 10.6.6: time ./ffmpeg -v 0 -vsync 0 -threads [1234] -i \ ~/Downloads/sintel_trailer_1080p_vp8_vorbis.webm \ -f null -vcodec rawvideo -an - 1: 0m14.630s (89.9 fps) 2: 0m8.056s (163.2 fps) 3: 0m5.882s (223.6 fps) 4: 0m4.952s (265.6 fps) time ./ffmpeg -v 0 -vsync 0 -threads [1234] -i \ ~/Downloads/Elephants_Dream-720p-Stereo.webm \ -f null -vcodec rawvideo -an - 1: 1m12.962s (215.1 fps) 2: 0m44.682s (351.2 fps) 3: 0m31.183s (503.2 fps) 4: 0m25.284s (620.6 fps) Signed-off-by: Anton Khirnov <anton@khirnov.net>
* Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.Stefano Sabatini2011-05-02
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* vp8.c: rename EDGE_* to VP8_EDGE_*.Alexander Strange2011-03-24
|
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* VP8: fix other function declarationJason Garrett-Glaser2011-03-12
| | | | Was missed in 3efbe137.
* VP8: optimize VP8Context struct orderingJason Garrett-Glaser2011-03-12
| | | | | Shaves at least 3KB off code size on x86, should improve cache utilization. This would probably be useful to do for other decoders/encoders as well.