summaryrefslogtreecommitdiff
path: root/libavcodec/hevcdsp_template.c
Commit message (Collapse)AuthorAge
* avcodec/hevcdsp: Constify src pointersAndreas Rheinhardt2022-08-05
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/hevcdsp_template: stay within tables in sao_band_filter()Michael Niedermayer2022-07-12
| | | | | | | | Fixes: out of array read Fixes: 47875/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5719393113341952 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdsp_template: Fix Invalid shifts in put_hevc_qpel_bi_w_h() and ↵Michael Niedermayer2017-12-28
| | | | | | | | | | put_hevc_qpel_bi_w_w() Fixes: left shift of negative value -1 Fixes: 4690/clusterfuzz-testcase-minimized-6117482428366848 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdsp_template.c: Fix undefined shift in FUNC(dequant)Michael Niedermayer2017-12-26
| | | | | | | | Fixes: runtime error: left shift of negative value -180 Fixes: 4626/clusterfuzz-testcase-minimized-5647837887987712 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdsp_template: Fix undefined shift in put_hevc_qpel_bi_w_hv()Michael Niedermayer2017-12-17
| | | | | | | | Fixes: runtime error: left shift of negative value -3 Fixes: 4524/clusterfuzz-testcase-minimized-6055590120914944 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdsp_template: Fix undefined shift in put_hevc_epel_bi_w_h()Michael Niedermayer2017-12-01
| | | | | | | | Fixes: runtime error: left shift of negative value -127 Fixes: 4397/clusterfuzz-testcase-minimized-4779061080489984 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdsp_template: Fix invalid shift in put_hevc_epel_bi_w_v()Michael Niedermayer2017-11-20
| | | | | | | | Fixes: runtime error: left shift of negative value -255 Fixes: 4037/clusterfuzz-testcase-minimized-5290998163832832 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdsp_template: Fix undefined shiftMichael Niedermayer2017-10-03
| | | | | | | | Fixes: runtime error: left shift of negative value -255 Fixes: 3373/clusterfuzz-testcase-minimized-5604083912146944 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdsp_template: Fix undefined shift in put_hevc_pel_bi_w_pixelsMichael Niedermayer2017-09-11
| | | | | | | | Fixes: runtime error: left shift of negative value -95 Fixes: 3077/clusterfuzz-testcase-minimized-4684917524922368 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 '4abe3b049d987420eb891f74a35af2cebbf52144'Clément Bœsch2017-03-23
|\ | | | | | | | | | | | | * commit '4abe3b049d987420eb891f74a35af2cebbf52144': hevc: rename hevc.[ch] to hevcdec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
| * hevc: rename hevc.[ch] to hevcdec.[ch]Anton Khirnov2016-10-16
| | | | | | | | | | This is more consistent with the rest of libav and frees up the hevc.h name for decoder-independent shared declarations.
* | Merge commit 'ba479f3daafc7e4359ec1212164569ebe59f0bb7'James Almer2017-03-21
|\| | | | | | | | | | | | | * commit 'ba479f3daafc7e4359ec1212164569ebe59f0bb7': hevc: Change type of array stride parameters to ptrdiff_t Merged-by: James Almer <jamrial@gmail.com>
| * hevc: Change type of array stride parameters to ptrdiff_tDiego Biurrun2016-09-29
| | | | | | | | ptrdiff_t is the correct type for array strides and similar.
* | lavc/hevc: remove a few random spaces to reduce diff with libavClément Bœsch2017-01-31
| |
* | Merge commit 'cc16da75c2f99d92f7a6461100f041352deb6d88'Clément Bœsch2017-01-31
|\| | | | | | | | | | | | | | | | | | | * commit 'cc16da75c2f99d92f7a6461100f041352deb6d88': hevc: Add coefficient limiting to speed up IDCT Noop again as we have these changes already, only random spacing changes. Merged-by: Clément Bœsch <cboesch@gopro.com>
| * hevc: Add coefficient limiting to speed up IDCTMickaël Raulet2016-07-18
| | | | | | | | | | | | Integrated to libav by Josh de Kock <josh@itanimul.li>. Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
* | Merge commit 'a92fd8a06256e71a0be87b03751ec3c2a4a8aa21'Clément Bœsch2017-01-31
|\| | | | | | | | | | | | | | | | | * commit 'a92fd8a06256e71a0be87b03751ec3c2a4a8aa21': hevc: Add DC IDCT Noop, only spacing adjusted. Merged-by: Clément Bœsch <cboesch@gopro.com>
| * hevc: Add DC IDCTMickaël Raulet2016-07-18
| | | | | | | | | | | | Integrated to Libav by Josh de Kock <josh@itanimul.li>. Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
* | Merge commit '4f247de3b797cdc9d243d26534412f81c306e5b5'Clément Bœsch2017-01-31
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '4f247de3b797cdc9d243d26534412f81c306e5b5': hevcdsp_template: Templatize IDCT This commit is a noop as we already have that code from a previous commits (see 92cccb7bcd79845020ed8abebf35170c182443b2). Spacing is adjusted to reduce the diff. Merged-by: Clément Bœsch <cboesch@gopro.com>
| * hevcdsp_template: Templatize IDCTMickaël Raulet2016-07-18
| | | | | | | | | | | | Integrated to Libav by Josh de Kock <josh@itanimul.li>. Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
* | Merge commit '1bd890ad173d79e7906c5e1d06bf0a06cca4519d'Clément Bœsch2017-01-31
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit '1bd890ad173d79e7906c5e1d06bf0a06cca4519d': hevc: Separate adding residual to prediction from IDCT This commit should be a noop but isn't because of the following renames: - transform_add → add_residual - transform_skip → dequant - idct_4x4_luma → transform_4x4_luma Merged-by: Clément Bœsch <cboesch@gopro.com>
| * hevc: Separate adding residual to prediction from IDCTAlexandra Hájková2016-07-18
| | | | | | | | | | | | | | | | Based on patch 250430bf28118cf843df887e8c8b345f1c60c82d by Mickaël Raulet <mraulet@insa-rennes.fr>, integrated to Libav by Josh de Kock <josh@itanimul.li>. Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
| * hevcdsp: add x86 SIMD for MCAnton Khirnov2015-12-05
| |
| * hevc: change the stride of the MC buffer to be in bytes instead of elementsAnton Khirnov2015-12-05
| | | | | | | | | | | | Currently, the frame stride is passed in bytes, while the MC buffer size is in int16_t elements, This can be confusing, so pass both strides in bytes.
| * hevcdsp: split the pred functions by widthAnton Khirnov2015-12-05
| | | | | | | | This should allow for more efficient SIMD.
| * hevcdsp: split the epel functions by widthAnton Khirnov2015-12-05
| | | | | | | | This should allow for more efficient SIMD.
| * hevcdsp: split the qpel functions by width instead of by the subpixel fractionAnton Khirnov2015-12-05
| | | | | | | | | | | | | | This should allow for more efficient SIMD. Keep the C versions as they are now, to allow the compiler to inline the interpolation coefficients.
| * hevcdsp: fix a function nameAnton Khirnov2015-08-21
| | | | | | | | | | put_weighted_pred_avg should be put_unweighted_pred_avg, there is no weighting there.
* | lavc/hevcdsp: fix pretty printing mistakeClément Bœsch2017-01-30
| | | | | | | | "Issue" introduced in 83976e40e89655162e5394cf8915d9b6d89702d9.
* | avcodec/hevcdsp: rename sao_band_filter c functionsJames Almer2015-08-21
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'Michael Niedermayer2015-07-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '059a934806d61f7af9ab3fd9f74994b838ea5eba': lavc: Consistently prefix input buffer defines Conflicts: doc/examples/decoding_encoding.c libavcodec/4xm.c libavcodec/aac_adtstoasc_bsf.c libavcodec/aacdec.c libavcodec/aacenc.c libavcodec/ac3dec.h libavcodec/asvenc.c libavcodec/avcodec.h libavcodec/avpacket.c libavcodec/dvdec.c libavcodec/ffv1enc.c libavcodec/g2meet.c libavcodec/gif.c libavcodec/h264.c libavcodec/h264_mp4toannexb_bsf.c libavcodec/huffyuvdec.c libavcodec/huffyuvenc.c libavcodec/jpeglsenc.c libavcodec/libxvid.c libavcodec/mdec.c libavcodec/motionpixels.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/noise_bsf.c libavcodec/nuv.c libavcodec/nvenc.c libavcodec/options.c libavcodec/parser.c libavcodec/pngenc.c libavcodec/proresenc_kostya.c libavcodec/qsvdec.c libavcodec/svq1enc.c libavcodec/tiffenc.c libavcodec/truemotion2.c libavcodec/utils.c libavcodec/utvideoenc.c libavcodec/vc1dec.c libavcodec/wmalosslessdec.c libavformat/adxdec.c libavformat/aiffdec.c libavformat/apc.c libavformat/apetag.c libavformat/avidec.c libavformat/bink.c libavformat/cafdec.c libavformat/flvdec.c libavformat/id3v2.c libavformat/isom.c libavformat/matroskadec.c libavformat/mov.c libavformat/mpc.c libavformat/mpc8.c libavformat/mpegts.c libavformat/mvi.c libavformat/mxfdec.c libavformat/mxg.c libavformat/nutdec.c libavformat/oggdec.c libavformat/oggparsecelt.c libavformat/oggparseflac.c libavformat/oggparseopus.c libavformat/oggparsespeex.c libavformat/omadec.c libavformat/rawdec.c libavformat/riffdec.c libavformat/rl2.c libavformat/rmdec.c libavformat/rtpdec_latm.c libavformat/rtpdec_mpeg4.c libavformat/rtpdec_qdm2.c libavformat/rtpdec_svq3.c libavformat/sierravmd.c libavformat/smacker.c libavformat/smush.c libavformat/spdifenc.c libavformat/takdec.c libavformat/tta.c libavformat/utils.c libavformat/vqf.c libavformat/westwood_vqa.c libavformat/xmv.c libavformat/xwma.c libavformat/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/hevcdsp: add missing () to CMP macroJames Almer2015-02-16
| | | | | | | | | | Found-by: Clément Bœsch <u@pkh.me> Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/hevcdsp: optimize pixel comparison in sao_edge_filterJames Almer2015-02-16
| | | | | | | | | | | | | | | | | | | | | | | | | | GCC 4.9.2 on a Core i5-4200U @ 1.60GHz, Linux x86_64 Before 715487 decicycles in sao_edge_filter_8, 262144 runs, 0 skips After 672104 decicycles in sao_edge_filter_8, 262144 runs, 0 skips Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* | hevcdsp: remove compilation-time-fixed parameter from sao_edge_filterJames Almer2015-02-05
| | | | | | | | | | | | The stride_src parameter is always 2 * MAX_PB_SIZE + FF_INPUT_BUFFER_PADDING_SIZE. Signed-off-by: James Almer <jamrial@gmail.com>
* | hevcdsp: replace the SAOParams struct parameter from sao_edge_filterJames Almer2015-02-04
| | | | | | | | | | | | | | | | As with sao_band_filter, pass instead the two variables from the struct needed in the function. This simplifies writing asm optimized versions. Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: James Almer <jamrial@gmail.com>
* | hevcdsp: further simplify sao_edge_filterJames Almer2015-02-04
| | | | | | | | | | | | Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com> Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: James Almer <jamrial@gmail.com>
* | hevcdsp: simplified sao_edge_filterSeppo Tomperi2015-02-04
| | | | | | | | | | Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com> Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
* | hevcdsp: separated sao edge filter and pixel restore funcsSeppo Tomperi2015-02-04
| | | | | | | | | | | | Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com> Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
* | hevcdsp: replace the SAOParams struct parameter from sao_band_filterJames Almer2015-02-01
| | | | | | | | | | | | | | Pass instead the two variables from the struct needed in the function. This simplifies writing asm optimized versions of the function Signed-off-by: James Almer <jamrial@gmail.com>
* | hevcdsp: remove unused parameter from sao_band_filterJames Almer2015-02-01
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit 'de1f8ead8993512925a3ee6c7491473414419e55'Michael Niedermayer2014-11-17
|\| | | | | | | | | | | | | | | | | | | * commit 'de1f8ead8993512925a3ee6c7491473414419e55': hevcdsp_template: templatize transquant_bypass Conflicts: libavcodec/hevcdsp_template.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevcdsp_template: templatize transquant_bypassAnton Khirnov2014-11-17
| |
| * hevcdsp: remove an unneeded variable in the loop filterAnton Khirnov2014-07-26
| | | | | | | | beta0 and beta1 will always be the same
* | hevcdsp: remove more instances of compile-time-fixed parametersChristophe Gisquet2014-08-22
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevcdsp: remove compilation-time-fixed parameterChristophe Gisquet2014-08-22
| | | | | | | | | | | | | | The dststride parameter is always MAX_PB_SIZE. Reviewed-by: Mickaël Raulet <mraulet@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc_deblock: change tc typeChristophe Gisquet2014-08-06
| | | | | | | | | | | | | | The x86 asm expects int32_t so use that type. Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevcdsp: change types of SAO parametersChristophe Gisquet2014-07-23
| | | | | | | | | | | | | | From openhevc Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevcdsp: remove an unneeded variable in the loop filterAnton Khirnov2014-07-22
| | | | | | | | | | | | | | | | | | beta0 and beta1 will always be the same within a CU Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr> cherry picked from commit 4a23d824741a289c7d2d2f2871d1e2621b63fa1b Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/sao: optimze sao implementationMickaël Raulet2014-07-18
| | | | | | | | | | | | | | | | | | | | - adding one extra pixel all around the frame - do not copy when SAO is not applied 5% improvement cherry picked from commit 10fc29fc19a12c4d8168fbe1a954b76386db12d0 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/rext: add support for Range extension toolsMickaël Raulet2014-07-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SPS features/flags: - transform_skip_rotation_enabled_flag - transform_skip_context_enabled_flag - implicit_rdpcm_enabled_flag - explicit_rdpcm_enabled_flag - intra_smoothing_disabled_flag - persistent_rice_adaptation_enabled_flag PPS features/flags: - log2_max_transform_skip_block_size - cross_component_prediction_enabled_flag - chroma_qp_offset_list_enabled_flag - diff_cu_chroma_qp_offset_depth - chroma_qp_offset_list_len_minus1 - cb_qp_offset_list - cr_qp_offset_list - log2_sao_offset_scale_luma - log2_sao_offset_scale_chroma (cherry picked from commit 005294c5b939a23099871c6130c8a7cc331f73ee) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>