summaryrefslogtreecommitdiff
path: root/libavcodec/vc1dsp.c
Commit message (Collapse)AuthorAge
* avcodec/h264chroma: Constify src in h264_chroma_mc_funcAndreas Rheinhardt2022-08-05
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* all: Replace if (ARCH_FOO) checks by #if ARCH_FOOAndreas Rheinhardt2022-06-15
| | | | | | | | | | | | | | | | | | This is more spec-compliant because it does not rely on dead-code elimination by the compiler. Especially MSVC has problems with this, as can be seen in https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296373.html or https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/297022.html This commit does not eliminate every instance where we rely on dead code elimination: It only tackles branching to the initialization of arch-specific dsp code, not e.g. all uses of CONFIG_ and HAVE_ checks. But maybe it is already enough to compile FFmpeg with MSVC with whole-programm-optimizations enabled (if one does not disable too many components). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1: Introduce fast path for unescaping bitstream bufferBen Avison2022-04-01
| | | | | | | Includes a checkasm test. Signed-off-by: Ben Avison <bavison@riscosopen.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* vc1dsp: Change remaining stride parameters to ptrdiff_tMartin Storsjö2022-03-30
| | | | | | | | | | | The existing x86 assembly for loop filters uses the stride as a full register without clearing/sign extending the upper half of the registers on x86_64. This avoids crashes if the caller would have passed nonzero bits in the previously undefined upper 32 bits of the parameters. Signed-off-by: Martin Storsjö <martin@martin.st>
* configure: Use a separate config_components.h header for $ALL_COMPONENTSMartin Storsjö2022-03-16
| | | | | | | | This avoids unnecessary rebuilds of most source files if only the list of enabled components has changed, but not the other properties of the build, set in config.h. Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec: [loongarch] Optimize vc1dsp with LASX.Hao Chen2021-12-23
| | | | | | | | | ./ffmpeg -i 11_wmv3_720p_24fps_7Mbps.wmv -f rawvideo -y /dev/null -an before:131fps after :229fps Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/vc1dsp: Avoid undefined shifts in vc1_v_s_overlap_c / vc1_h_s_overlap_cMichael Niedermayer2019-06-26
| | | | | | | | Fixes: left shift of negative value -13 Fixes: 15260/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1_fuzzer-5702076048343040 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/vc1: fix overlap filter for frame interlaced picturesJerome Borsboom2018-06-29
| | | | | | | | | | The overlap filter is not correct for vertical edges in frame interlaced I and P pictures. When filtering macroblocks with different FIELDTX values, we have to match the lines at both sides of the vertical border. In addition, we have to use the correct rounding values, depending on the line we are filtering. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
* Merge commit 'e4a94d8b36c48d95a7d412c40d7b558422ff659c'James Almer2017-03-21
|\ | | | | | | | | | | | | * commit 'e4a94d8b36c48d95a7d412c40d7b558422ff659c': h264chroma: Change type of stride parameters to ptrdiff_t Merged-by: James Almer <jamrial@gmail.com>
| * h264chroma: Change type of stride parameters to ptrdiff_tDiego Biurrun2016-09-29
| | | | | | | | | | This avoids SIMD-optimized functions having to sign-extend their stride argument manually to be able to do pointer arithmetic.
* | Merge commit '2ec9fa5ec60dcd10e1cb10d8b4e4437e634ea428'James Almer2017-03-21
|\| | | | | | | | | | | | | * commit '2ec9fa5ec60dcd10e1cb10d8b4e4437e634ea428': idct: Change type of array stride parameters to ptrdiff_t Merged-by: James Almer <jamrial@gmail.com>
| * idct: Change type of array stride parameters to ptrdiff_tDiego Biurrun2016-09-29
| | | | | | | | ptrdiff_t is the correct type for array strides and similar.
* | avcodec/mips: version 1 of vc1dsp optimizations for loongson mmiZhou Xiaoyong2016-12-17
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '29c2d06d67724e994980045afa055c6c34611b30'Derek Buitenhuis2016-02-24
|\| | | | | | | | | | | | | * commit '29c2d06d67724e994980045afa055c6c34611b30': cosmetics: Drop empty comment lines Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * cosmetics: Drop empty comment linesDiego Biurrun2016-02-18
| |
* | avcodec/vc1dsp: add () to protect the arguments of the op* macrosMichael Niedermayer2015-02-17
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed'Michael Niedermayer2014-08-05
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed': vc-1: Add platform-specific start code search routine to VC1DSPContext. Conflicts: configure libavcodec/arm/vc1dsp_init_arm.c libavcodec/vc1dsp.c libavcodec/vc1dsp.h See: 9d8ecdd8ca6d248e7439e8fdf255e39eda14e0f2 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vc-1: Add platform-specific start code search routine to VC1DSPContext.Ben Avison2014-08-04
| | | | | | | | | | | | | | Initialise VC1DSPContext for parser as well as for decoder. Note, the VC-1 code doesn't actually use the function pointer yet. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * vc1dsp: Add wrappers for {avg|put}_vc1_mspel_mc00_cDiego Biurrun2014-07-25
| | | | | | | | This avoids invoking the wrapped functions with too many arguments.
* | Merge commit '368f50359eb328b0b9d67451f56fda20b3255f9a'Michael Niedermayer2014-05-30
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '368f50359eb328b0b9d67451f56fda20b3255f9a': dsputil: Split off quarterpel bits into their own context Conflicts: configure libavcodec/dsputil.c libavcodec/h263dec.c libavcodec/mpegvideo.c libavcodec/mpegvideo_enc.c libavcodec/vc1dec.c libavcodec/vc1dsp.c libavcodec/x86/dsputil_init.c libavcodec/x86/qpeldsp.asm Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dsputil: Split off quarterpel bits into their own contextDiego Biurrun2014-05-29
| |
* | vc-1: Add platform-specific start code search routine to VC1DSPContext.Ben Avison2014-04-25
| | | | | | | | | | | | | | Initialise VC1DSPContext for parser as well as for decoder. Note, the VC-1 code doesn't actually use the function pointer yet. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | vc1dsp: introduce cases for 8x8 and 16x16Christophe Gisquet2014-04-20
| | | | | | | | | | | | | | | | | | | | | | | | This allows further unrolling the DSP implementation where possible. x86 and ARM DSP modified by simply moving the multiple calls from vc1dec to the DSP code. Decoding improvements should only occurs because of the compiler actually able to unroll more. Decoding time: ~8.80s -> 8.64s (ie around 2%) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '3dc6272bed7890a49080e18eacf3c7a4a6594b0d'Michael Niedermayer2014-04-05
|\| | | | | | | | | | | | | | | | | | | | | * commit '3dc6272bed7890a49080e18eacf3c7a4a6594b0d': Remove a number of unnecessary dsputil.h #includes Conflicts: libavcodec/h264pred.c libavcodec/vc1dsp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Remove a number of unnecessary dsputil.h #includesDiego Biurrun2014-04-04
| |
* | Merge commit 'ed9625eb62be1e1c44cecdd73ea0d80077a15d48'Michael Niedermayer2014-03-13
|\| | | | | | | | | | | | | * commit 'ed9625eb62be1e1c44cecdd73ea0d80077a15d48': dsputil: Move intreadwrite.h #include from header file to .c files Merged-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '71617884a2a673908bd5c0f73d4f91fdca3da82a'Michael Niedermayer2014-01-15
|\| | | | | | | | | | | | | * commit '71617884a2a673908bd5c0f73d4f91fdca3da82a': aarch64: h264 chroma motion compensation NEON optimizations Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aarch64: h264 chroma motion compensation NEON optimizationsJanne Grunau2014-01-15
| | | | | | | | | | Since RV40 and VC-1 use almost the same algorithm so optimizations for those two decoders are easy to do and included.
* | Merge commit '6d98959c8a5a749592a878b9523b31eccea5d102'Michael Niedermayer2014-01-13
|\| | | | | | | | | | | | | | | | | | | | | * commit '6d98959c8a5a749592a878b9523b31eccea5d102': vc1: Add avg_no_rnd_vc1_chroma_mc4_c() Conflicts: libavcodec/vc1dsp.c See: dd6e291e4083b7af53968c0ae06330841f63405b Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vc1: Add avg_no_rnd_vc1_chroma_mc4_c()Michael Niedermayer2014-01-13
| | | | | | | | | | | | Needed for proper interlaced support. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit 'c798a6fedc3dd9ed3ac1fb2d95819af58705a87e'Michael Niedermayer2014-01-13
|\| | | | | | | | | | | | | * commit 'c798a6fedc3dd9ed3ac1fb2d95819af58705a87e': vc1: Factorize out chroma MC Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vc1: Factorize out chroma MCLuca Barbato2014-01-13
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2014-01-12
|\| | | | | | | | | | | | | | | | | | | * qatar/master: vc1dsp: K&R formatting cosmetics Conflicts: libavcodec/vc1dsp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vc1dsp: K&R formatting cosmeticsLuca Barbato2014-01-12
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '832e19063209a5f355af733d1a45f5051f49ce33'Michael Niedermayer2013-12-20
|\| | | | | | | | | | | | | * commit '832e19063209a5f355af733d1a45f5051f49ce33': vc1: arm: Add NEON assembly Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vc1: arm: Add NEON assemblyMason Carter2013-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | For: ff_vc1_inv_trans_{8,4}x{8,4}_{dc_,}neon ff_put_pixels8x8_neon ff_put_vc1_mspel_mc{0,1,2,3}{0,1,2,3}_neon (except for 00) Based on ARM assembly code in libavcodec/arm by Rob Clark and Mans Rullgard. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-08-29
|\| | | | | | | | | | | | | * qatar/master: cosmetics: Place arch initialization calls in alphabetical order Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * cosmetics: Place arch initialization calls in alphabetical orderDiego Biurrun2013-08-29
| |
* | Merge commit '38282149b6ce8f4b8361e3b84542ba9aa8a1f32f'Michael Niedermayer2013-05-01
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '38282149b6ce8f4b8361e3b84542ba9aa8a1f32f': ppc: More consistent arch initialization Conflicts: libavcodec/fft.h libavcodec/mpegaudiodsp.c libavcodec/mpegaudiodsp.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ppc: More consistent arch initializationDiego Biurrun2013-04-30
| |
* | vc1dsp: add avg_no_rnd_vc1_chroma_mc4_c()Michael Niedermayer2013-04-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | vc1: fix int/ptrdiff_t mismatchesMichael Niedermayer2013-03-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'a8b6015823e628047a45916404c00044c5e80415'Michael Niedermayer2013-03-13
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'a8b6015823e628047a45916404c00044c5e80415': dsputil: convert remaining functions to use ptrdiff_t strides Conflicts: libavcodec/dsputil.h libavcodec/dsputil_template.c libavcodec/h264qpel_template.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dsputil: convert remaining functions to use ptrdiff_t stridesLuca Barbato2013-03-12
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit 'bf6b3ec924b4fb64d14df33077f4d4541d525dbf'Michael Niedermayer2013-02-09
|\| | | | | | | | | | | | | * commit 'bf6b3ec924b4fb64d14df33077f4d4541d525dbf': dsputil: Move rnd_avg inline functions to a separate header Merged-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '79dad2a932534d1155079f937649e099f9e5cc27'Michael Niedermayer2013-02-07
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit '79dad2a932534d1155079f937649e099f9e5cc27': dsputil: Separate h264chroma Conflicts: libavcodec/dsputil_template.c libavcodec/ppc/dsputil_ppc.c libavcodec/vc1dec.c libavcodec/vc1dsp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dsputil: Separate h264chromaDiego Biurrun2013-02-06
| |
* | Merge commit '88bd7fdc821aaa0cbcf44cf075c62aaa42121e3f'Michael Niedermayer2013-01-23
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '88bd7fdc821aaa0cbcf44cf075c62aaa42121e3f': Drop DCTELEM typedef Conflicts: libavcodec/alpha/dsputil_alpha.h libavcodec/alpha/motion_est_alpha.c libavcodec/arm/dsputil_init_armv6.c libavcodec/bfin/dsputil_bfin.h libavcodec/bfin/pixels_bfin.S libavcodec/cavs.c libavcodec/cavsdec.c libavcodec/dct-test.c libavcodec/dnxhdenc.c libavcodec/dsputil.c libavcodec/dsputil.h libavcodec/dsputil_template.c libavcodec/eamad.c libavcodec/h264_cavlc.c libavcodec/h264idct_template.c libavcodec/mpeg12.c libavcodec/mpegvideo.c libavcodec/mpegvideo.h libavcodec/mpegvideo_enc.c libavcodec/ppc/dsputil_altivec.c libavcodec/proresdsp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | vc1dsp: fix the warning fix, make it work with --disable-asmMichael Niedermayer2012-12-26
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>