summaryrefslogtreecommitdiff
path: root/libavcodec/hevcpred_template.c
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/hevcpred: Pass HEVCLocalContext when slice-threadingAndreas Rheinhardt2022-07-251-4/+4
| | | | | | | | | | | | | | | | | The HEVC decoder has both HEVCContext and HEVCLocalContext structures. The latter is supposed to be the structure containing the per-slicethread state. Yet that is not how it is handled in practice: Each HEVCLocalContext has a unique HEVCContext allocated for it and each of these coincides except in exactly one field: The corresponding HEVCLocalContext. This makes it possible to pass the HEVCContext everywhere where logically a HEVCLocalContext should be used. This commit stops doing this for lavc/hevcpred as well as the corresponding mips code; the latter is untested. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/hevcdec: constrained intra predict, do not check top left IS_INTRA ↵Xu Guangxin2020-10-281-1/+1
| | | | | | | | | | | | | | if it's not available fix ticket: 8932 For poc 2, we have tile boundary at x = 640. When we predict cu(640,912),the top left pixel is not avaliable to the cu. So, we can not check it's intra or not. We need set top[-1] = top[0] directly. see 8.4.4.2.1 for details Signed-off-by: Xu Guangxin <oddstone@gmail.com> Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com>
* avcodec/hevcpred_template: Fix diagonal chroma availability in 4:2:2 edge ↵Michael Niedermayer2020-10-171-2/+3
| | | | | | | | | case in intra_pred Fixes: pixel decode issue.ts Fixes: raw frame.hevc Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcpred_template: Fix left shift of negative valueMichael Niedermayer2017-06-171-1/+1
| | | | | | | | Fixes: runtime error: left shift of negative value -1 Fixes: 2250/clusterfuzz-testcase-minimized-5693382112313344 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2'Michael Niedermayer2015-07-121-31/+31
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2': hevc: remove HEVCContext usage from hevc_ps Conflicts: libavcodec/hevc.c libavcodec/hevc_cabac.c libavcodec/hevc_filter.c libavcodec/hevc_mvs.c libavcodec/hevc_ps.c libavcodec/hevc_refs.c libavcodec/hevcpred_template.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: remove HEVCContext usage from hevc_psAnton Khirnov2015-07-121-27/+27
| | | | | | | | | | | | Factor out the parameter sets into a separate struct and use it instead. This will allow us to reuse this code in the parser.
* | avcodec: use av_mod_uintp2() where usefulJames Almer2015-04-211-2/+2
| | | | | | | | | | Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* | hevc/rext: basic infrastructure for supporting range extensionMickaël Raulet2014-07-151-6/+3
| | | | | | | | | | | | | | | | - support for 4:2:2 and 4:4:4 up to 12 bits - add a new profile for range extension (cherry picked from commit d3c067fa65bbc871758d28aa07f54123430ca346) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/pps: optimized size of min_tb_addr_zsgcocherel2014-06-241-7/+6
| | | | | | | | | | | | | | reduce computation too (cherry picked from commit 39c4d45c7788081c45c7fae51b7c5d0bcbaece9d) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'c9f8809ee4c576d5833865039bc1c85754448f67'Michael Niedermayer2014-05-191-12/+7
|\ \ | |/ | | | | | | | | | | | | | | | | * commit 'c9f8809ee4c576d5833865039bc1c85754448f67': hevc/intra_pred: simplify neighboring sample derivation Conflicts: libavcodec/hevcpred_template.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc/intra_pred: simplify neighboring sample derivationAnton Khirnov2014-05-191-9/+7
| |
| * hevc/intra_pred: drop unnecessary conditions in loopsMickaël Raulet2014-05-191-19/+10
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit '4c390b1ba98e6aec787aa0e7ea57ed7cb38283b7'Michael Niedermayer2014-05-191-35/+25
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit '4c390b1ba98e6aec787aa0e7ea57ed7cb38283b7': hevc/intra_pred: optimize EXTEND_()* Conflicts: libavcodec/hevcpred_template.c See: 053fdacde76a38186dc9db658572e38686efe0c4 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc/intra_pred: optimize EXTEND_()*Mickaël Raulet2014-05-191-37/+28
| | | | | | | | | | | | Process 4 pixels at once. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit 'a1c2b48018b09d2613f075ec0748c95bd520ac00'Michael Niedermayer2014-05-191-1/+15
|\ \ | |/ | | | | | | | | | | | | | | | | * commit 'a1c2b48018b09d2613f075ec0748c95bd520ac00': hevc: templatize intra_pred Conflicts: libavcodec/hevc.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: templatize intra_predAnton Khirnov2014-05-191-1/+15
| |
* | Merge commit '04db5794cd97e4b33ec2f963ef7f967722a456eb'Michael Niedermayer2014-05-191-20/+10
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit '04db5794cd97e4b33ec2f963ef7f967722a456eb': hevc: templatize pred_planar Conflicts: libavcodec/hevcpred_template.c See: 053fdacde76a38186dc9db658572e38686efe0c4 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: templatize pred_planarMickaël Raulet2014-05-191-42/+18
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * Add HEVC decoderGuillaume Martres2013-10-311-0/+560
| | | | | | | | | | | | | | | | | | | | | | Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC project. Further contributions by the OpenHEVC project and other developers, namely: Mickaël Raulet <mraulet@insa-rennes.fr> Seppo Tomperi <seppo.tomperi@vtt.fi> Gildas Cocherel <gildas.cocherel@laposte.net> Khaled Jerbi <khaled_jerbi@yahoo.fr> Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr> Vittorio Giovara <vittorio.giovara@gmail.com> Jan Ekström <jeebjp@gmail.com> Anton Khirnov <anton@khirnov.net> Martin Storsjö <martin@martin.st> Luca Barbato <lu_zero@gentoo.org> Yusuke Nakamura <muken.the.vfrmaniac@gmail.com> Reimar Döffinger <Reimar.Doeffinger@gmx.de> Diego Biurrun <diego@biurrun.de> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: fixing code indenting in hevcpred(cherry picked from commit ↵Mickaël Raulet2014-05-131-10/+11
| | | | | | 28a5916845928de2951013b5398465573b181925) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* hevc/intrapred: fix indent(cherry picked from commit ↵Mickaël Raulet2014-05-131-24/+24
| | | | | | ab167f3158cf37bd679bda28566170e2c3691686) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* hevc: a much faster implementation of intra prediction (up to 1s onMickaël Raulet2014-05-131-175/+180
| | | | | | haswell 2.6GHz on basket ball drive all intra qp 27)(cherry picked from commit 5de9739176f0eb4c205e80a91628a0196c9924b2) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* hevc: C code update for new motion compensationMickaël Raulet2014-05-061-6/+6
| | | | | | | pretty print C Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avcodec/hevcpred_template: also initialize top[-1] for constrained intra ↵Michael Niedermayer2014-03-021-0/+1
| | | | | | | | | prediction Fixes out of array read Fixes: 387713a12dc5cfa27fcb4178084ce1ea-asan_stack-oob_131176a_1182_cov_3861068719_CAINIT_C_SHARP_3.bit Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* libavcodec/hevc: random cosmetics to reduce diff to ↵Michael Niedermayer2013-11-021-15/+14
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* libavcodec/hevc: reduce whitespace differences to ↵Michael Niedermayer2013-11-021-1/+1
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* libavcodec/hevc: reduce bracket differences to ↵Michael Niedermayer2013-11-021-4/+2
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avcodec/hevc: more whitespaces to reduce difference to ↵Michael Niedermayer2013-11-021-0/+2
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avcodec/hevc: Adjust white-spaces to reduce difference to ↵Michael Niedermayer2013-11-021-67/+72
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* hevc : cosmetic changes(cherry picked from commit ↵Mickaël Raulet2013-10-271-9/+13
| | | | | | | | 7308c0ccf13f18cebe4851e6dcd6b5c0b09be1dd) Decreases the difference to Anton Khirnovs patch v5 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avcodec/hevcpred_template: Fix integer overflowsMichael Niedermayer2013-10-271-2/+2
| | | | | | | | | | | | | | | | | signed integer overflow is undefined in C Fixes the following gcc warnings: In file included from libavcodec/hevcpred.c:27:0: libavcodec/hevcpred_template.c: In function ‘intra_pred_8’: libavcodec/hevcpred_template.c:302:9: warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow] In file included from libavcodec/hevcpred.c:31:0: libavcodec/hevcpred_template.c: In function ‘intra_pred_9’: libavcodec/hevcpred_template.c:302:9: warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow] In file included from libavcodec/hevcpred.c:35:0: libavcodec/hevcpred_template.c: In function ‘intra_pred_10’: libavcodec/hevcpred_template.c:302:9: warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow] Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* hevc: add wavefront parallel processingMickaël Raulet2013-10-221-1/+1
| | | | | | | cherry picked from commit b971f2c8fdc60f8bab605a6e8060492eb548a53a cherry picked from commit e57b0a2c915ce6b8a9d57b8292f6581f0680842e Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* hevc: fix PPS_A_qualcomm_7(cherry picked from commit ↵Mickaël Raulet2013-10-201-1/+6
| | | | | | 2af177a8761c88eb477a658eebcf4264068aa773) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* valgrind cleanup(cherry picked from commit ↵gcocherel2013-10-161-10/+23
| | | | | | 0d5efa40b94c0de92a1fe5091b21e0e2d36bae3d) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* lavc: add a HEVC decoder.Guillaume Martres2013-10-151-0/+533
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC project. Further contributions by the OpenHEVC project and other developers, namely: Mickaël Raulet <mraulet@insa-rennes.fr> Seppo Tomperi <seppo.tomperi@vtt.fi> Gildas Cocherel <gildas.cocherel@laposte.net> Khaled Jerbi <khaled_jerbi@yahoo.fr> Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr> Vittorio Giovara <vittorio.giovara@gmail.com> Jan Ekström <jeebjp@gmail.com> Anton Khirnov <anton@khirnov.net> Martin Storsjö <martin@martin.st> Luca Barbato <lu_zero@gentoo.org> Yusuke Nakamura <muken.the.vfrmaniac@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>