[libav-devel] [RFC] [PATCH] fate: Add --skip-tests configure option for omitting FATE tests
This can be useful in known-broken scenarios like miscompilation by legacy compilers and similar. --- Yeah, one could come up with more elaborate solutions, but this already works and we have cases where it could be useful right away... configure | 3 +++ tests/Makefile | 2 ++ 2 files changed, 5 insertions(+) diff --git a/configure b/configure index 7d4a4ab..be27c1a 100755 --- a/configure +++ b/configure @@ -347,6 +347,7 @@ Developer options (useful when working on Libav itself): --random-seed=VALUE seed value for --enable/disable-random --disable-valgrind-backtrace do not print a backtrace under Valgrind (only applies to --disable-optimizations builds) + --skip-tests=TESTS whitespace-separated list of FATE tests to skip NOTE: Object files are built at the place where configure is launched. EOF @@ -1808,6 +1809,7 @@ CMDLINE_SET=" pkg_config_flags random_seed samples +skip_tests sysinclude sysroot target_exec @@ -5313,6 +5315,7 @@ SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB} SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB} VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD} SAMPLES:=${samples:-\$(LIBAV_SAMPLES)} +SKIP_TESTS=$skip_tests EOF get_version(){ diff --git a/tests/Makefile b/tests/Makefile index 36a3a72..4bcdc4a 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -142,6 +142,8 @@ endif FATE_UTILS = base64 tiny_psnr +FATE := $(filter-out $(SKIP_TESTS),$(FATE)) + fate: $(FATE) $(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) -- 2.7.3 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 1/2] hevc: Add SSE2 and AVX IDCT
On Wed, Oct 05, 2016 at 02:04:31PM +0200, Alexandra Hájková wrote: > --- a/libavcodec/x86/hevc_idct.asm > +++ b/libavcodec/x86/hevc_idct.asm > @@ -74,34 +286,578 @@ cglobal hevc_idct_%1x%1_dc_%2, 1, 2, 1, coeff, tmp > > INIT_XMM sse2 > +IDCT_DC_NL 8, %1 > +IDCT_DC16, 4, %1 > +IDCT_DC32, 16, %1 > +%if %1 == 8 > +TRANSPOSE_8x8 > +%if ARCH_X86_64 > +TRANSPOSE_16x16 > +TRANSPOSE_32x32 > +%endif > +%endif > +%define transpose_8x8 hevc_idct_transpose_8x8_sse2 > +%if ARCH_X86_64 > +%define transpose_16x16 hevc_idct_transpose_16x16_sse2 > +%define transpose_32x32 hevc_idct_transpose_32x32_sse2 > +IDCT_32x32 %1 > +IDCT_16x16 %1 > +%endif There should be no need to redefine the transpose functions, just call the right one with the help of the cpuname macro. > --- a/libavcodec/x86/hevcdsp_init.c > +++ b/libavcodec/x86/hevcdsp_init.c > @@ -329,6 +361,11 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int > bit_depth) > #if HAVE_AVX_EXTERNAL > SET_QPEL_FUNCS(1, 1, 8, avx, hevc_qpel_hv); > SET_EPEL_FUNCS(1, 1, 8, avx, hevc_epel_hv); > + > +c->idct[0] = ff_hevc_idct_4x4_8_avx; > +c->idct[1] = ff_hevc_idct_8x8_8_avx; > +c->idct[2] = ff_hevc_idct_16x16_8_avx; > +c->idct[3] = ff_hevc_idct_32x32_8_avx; > #endif /* HAVE_AVX_EXTERNAL */ > } Only the parts that are explicitly ifdeffed above within this very file should be ifdeffed here. Add these below the ifdef. > @@ -354,6 +397,12 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int > bit_depth) > SET_EPEL_FUNCS(0, 1, 10, avx, ff_hevc_epel_h); > SET_EPEL_FUNCS(1, 0, 10, avx, ff_hevc_epel_v); > SET_EPEL_FUNCS(1, 1, 10, avx, hevc_epel_hv); > + > +c->idct[0] = ff_hevc_idct_4x4_10_avx; > +c->idct[1] = ff_hevc_idct_8x8_10_avx; > +c->idct[2] = ff_hevc_idct_16x16_10_avx; > +c->idct[3] = ff_hevc_idct_32x32_10_avx; > + > #endif /* HAVE_AVX_EXTERNAL */ > } > if (EXTERNAL_AVX2(cpu_flags)) { same Diego ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] swscale: Add missing yuv444p12 swapping
On 07/10/16 00:28, Vittorio Giovara wrote: > Missing from 9bd6ea5695660529b2887292874a7b9e61fc301e. > > Signed-off-by: Vittorio Giovara> --- > Fixes the ppc fate tests. > Vittorio > Sounds Ok. Thanks for spotting it! lu ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] APIchanges: Expand the name of recently added pixel formats
On 07/10/16 00:27, Vittorio Giovara wrote: > This makes them easier to search for. > --- > doc/APIchanges | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/doc/APIchanges b/doc/APIchanges > index 655783e..ef25a98 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -20,7 +20,7 @@ API changes, most recent first: >Add AVIO_SEEKABLE_TIME flag. > > 2016-xx-xx - xxx - lavu 55.22.0 - pixfmt.h > - Add AV_PIX_FMT_YUV(420,422,444)P12. > + Add AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, and AV_PIX_FMT_YUV444P12. > > 2016-xx-xx - xxx - lavc 57.27.0 - avcodec.h >Add FF_PROFILE_HEVC_REXT, the extended pixel format profile for HEVC. > @@ -41,7 +41,7 @@ API changes, most recent first: >members AV_VAAPI_DRIVER_QUIRK_* to represent its values. > > 2016-07-02 - b7c5f88 - lavu 55.18.0 - pixfmt.h > - Add AV_PIX_FMT_P010(LE/BE). > + Add AV_PIX_FMT_P010LE and AV_PIX_FMT_P010BE. > > 2016-06-21 - 32c8359 - lavc 57.24.0 - avcodec.h >Decoders now export the frame timestamp as AVFrame.pts. It was > Ok. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH] swscale: Add missing yuv444p12 swapping
Missing from 9bd6ea5695660529b2887292874a7b9e61fc301e. Signed-off-by: Vittorio Giovara--- Fixes the ppc fate tests. Vittorio libswscale/input.c | 4 tests/ref/fate/filter-pixfmts-scale | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libswscale/input.c b/libswscale/input.c index 76a4700..e1ac483 100644 --- a/libswscale/input.c +++ b/libswscale/input.c @@ -817,6 +817,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) case AV_PIX_FMT_YUV444P10LE: case AV_PIX_FMT_YUV420P12LE: case AV_PIX_FMT_YUV422P12LE: +case AV_PIX_FMT_YUV444P12LE: case AV_PIX_FMT_YUV420P16LE: case AV_PIX_FMT_YUV422P16LE: case AV_PIX_FMT_YUV444P16LE: @@ -840,6 +841,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) case AV_PIX_FMT_YUV444P10BE: case AV_PIX_FMT_YUV420P12BE: case AV_PIX_FMT_YUV422P12BE: +case AV_PIX_FMT_YUV444P12BE: case AV_PIX_FMT_YUV420P16BE: case AV_PIX_FMT_YUV422P16BE: case AV_PIX_FMT_YUV444P16BE: @@ -1039,6 +1041,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) case AV_PIX_FMT_YUV444P10LE: case AV_PIX_FMT_YUV420P12LE: case AV_PIX_FMT_YUV422P12LE: +case AV_PIX_FMT_YUV444P12LE: case AV_PIX_FMT_YUV420P16LE: case AV_PIX_FMT_YUV422P16LE: case AV_PIX_FMT_YUV444P16LE: @@ -1066,6 +1069,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) case AV_PIX_FMT_YUV444P10BE: case AV_PIX_FMT_YUV420P12BE: case AV_PIX_FMT_YUV422P12BE: +case AV_PIX_FMT_YUV444P12BE: case AV_PIX_FMT_YUV420P16BE: case AV_PIX_FMT_YUV422P16BE: case AV_PIX_FMT_YUV444P16BE: diff --git a/tests/ref/fate/filter-pixfmts-scale b/tests/ref/fate/filter-pixfmts-scale index 0a3f3f1..09c335b 100644 --- a/tests/ref/fate/filter-pixfmts-scale +++ b/tests/ref/fate/filter-pixfmts-scale @@ -62,7 +62,7 @@ yuv440p 4713a7b7ce80dd06923626d13589c098 yuv444p fd733672651ad5bbffb046fd67151fee yuv444p10be 34b38d54167df70044bdc08518d91009 yuv444p10le 0812e3371c9589c6621408812f9e7a27 -yuv444p12be 936147950ba1b511570da85a0922abf3 +yuv444p12be 4fdc4bf4036c40ff575f9bc2229bf5d6 yuv444p12le 4a9ec677190371ef5e342ffac1ace735 yuv444p16be e89fe5a4624ed06603580b4a74af9170 yuv444p16le 6944d11048ff4013c5e60359faf1bd2d -- 2.10.0 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH] APIchanges: Expand the name of recently added pixel formats
This makes them easier to search for. --- doc/APIchanges | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 655783e..ef25a98 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -20,7 +20,7 @@ API changes, most recent first: Add AVIO_SEEKABLE_TIME flag. 2016-xx-xx - xxx - lavu 55.22.0 - pixfmt.h - Add AV_PIX_FMT_YUV(420,422,444)P12. + Add AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, and AV_PIX_FMT_YUV444P12. 2016-xx-xx - xxx - lavc 57.27.0 - avcodec.h Add FF_PROFILE_HEVC_REXT, the extended pixel format profile for HEVC. @@ -41,7 +41,7 @@ API changes, most recent first: members AV_VAAPI_DRIVER_QUIRK_* to represent its values. 2016-07-02 - b7c5f88 - lavu 55.18.0 - pixfmt.h - Add AV_PIX_FMT_P010(LE/BE). + Add AV_PIX_FMT_P010LE and AV_PIX_FMT_P010BE. 2016-06-21 - 32c8359 - lavc 57.24.0 - avcodec.h Decoders now export the frame timestamp as AVFrame.pts. It was -- 2.10.0 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] bktr: Adjust zero initialization to fix warning
On 06/10/16 14:24, Diego Biurrun wrote: > libavdevice/bktr.c:107:12: warning: missing braces around initializer > --- > libavdevice/bktr.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavdevice/bktr.c b/libavdevice/bktr.c > index f76a163..563bbe5 100644 > --- a/libavdevice/bktr.c > +++ b/libavdevice/bktr.c > @@ -104,7 +104,7 @@ static av_cold int bktr_init(const char *video_device, > int width, int height, > long ioctl_frequency; > char *arg; > int c; > -struct sigaction act = { 0 }, old; > +struct sigaction act = { { 0 } }, old; > int ret; > char errbuf[128]; Ok. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 1/4] hevc: x86: Refactor IDCT macro declarations
On Thu, Oct 06, 2016 at 02:10:02PM +0200, Alexandra Hájková wrote: > This's a part of my add IDCT patch, I don't undesrtand why it's sent > under your name. It's an independent refactoring of existing code that I did and applied your patch on top. > Also I see this's already pushed without any review. I previously sent it as part of a 2-part set: Date: Wed, 5 Oct 2016 11:49:50 +0200 Subject: [libav-devel] [PATCH 1/2] hevc: x86: Refactor IDCT macro declarations Message-Id: <1475660991-2406-1-git-send-email-di...@biurrun.de> Luca OKed it here: Date: Wed, 5 Oct 2016 13:08:22 +0200 Subject: Re: [libav-devel] [PATCH 1/2] hevc: x86: Refactor IDCT macro declarations Message-ID: <09ef3f7a-889b-880b-7740-0edb08a23...@gentoo.org> I pushed it after the standard 24-hour grace period had passed. Diego ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [Libav-devel][Patch] Fixed error log
On Thu, Oct 06, 2016 at 09:16:58AM +, Yogender Gupta wrote: > From 0cd1617f9fcc3ae6dba5793db46386d06f3a910e Mon Sep 17 00:00:00 2001 > From: Yogender Gupta> Date: Thu, 6 Oct 2016 14:44:26 +0530 > Subject: [PATCH] nvenc.c: fixed error log > > --- > libavcodec/nvenc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) nvenc: Fix error log Queueing with that as log message, thanks. Diego ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH] bktr: Adjust zero initialization to fix warning
libavdevice/bktr.c:107:12: warning: missing braces around initializer --- libavdevice/bktr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavdevice/bktr.c b/libavdevice/bktr.c index f76a163..563bbe5 100644 --- a/libavdevice/bktr.c +++ b/libavdevice/bktr.c @@ -104,7 +104,7 @@ static av_cold int bktr_init(const char *video_device, int width, int height, long ioctl_frequency; char *arg; int c; -struct sigaction act = { 0 }, old; +struct sigaction act = { { 0 } }, old; int ret; char errbuf[128]; -- 2.7.3 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 1/4] hevc: x86: Refactor IDCT macro declarations
This's a part of my add IDCT patch, I don't undesrtand why it's sent under your name. Also I see this's already pushed without any review. I strongly dislike your behaviour and I don't understand why are you doing this. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [Libav-devel][Patch] Force high_444 profile for 444 inputs for H264
>> I'd fold it in the current check for ctx->data_pix_fmt that is already >> present. I kept it separate to maintain consistency as it is set for HEVC >> Currently we are setting FF_PROFILE_H264_HIGH_444 should it be changed to >> FF_PROFILE_H264_HIGH_444_PREDICTIVE as well? FF_PROFILE_H264_HIGH_444 is not defined anywhere in standard, libav has it only 3 places and IMO should be removed NV_ENC_H264_PROFILE_HIGH_444 can be renamed if this is what you are referring to Yogender --- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. --- ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [Libav-devel][Patch] Fixed error log
On 06/10/16 11:16, Yogender Gupta wrote: > Fixed error log > Looks fine. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [Libav-devel][Patch] Force high_444 profile for 444 inputs for H264
On 06/10/16 11:10, Yogender Gupta wrote: > +if (ctx->data_pix_fmt == AV_PIX_FMT_YUV444P) { > +cc->profileGUID = NV_ENC_H264_PROFILE_HIGH_444_GUID; > +avctx->profile = FF_PROFILE_H264_HIGH_444_PREDICTIVE; > +} I'd fold it in the current check for ctx->data_pix_fmt that is already present. Currently we are setting FF_PROFILE_H264_HIGH_444 should it be changed to FF_PROFILE_H264_HIGH_444_PREDICTIVE as well? lu ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [Libav-devel][Patch] Fixed error log
Fixed error log Thanks, Yogender --- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. --- 0001-nvenc.c-fixed-error-log.patch Description: 0001-nvenc.c-fixed-error-log.patch ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [Libav-devel][Patch] Force high_444 profile for 444 inputs for H264
This patches forces high_444 profile selection for yuv444p inputs for nvenc_h264. Thanks, Yogender --- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. --- 0001-nvenc.c-force-high_444-profile-for-444-input.patch Description: 0001-nvenc.c-force-high_444-profile-for-444-input.patch ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 06/14] rv34: Change type of array stride parameters to ptrdiff_t
On 2016-09-29 17:52:01 +0200, Diego Biurrun wrote: > On Thu, Sep 29, 2016 at 02:21:17PM +0300, Martin Storsjö wrote: > > On Tue, 20 Sep 2016, Diego Biurrun wrote: > > > > > This avoids SIMD-optimized functions having to sign-extend their > > > stride argument manually to be able to do pointer arithmetic. > > > --- > > > libavcodec/arm/rv34dsp_neon.S | 4 +-- > > > libavcodec/arm/rv40dsp_neon.S | 4 +-- > > > libavcodec/rv30.c | 4 +-- > > > libavcodec/rv30dsp.c | 64 > > > +++ > > > libavcodec/rv34.c | 10 --- > > > libavcodec/rv34.h | 2 +- > > > libavcodec/rv40.c | 2 +- > > > libavcodec/rv40dsp.c | 18 +++- > > > libavcodec/x86/rv34dsp.asm| 4 +-- > > > libavcodec/x86/rv40dsp.asm| 11 +++- > > > libavcodec/x86/rv40dsp_init.c | 4 +-- > > > 11 files changed, 85 insertions(+), 42 deletions(-) > > > --- a/libavcodec/rv40dsp.c > > > +++ b/libavcodec/rv40dsp.c > > > @@ -34,7 +34,8 @@ > > > > > > --- a/libavcodec/x86/rv40dsp.asm > > > +++ b/libavcodec/x86/rv40dsp.asm > > > @@ -77,14 +77,11 @@ SECTION .text > > > ;- > > > ; subpel MC functions: > > > ; > > > -; void ff_[put|rv40]_rv40_qpel_[h|v]_(uint8_t *dst, int deststride, > > > -; uint8_t *src, int srcstride, > > > -; int len, int m); > > > +; void ff_[put|avg]_rv40_qpel_[h|v]_(uint8_t *dst, ptrdiff_t > > > deststride, > > > +; uint8_t *src, ptrdiff_t > > > srcstride, > > > +; int len, ptrdiff_t m); > > > ;-- > > > %macro LOAD 2 > > > -%if WIN64 > > > - movsxd %1q, %1d > > > -%endif > > > %ifdef PIC > > >add %1q, picregq > > > %else > > > @@ -438,7 +435,7 @@ FILTER_SSSE3 avg > > > > > > %endmacro > > > > > > -; void ff_rv40_weight_func_%1(uint8_t *dst, uint8_t *src1, uint8_t > > > *src2, int w1, int w2, int stride) > > > +; void ff_rv40_weight_func_%1(uint8_t *dst, uint8_t *src1, uint8_t > > > *src2, int w1, int w2, ptrdiff_t stride) > > > ; %1=size %2=num of xmm regs > > > ; The weights are FP0.14 notation of fractions depending on pts. > > > ; For timebases without rounding error (i.e. PAL), the fractions > > > > So, the only existing sign extension this actually changes is for the "int > > m" parameter. I don't see where the existing code does sign extension for > > srcstride nor dststride anywhere. Isn't that a latent bug, that you're > > fixing silently? > > All of the int strides are latent bugs. This file only does sign extension > for WIN64, for one function parameter. Possibly that was the only > environment that triggered an actual, visible bug, I don't know. the difference is that the m parameter is in some macro instances negative. I'm not sure why it made a difference on win64 but it relies on non windows 64-bit systems that the parameter is sign extended to 64-bit in the register. > > In that case, please first explicitly fix the bug by introducing the right > > sign extensions (which is cherrypickable to release branches), then remove > > them in this patch. > > This sounds like overkill to me as we don't know if any real-world > samples are affected. If any such cases creep up I'll gladly add the > necessary sign extension for release branches. Please fix this in a separate patch. It differs from the other stride ptrdiff_t changes and affects only x86. Janne ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel