summaryrefslogtreecommitdiff
path: root/libavcodec/vp9.c
Commit message (Collapse)AuthorAge
* vp9/x86: invert hu_ipred left array ordering.Ronald S. Bultje2014-12-19
| | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Merge commit '312daa15891dc7abb77a404fe927d5ee35c52a71'Michael Niedermayer2014-11-21
|\ | | | | | | | | | | | | | | | | | | | | | | | | * commit '312daa15891dc7abb77a404fe927d5ee35c52a71': vp9: Use the correct upper bound for seg_id Conflicts: libavcodec/vp9.h libavcodec/vp9block.c Not merged, the value was correct before as far as i can see Merged-by: Michael Niedermayer <michaelni@gmx.at>
* | vp9: enable multi-thread decoding when refreshctx is equal to 0Di Wu2014-10-10
| | | | | | | | | | | | | | | | | | | | | | In vp9_decode_frame function, ff_thread_finish_setup is not called when refreshctx is equal to 0, and the next decoding thread can not start work until the cunrrent frame has been decoded completely. So ff_thread_finish_setup needs to be called to enable Multi-thread decoding in this condition. Signed-off-by: Di Wu <di1028.wu@samsung.com> Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
* | Merge commit 'eddf95283fbba1b469b76e7518bc3941f671b193'Michael Niedermayer2014-10-09
|\| | | | | | | | | | | | | * commit 'eddf95283fbba1b469b76e7518bc3941f671b193': vp9: initialize color space and range properties Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vp9: initialize color space and range propertiesVittorio Giovara2014-10-08
| |
| * vp9: Read the frame size as unsignedLuca Barbato2014-05-03
| | | | | | | | | | | | Sample-Id: 00001723-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
| * vp9: fix bugs in updating coef probabilities with parallelmode=1Guillaume Martres2014-01-24
| | | | | | | | | | | | | | | | | | - The memcpy was completely wrong because s->prob_ctx[s->framectxid].coef is a [4][2][2][6][6][3] array, whereas s->prob.coef is a [4][2][2][6][6][11] array. - The additional check was committed to ffmpeg by Ronald S. Bultje. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avcodec/vp9: Use av_malloc_array()Michael Niedermayer2014-08-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | vp9: ignore reference segmentation map if error_resilience flag is set.Ronald S. Bultje2014-08-13
| | | | | | | | | | | | Fixes ffvp9_fails_where_libvpx.succeeds.webm from ticket 3849. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | vp9: remove unused assignmentTimothy Gu2014-07-16
| | | | | | | | | | | | Signed-off-by: Timothy Gu <timothygu99@gmail.com> Reviewed-by: BBB Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/vp9: fix () in macrosMichael Niedermayer2014-06-18
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '6d69f9f37689c999815a65a2d99999fad3a41705'Michael Niedermayer2014-04-25
|\ \ | | | | | | | | | | | | | | | | | | * commit '6d69f9f37689c999815a65a2d99999fad3a41705': vp9: write uveob as 16-bit value for 16x16/32x32 transforms. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * | vp9: write uveob as 16-bit value for 16x16/32x32 transforms.Ronald S. Bultje2014-04-25
| | | | | | | | | | | | This fixes make fate-vp9-00-quantizer-01 THREADS=2.
* | | vp9: use LOCAL_ALIGNED_32 for left/top intra_pred pointersJames Almer2014-04-25
|/ / | | | | | | | | | | | | | | This is needed for future AVX2 implementations Signed-off-by: James Almer <jamrial@gmail.com> Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | vp9: split decode_coeff_b loop inside txsz branch.Ronald S. Bultje2014-02-17
| | | | | | | | | | | | | | | | The advantage of this is that the is32x32 division branch in decode_coeffs_b is removed from the inner loop to outside the block coef decoding loop in decode_coeffs. Also, it allows us to merge the txsz branches from the block coef decoding loop, the context merge and the context split.
* | vp9: fix compilation with !HAVE_FAST_64BIT.Clément Bœsch2014-02-09
| | | | | | | | Spotted-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
* | vp9: invert order in l[] intra prediction array.Ronald S. Bultje2014-02-09
| | | | | | | | | | | | The directional intra predictors either don't care about order (dc, h, dc_left, tm), or they prefer inverted order (vr, dr, hd). This allows more efficient SIMD implementations.
* | vp9: remove memset in loopfilter level setting loop.Ronald S. Bultje2014-02-09
| | | | | | | | Use same function for segmentation map writing also.
* | vp9: coef decoding context-splat speedup.Ronald S. Bultje2014-02-09
| |
* | vp9: decode_mode context optimizations.Ronald S. Bultje2014-02-09
| |
* | vp9: more aligned zeroes.Ronald S. Bultje2014-02-09
| |
* | vp9: faster skip-block coefficient blanking.Ronald S. Bultje2014-02-09
| |
* | vp9: coef context reading optimization.Ronald S. Bultje2014-02-09
| |
* | vp9: just disallow temporal or no-update segmentation on size-change.Ronald S. Bultje2014-02-09
| | | | | | | | | | | | The spec doesn't describe how it should be decoded so this is probably the safest thing to do. Fixes valgrind errors on fuzzed11.ivf and fixes valgrind errors on fuzzed10.ivf differently.
* | vp9: don't allow retaining old segmentation maps after a size change.Ronald S. Bultje2014-02-08
| | | | | | | | Fixes valgrind warnings on fuzzed10.ivf.
* | vp9: some variable re-arrangements for alignment.Ronald S. Bultje2014-02-08
| |
* | vp9: re-allocate block buffers on uses_2pass change w/o size change.Ronald S. Bultje2014-02-08
| | | | | | | | Fixes valgrind errors and crashes in fuzzed9.ivf.
* | vp9: fix mix-up of last-frame/cur-frame in frame size checks.Ronald S. Bultje2014-02-08
| | | | | | | | Fixes invalid reads in fuzzed7.ivf.
* | vp9: fix invalid ref frame w/h on size change.Ronald S. Bultje2014-01-26
| | | | | | | | | | | | | | | | | | Fixes invalid reads and crashes in vp90-2-05-resize.webm and fuzzed6.ivf. The output is still not identical to what libvpx does (because we don't actually scale in MC). Reviewed-by: ubitux Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | vp9: disable use_last_frame_mvs on resolution change (scalable).Ronald S. Bultje2014-01-26
| | | | | | | | | | | | | | | | Prevents some invalid memory accesses after resolution change in vp90-2-05-resize.webm, and libvpx does this too. Reviewed-by: ubitux Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | vp9: fix memory corruption if header decoding fails after size change.Ronald S. Bultje2014-01-24
| |
* | vp9: fix mt-related hang a parser infinite loop.Ronald S. Bultje2014-01-11
| | | | | | | | | | | | | | Fixes trac ticket 3274. Looked-at-by: ubitux Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'ca96e337169093979d7c763064ad9dae12b3108c'Michael Niedermayer2014-01-09
|\| | | | | | | | | | | | | | | | | | | * commit 'ca96e337169093979d7c763064ad9dae12b3108c': vp9: drop support for real (non-emulated) edges Conflicts: libavcodec/vp9block.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavc: VP9 decoderRonald S. Bultje2013-11-15
| | | | | | | | | | | | | | Originally written by Ronald S. Bultje <rsbultje@gmail.com> and Clément Bœsch <u@pkh.me> Further contributions by: Anton Khirnov <anton@khirnov.net> Diego Biurrun <diego@biurrun.de> Luca Barbato <lu_zero@gentoo.org> Martin Storsjö <martin@martin.st> Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* vp9: make mv bounds 32bit.Ronald S. Bultje2014-01-07
| | | | Fixes an assert in file from trac ticket 3188.
* vp9: reset contextual caches on frame size change with mt enabled.Ronald S. Bultje2014-01-07
| | | | Fixes crash/valgrind errors in trac ticket 3188 and hang in 3274.
* vp9: fix crash if segmentation=1, keyframe/intraonly=1 and updatemap=0.Ronald S. Bultje2013-12-24
| | | | | | | | | The reference map is never used in such cases, but we accidently copied it anyway. This could cause crashes if this map has not yet been allocated. Fixes trac ticket 3188. Reviewed-by: Clément Bœsch <u@pkh.me> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* vp9: fix bug in updating of coef probabilities with parallelmode=1.Ronald S. Bultje2013-12-24
| | | | | | | Fixes trac ticket 3228. Reviewed-by: Clément Bœsch <u@pkh.me> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* vp9: make decode_coeffs() return value void.Ronald S. Bultje2013-11-30
| | | | | | | It was previously int and would return error if decode_coeffs_b() returns an error; however, that can never happen, so refactor all that code to make all dependent functions return void also (all the way up to decode_coeffs_sb()).
* vp9: cosmetics.Ronald S. Bultje2013-11-30
|
* vp9: add a 2-pass decoding mode, and add frame-mt support.Ronald S. Bultje2013-11-30
| | | | | | | For a random 1080p sample, decoding time went from 9.7sec (1 threads) to 6.0sec (2 threads) and 5.2sec (4 threads) in 2-pass decoding mode. I don't have any samples that use the parallelmode feature, but the gains should be higher.
* vp9: allocate 'b', 'block/uvblock' and 'eob/uveob' dynamically.Ronald S. Bultje2013-11-30
|
* vp9: split last/cur_frame from the reference buffers.Ronald S. Bultje2013-11-30
| | | | | | We need more information from last/cur_frame than from reference buffers, so we can use a simplified structure for reference buffers, and then store mvs and segmentation map information in last/cur.
* vp9: move some entries out of VP9Block into VP9Context.Ronald S. Bultje2013-11-30
| | | | | They aren't really block-related variables in the sense that they are not block-coded, rather they are state trackers.
* vp9: split packet parsing into an AVParser.Ronald S. Bultje2013-11-30
|
* vp9: use proper refcounting.Ronald S. Bultje2013-11-30
| | | | | Based on something similar in libav. Author is likely Anton Khirnov <anton@khirnov.net> but I'm not sure.
* avcodec/vp9: assert on sane size in update_size().Clément Bœsch2013-11-16
| | | | | | | | | w and h are both read as uint16 + 1 so this can not happen. A similar change was introduced in 97962b2 / 72ca830, with the av_log()+AVERROR_INVALIDDATA form, suggesting it could be triggerable somehow. Change suggested by Ronald S. Bultje.
* avcodec/vp9: remove some reset-to-zero from vp9_decode_free().Clément Bœsch2013-11-16
| | | | | | | | | | | | Those should not be necessary. Original change by one of these developers: Anton Khirnov <anton@khirnov.net> Diego Biurrun <diego@biurrun.de> Luca Barbato <lu_zero@gentoo.org> Martin Storsjö <martin@martin.st> See 97962b2 / 72ca830
* avcodec/vp9: add a never triggerable assert.Clément Bœsch2013-11-16
| | | | | | | | | vp8_rac_get_tree() is called with a tree of size 3, so the returned value can not be outside [0;3]. All of the [0;3] cases are handled in the switch, so the assert should not be triggerable by any means. A similar change was introduced in 97962b2 / 72ca830, with the av_log()+AVERROR_INVALIDDATA form, suggesting it could be triggerable somehow. This assert might help static analyzer, or simply the reader.
* vp9: Ensure that the arithmetic coder values are read in the right orderMartin Storsjö2013-11-16
| | | | | | | | | The operands of an addition can be evaluated in any order, since the addition isn't a sequence point. The only operators that have a defined evaluation order are &&, ||, ?: and the sequence operator ','. This fixes fate-vp9 on ARM RVCT.