From f96f1e06a47ebd124dd0b1369f3fdd0f8f25d773 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Sun, 23 Sep 2012 14:49:26 -0400 Subject: [PATCH 1/4] x86: af_volume: add SSE2-optimized s16 volume scaling --- libavfilter/af_volume.c | 3 ++ libavfilter/af_volume.h | 2 ++ libavfilter/x86/Makefile | 2 ++ libavfilter/x86/af_volume.asm | 56 ++++++++++++++++++++++++++++++++ libavfilter/x86/af_volume_init.c | 39 ++++++++++++++++++++++ 5 files changed, 102 insertions(+) create mode 100644 libavfilter/x86/af_volume.asm create mode 100644 libavfilter/x86/af_volume_init.c diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c index 4a4e29ff46..3f3ad47258 100644 --- a/libavfilter/af_volume.c +++ b/libavfilter/af_volume.c @@ -213,6 +213,9 @@ static void volume_init(VolumeContext *vol) vol->samples_align = 8; break; } + + if (ARCH_X86) + ff_volume_init_x86(vol); } static int config_output(AVFilterLink *outlink) diff --git a/libavfilter/af_volume.h b/libavfilter/af_volume.h index dec8767f88..a1883ed2b9 100644 --- a/libavfilter/af_volume.h +++ b/libavfilter/af_volume.h @@ -50,4 +50,6 @@ typedef struct VolumeContext { int samples_align; } VolumeContext; +void ff_volume_init_x86(VolumeContext *vol); + #endif /* AVFILTER_AF_VOLUME_H */ diff --git a/libavfilter/x86/Makefile b/libavfilter/x86/Makefile index 4289f924da..0f08e39691 100644 --- a/libavfilter/x86/Makefile +++ b/libavfilter/x86/Makefile @@ -1,4 +1,6 @@ OBJS-$(CONFIG_GRADFUN_FILTER) += x86/gradfun.o +OBJS-$(CONFIG_VOLUME_FILTER) += x86/af_volume_init.o OBJS-$(CONFIG_YADIF_FILTER) += x86/yadif.o YASM-OBJS-$(CONFIG_HQDN3D_FILTER) += x86/hqdn3d.o +YASM-OBJS-$(CONFIG_VOLUME_FILTER) += x86/af_volume.o diff --git a/libavfilter/x86/af_volume.asm b/libavfilter/x86/af_volume.asm new file mode 100644 index 0000000000..922ad5dcc4 --- /dev/null +++ b/libavfilter/x86/af_volume.asm @@ -0,0 +1,56 @@ +;***************************************************************************** +;* x86-optimized functions for volume filter +;* Copyright (c) 2012 Justin Ruggles +;* +;* This file is part of Libav. +;* +;* Libav is free software; you can redistribute it and/or +;* modify it under the terms of the GNU Lesser General Public +;* License as published by the Free Software Foundation; either +;* version 2.1 of the License, or (at your option) any later version. +;* +;* Libav is distributed in the hope that it will be useful, +;* but WITHOUT ANY WARRANTY; without even the implied warranty of +;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;* Lesser General Public License for more details. +;* +;* You should have received a copy of the GNU Lesser General Public +;* License along with Libav; if not, write to the Free Software +;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +;****************************************************************************** + +%include "libavutil/x86/x86inc.asm" + +SECTION_RODATA 32 + +pw_1: times 8 dw 1 +pw_128: times 8 dw 128 + +SECTION_TEXT + +;------------------------------------------------------------------------------ +; void ff_scale_samples_s16(uint8_t *dst, const uint8_t *src, int len, +; int volume) +;------------------------------------------------------------------------------ + +INIT_XMM sse2 +cglobal scale_samples_s16, 4,4,4, dst, src, len, volume + movd m0, volumem + pshuflw m0, m0, 0 + punpcklwd m0, [pw_1] + mova m1, [pw_128] + lea lenq, [lend*2-mmsize] +.loop: + ; dst[i] = av_clip_int16((src[i] * volume + 128) >> 8); + mova m2, [srcq+lenq] + punpcklwd m3, m2, m1 + punpckhwd m2, m1 + pmaddwd m3, m0 + pmaddwd m2, m0 + psrad m3, 8 + psrad m2, 8 + packssdw m3, m2 + mova [dstq+lenq], m3 + sub lenq, mmsize + jge .loop + REP_RET diff --git a/libavfilter/x86/af_volume_init.c b/libavfilter/x86/af_volume_init.c new file mode 100644 index 0000000000..00103df216 --- /dev/null +++ b/libavfilter/x86/af_volume_init.c @@ -0,0 +1,39 @@ +/* + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "libavutil/cpu.h" +#include "libavutil/samplefmt.h" +#include "libavutil/x86/cpu.h" +#include "libavfilter/af_volume.h" + +void ff_scale_samples_s16_sse2(uint8_t *dst, const uint8_t *src, int len, + int volume); + +void ff_volume_init_x86(VolumeContext *vol) +{ + int mm_flags = av_get_cpu_flags(); + enum AVSampleFormat sample_fmt = av_get_packed_sample_fmt(vol->sample_fmt); + + if (sample_fmt == AV_SAMPLE_FMT_S16) { + if (EXTERNAL_SSE2(mm_flags) && vol->volume_i < 32768) { + vol->scale_samples = ff_scale_samples_s16_sse2; + vol->samples_align = 8; + } + } +} From b30a363331ac79331c1d002992689b5ff35bf813 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Tue, 25 Sep 2012 08:41:39 -0400 Subject: [PATCH 2/4] x86: af_volume: add SSE2/SSSE3/AVX-optimized s32 volume scaling --- libavfilter/x86/af_volume.asm | 88 ++++++++++++++++++++++++++++++-- libavfilter/x86/af_volume_init.c | 20 ++++++++ libavutil/x86/x86inc.asm | 1 + 3 files changed, 106 insertions(+), 3 deletions(-) diff --git a/libavfilter/x86/af_volume.asm b/libavfilter/x86/af_volume.asm index 922ad5dcc4..4e5ad2258c 100644 --- a/libavfilter/x86/af_volume.asm +++ b/libavfilter/x86/af_volume.asm @@ -19,12 +19,15 @@ ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;****************************************************************************** -%include "libavutil/x86/x86inc.asm" +%include "libavutil/x86/x86util.asm" SECTION_RODATA 32 -pw_1: times 8 dw 1 -pw_128: times 8 dw 128 +pd_1_256: times 4 dq 0x3F70000000000000 +pd_int32_max: times 4 dq 0x41DFFFFFFFC00000 +pw_1: times 8 dw 1 +pw_128: times 8 dw 128 +pq_128: times 2 dq 128 SECTION_TEXT @@ -54,3 +57,82 @@ cglobal scale_samples_s16, 4,4,4, dst, src, len, volume sub lenq, mmsize jge .loop REP_RET + +;------------------------------------------------------------------------------ +; void ff_scale_samples_s32(uint8_t *dst, const uint8_t *src, int len, +; int volume) +;------------------------------------------------------------------------------ + +%macro SCALE_SAMPLES_S32 0 +cglobal scale_samples_s32, 4,4,4, dst, src, len, volume +%if ARCH_X86_32 && cpuflag(avx) + vbroadcastss xmm2, volumem +%else + movd xmm2, volumed + pshufd xmm2, xmm2, 0 +%endif + CVTDQ2PD m2, xmm2 + mulpd m2, m2, [pd_1_256] + mova m3, [pd_int32_max] + lea lenq, [lend*4-mmsize] +.loop: + CVTDQ2PD m0, [srcq+lenq ] + CVTDQ2PD m1, [srcq+lenq+mmsize/2] + mulpd m0, m0, m2 + mulpd m1, m1, m2 + minpd m0, m0, m3 + minpd m1, m1, m3 + cvtpd2dq xmm0, m0 + cvtpd2dq xmm1, m1 +%if cpuflag(avx) + vmovdqa [dstq+lenq ], xmm0 + vmovdqa [dstq+lenq+mmsize/2], xmm1 +%else + movq [dstq+lenq ], xmm0 + movq [dstq+lenq+mmsize/2], xmm1 +%endif + sub lenq, mmsize + jge .loop + REP_RET +%endmacro + +INIT_XMM sse2 +%define CVTDQ2PD cvtdq2pd +SCALE_SAMPLES_S32 +%define CVTDQ2PD vcvtdq2pd +INIT_YMM avx +SCALE_SAMPLES_S32 +%undef CVTDQ2PD + +; NOTE: This is not bit-identical with the C version because it clips to +; [-INT_MAX, INT_MAX] instead of [INT_MIN, INT_MAX] + +INIT_XMM ssse3, atom +cglobal scale_samples_s32, 4,4,8, dst, src, len, volume + movd m4, volumem + pshufd m4, m4, 0 + mova m5, [pq_128] + pxor m6, m6 + lea lenq, [lend*4-mmsize] +.loop: + ; src[i] = av_clipl_int32((src[i] * volume + 128) >> 8); + mova m7, [srcq+lenq] + pabsd m3, m7 + pshufd m0, m3, q0100 + pshufd m1, m3, q0302 + pmuludq m0, m4 + pmuludq m1, m4 + paddq m0, m5 + paddq m1, m5 + psrlq m0, 7 + psrlq m1, 7 + shufps m2, m0, m1, q3131 + shufps m0, m0, m1, q2020 + pcmpgtd m2, m6 + por m0, m2 + psrld m0, 1 + psignd m0, m7 + mova [dstq+lenq], m0 + sub lenq, mmsize + jge .loop + REP_RET diff --git a/libavfilter/x86/af_volume_init.c b/libavfilter/x86/af_volume_init.c index 00103df216..02bedd2c57 100644 --- a/libavfilter/x86/af_volume_init.c +++ b/libavfilter/x86/af_volume_init.c @@ -25,6 +25,13 @@ void ff_scale_samples_s16_sse2(uint8_t *dst, const uint8_t *src, int len, int volume); +void ff_scale_samples_s32_sse2(uint8_t *dst, const uint8_t *src, int len, + int volume); +void ff_scale_samples_s32_ssse3_atom(uint8_t *dst, const uint8_t *src, int len, + int volume); +void ff_scale_samples_s32_avx(uint8_t *dst, const uint8_t *src, int len, + int volume); + void ff_volume_init_x86(VolumeContext *vol) { int mm_flags = av_get_cpu_flags(); @@ -35,5 +42,18 @@ void ff_volume_init_x86(VolumeContext *vol) vol->scale_samples = ff_scale_samples_s16_sse2; vol->samples_align = 8; } + } else if (sample_fmt == AV_SAMPLE_FMT_S32) { + if (EXTERNAL_SSE2(mm_flags)) { + vol->scale_samples = ff_scale_samples_s32_sse2; + vol->samples_align = 4; + } + if (EXTERNAL_SSSE3(mm_flags) && mm_flags & AV_CPU_FLAG_ATOM) { + vol->scale_samples = ff_scale_samples_s32_ssse3_atom; + vol->samples_align = 4; + } + if (EXTERNAL_AVX(mm_flags)) { + vol->scale_samples = ff_scale_samples_s32_avx; + vol->samples_align = 8; + } } } diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm index 52ee46ab76..8a30689f00 100644 --- a/libavutil/x86/x86inc.asm +++ b/libavutil/x86/x86inc.asm @@ -956,6 +956,7 @@ AVX_INSTR cmpps, 1, 0, 0 AVX_INSTR cmpsd, 1, 0, 0 AVX_INSTR cmpss, 1, 0, 0 AVX_INSTR cvtdq2ps, 1, 0, 0 +AVX_INSTR cvtpd2dq, 1, 0, 0 AVX_INSTR cvtps2dq, 1, 0, 0 AVX_INSTR divpd, 1, 0, 0 AVX_INSTR divps, 1, 0, 0 From 9a71d362a6b77ec215045e5a9d6bdfc427e37ce4 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Tue, 2 Oct 2012 16:08:20 -0400 Subject: [PATCH 3/4] avconv: deprecate the -vol option Remove the code for volume scaling in avconv.c and instead auto-insert a volume filter into the beginning of the filter chain. --- avconv.c | 59 ------------------------------------------------- avconv_filter.c | 23 +++++++++++++++++++ 2 files changed, 23 insertions(+), 59 deletions(-) diff --git a/avconv.c b/avconv.c index b2e1f045dc..444e74d8d9 100644 --- a/avconv.c +++ b/avconv.c @@ -1081,7 +1081,6 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) { AVFrame *decoded_frame; AVCodecContext *avctx = ist->st->codec; - int bps = av_get_bytes_per_sample(ist->st->codec->sample_fmt); int i, ret, resample_changed; if (!ist->decoded_frame && !(ist->decoded_frame = avcodec_alloc_frame())) @@ -1106,64 +1105,6 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) pkt->pts = AV_NOPTS_VALUE; } - // preprocess audio (volume) - if (audio_volume != 256) { - int decoded_data_size = decoded_frame->nb_samples * avctx->channels * bps; - void *samples = decoded_frame->data[0]; - switch (avctx->sample_fmt) { - case AV_SAMPLE_FMT_U8: - { - uint8_t *volp = samples; - for (i = 0; i < (decoded_data_size / sizeof(*volp)); i++) { - int v = (((*volp - 128) * audio_volume + 128) >> 8) + 128; - *volp++ = av_clip_uint8(v); - } - break; - } - case AV_SAMPLE_FMT_S16: - { - int16_t *volp = samples; - for (i = 0; i < (decoded_data_size / sizeof(*volp)); i++) { - int v = ((*volp) * audio_volume + 128) >> 8; - *volp++ = av_clip_int16(v); - } - break; - } - case AV_SAMPLE_FMT_S32: - { - int32_t *volp = samples; - for (i = 0; i < (decoded_data_size / sizeof(*volp)); i++) { - int64_t v = (((int64_t)*volp * audio_volume + 128) >> 8); - *volp++ = av_clipl_int32(v); - } - break; - } - case AV_SAMPLE_FMT_FLT: - { - float *volp = samples; - float scale = audio_volume / 256.f; - for (i = 0; i < (decoded_data_size / sizeof(*volp)); i++) { - *volp++ *= scale; - } - break; - } - case AV_SAMPLE_FMT_DBL: - { - double *volp = samples; - double scale = audio_volume / 256.; - for (i = 0; i < (decoded_data_size / sizeof(*volp)); i++) { - *volp++ *= scale; - } - break; - } - default: - av_log(NULL, AV_LOG_FATAL, - "Audio volume adjustment on sample format %s is not supported.\n", - av_get_sample_fmt_name(ist->st->codec->sample_fmt)); - exit(1); - } - } - rate_emu_sleep(ist); resample_changed = ist->resample_sample_fmt != decoded_frame->format || diff --git a/avconv_filter.c b/avconv_filter.c index 8f430b0be4..e9412abc96 100644 --- a/avconv_filter.c +++ b/avconv_filter.c @@ -452,6 +452,29 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter, first_filter = async; pad_idx = 0; } + if (audio_volume != 256) { + AVFilterContext *volume; + + av_log(NULL, AV_LOG_WARNING, "-vol has been deprecated. Use the volume " + "audio filter instead.\n"); + + snprintf(args, sizeof(args), "volume=%f", audio_volume / 256.0); + + snprintf(name, sizeof(name), "graph %d volume for input stream %d:%d", + fg->index, ist->file_index, ist->st->index); + ret = avfilter_graph_create_filter(&volume, + avfilter_get_by_name("volume"), + name, args, NULL, fg->graph); + if (ret < 0) + return ret; + + ret = avfilter_link(volume, 0, first_filter, pad_idx); + if (ret < 0) + return ret; + + first_filter = volume; + pad_idx = 0; + } if ((ret = avfilter_link(ifilter->filter, 0, first_filter, pad_idx)) < 0) return ret; From b519298a1578e0c895d53d4b4ed8867b1c031a56 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 5 Dec 2012 00:38:09 +0000 Subject: [PATCH 4/4] pixdesc: fix yuva 10bit bit depth It was wrongly set as the yuva 16bit one. Signed-off-by: Paul B Mahol Signed-off-by: Luca Barbato --- libavutil/pixdesc.c | 40 +++++++++++++++++------------------ tests/ref/lavfi/pixdesc | 10 ++++----- tests/ref/lavfi/pixfmts_copy | 10 ++++----- tests/ref/lavfi/pixfmts_null | 10 ++++----- tests/ref/lavfi/pixfmts_scale | 10 ++++----- tests/ref/lavfi/pixfmts_vflip | 10 ++++----- 6 files changed, 45 insertions(+), 45 deletions(-) diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 439c550adc..06d5defdba 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -655,10 +655,10 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .log2_chroma_w = 1, .log2_chroma_h = 1, .comp = { - { 0, 1, 1, 0, 15 }, /* Y */ - { 1, 1, 1, 0, 15 }, /* U */ - { 2, 1, 1, 0, 15 }, /* V */ - { 3, 1, 1, 0, 15 }, /* A */ + { 0, 1, 1, 0, 9 }, /* Y */ + { 1, 1, 1, 0, 9 }, /* U */ + { 2, 1, 1, 0, 9 }, /* V */ + { 3, 1, 1, 0, 9 }, /* A */ }, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA, }, @@ -668,10 +668,10 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .log2_chroma_w = 1, .log2_chroma_h = 0, .comp = { - { 0, 1, 1, 0, 15 }, /* Y */ - { 1, 1, 1, 0, 15 }, /* U */ - { 2, 1, 1, 0, 15 }, /* V */ - { 3, 1, 1, 0, 15 }, /* A */ + { 0, 1, 1, 0, 9 }, /* Y */ + { 1, 1, 1, 0, 9 }, /* U */ + { 2, 1, 1, 0, 9 }, /* V */ + { 3, 1, 1, 0, 9 }, /* A */ }, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA, }, @@ -681,10 +681,10 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .log2_chroma_w = 1, .log2_chroma_h = 0, .comp = { - { 0, 1, 1, 0, 15 }, /* Y */ - { 1, 1, 1, 0, 15 }, /* U */ - { 2, 1, 1, 0, 15 }, /* V */ - { 3, 1, 1, 0, 15 }, /* A */ + { 0, 1, 1, 0, 9 }, /* Y */ + { 1, 1, 1, 0, 9 }, /* U */ + { 2, 1, 1, 0, 9 }, /* V */ + { 3, 1, 1, 0, 9 }, /* A */ }, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA, }, @@ -694,10 +694,10 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .log2_chroma_w = 0, .log2_chroma_h = 0, .comp = { - { 0, 1, 1, 0, 15 }, /* Y */ - { 1, 1, 1, 0, 15 }, /* U */ - { 2, 1, 1, 0, 15 }, /* V */ - { 3, 1, 1, 0, 15 }, /* A */ + { 0, 1, 1, 0, 9 }, /* Y */ + { 1, 1, 1, 0, 9 }, /* U */ + { 2, 1, 1, 0, 9 }, /* V */ + { 3, 1, 1, 0, 9 }, /* A */ }, .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_ALPHA, }, @@ -707,10 +707,10 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .log2_chroma_w = 0, .log2_chroma_h = 0, .comp = { - { 0, 1, 1, 0, 15 }, /* Y */ - { 1, 1, 1, 0, 15 }, /* U */ - { 2, 1, 1, 0, 15 }, /* V */ - { 3, 1, 1, 0, 15 }, /* A */ + { 0, 1, 1, 0, 9 }, /* Y */ + { 1, 1, 1, 0, 9 }, /* U */ + { 2, 1, 1, 0, 9 }, /* V */ + { 3, 1, 1, 0, 9 }, /* A */ }, .flags = PIX_FMT_PLANAR | PIX_FMT_ALPHA, }, diff --git a/tests/ref/lavfi/pixdesc b/tests/ref/lavfi/pixdesc index 5716cf11b1..d1ccbbcd17 100644 --- a/tests/ref/lavfi/pixdesc +++ b/tests/ref/lavfi/pixdesc @@ -58,21 +58,21 @@ yuv444p9be 6ab31f4c12b533ce318ecdff83cdd054 yuv444p9le f0606604a5c08becab6ba500124c4b7c yuva420p a29884f3f3dfe1e00b961bc17bef3d47 yuva420p10be 145366ff1632de3e300d947f49844284 -yuva420p10le 242b310218a41aacc59f78f42f949d60 +yuva420p10le d797038552d7f698e4d1db4dfa18ceb0 yuva420p16be 25a335f66a0670911ced818aa42fb670 yuva420p16le 97bf252e6c030f0f0412d3826c2ea259 yuva420p9be 06b764d85bd3c22e9b7ca4babed84d4f yuva420p9le 1f01cdd4fc46f98d4c11b2947307a0e3 yuva422p 92b6815f465297284cdb843711682cee -yuva422p10be c8722cb6e86d478f501d514a2d004867 -yuva422p10le 5c2767a47c94966052955bc48f72dd94 +yuva422p10be fb240ff9ac49b45b1b3d40df2c89e39d +yuva422p10le f767ede9ba1d427faadc963cf41d2412 yuva422p16be ef442b11b26e5e61f3c958fa309576dd yuva422p16le 5789009759d7a44dacc6da2194e402b1 yuva422p9be e0d2f45f7f5541eee988137c7ebb3495 yuva422p9le a4ec81f328efd3856dec430fb27f2f56 yuva444p c523716e4900cfe515eaab1d7124fdd9 -yuva444p10be 03df7c3936c25626ea596c28e0466129 -yuva444p10le 55398bb467bc7957288d59af9f0bfadd +yuva444p10be f5791a75fdb86da0c243511ef9ab8fbd +yuva444p10le 578e88dfbe4ab07f280fcc7554f3a5c4 yuva444p16be ee7b9dd854e36b165d5b7cffb646ba6c yuva444p16le ec93b2907923d5655e9fb085479260ef yuva444p9be 03414257d78e72c28d03e3c247319b7c diff --git a/tests/ref/lavfi/pixfmts_copy b/tests/ref/lavfi/pixfmts_copy index 5716cf11b1..d1ccbbcd17 100644 --- a/tests/ref/lavfi/pixfmts_copy +++ b/tests/ref/lavfi/pixfmts_copy @@ -58,21 +58,21 @@ yuv444p9be 6ab31f4c12b533ce318ecdff83cdd054 yuv444p9le f0606604a5c08becab6ba500124c4b7c yuva420p a29884f3f3dfe1e00b961bc17bef3d47 yuva420p10be 145366ff1632de3e300d947f49844284 -yuva420p10le 242b310218a41aacc59f78f42f949d60 +yuva420p10le d797038552d7f698e4d1db4dfa18ceb0 yuva420p16be 25a335f66a0670911ced818aa42fb670 yuva420p16le 97bf252e6c030f0f0412d3826c2ea259 yuva420p9be 06b764d85bd3c22e9b7ca4babed84d4f yuva420p9le 1f01cdd4fc46f98d4c11b2947307a0e3 yuva422p 92b6815f465297284cdb843711682cee -yuva422p10be c8722cb6e86d478f501d514a2d004867 -yuva422p10le 5c2767a47c94966052955bc48f72dd94 +yuva422p10be fb240ff9ac49b45b1b3d40df2c89e39d +yuva422p10le f767ede9ba1d427faadc963cf41d2412 yuva422p16be ef442b11b26e5e61f3c958fa309576dd yuva422p16le 5789009759d7a44dacc6da2194e402b1 yuva422p9be e0d2f45f7f5541eee988137c7ebb3495 yuva422p9le a4ec81f328efd3856dec430fb27f2f56 yuva444p c523716e4900cfe515eaab1d7124fdd9 -yuva444p10be 03df7c3936c25626ea596c28e0466129 -yuva444p10le 55398bb467bc7957288d59af9f0bfadd +yuva444p10be f5791a75fdb86da0c243511ef9ab8fbd +yuva444p10le 578e88dfbe4ab07f280fcc7554f3a5c4 yuva444p16be ee7b9dd854e36b165d5b7cffb646ba6c yuva444p16le ec93b2907923d5655e9fb085479260ef yuva444p9be 03414257d78e72c28d03e3c247319b7c diff --git a/tests/ref/lavfi/pixfmts_null b/tests/ref/lavfi/pixfmts_null index 5716cf11b1..d1ccbbcd17 100644 --- a/tests/ref/lavfi/pixfmts_null +++ b/tests/ref/lavfi/pixfmts_null @@ -58,21 +58,21 @@ yuv444p9be 6ab31f4c12b533ce318ecdff83cdd054 yuv444p9le f0606604a5c08becab6ba500124c4b7c yuva420p a29884f3f3dfe1e00b961bc17bef3d47 yuva420p10be 145366ff1632de3e300d947f49844284 -yuva420p10le 242b310218a41aacc59f78f42f949d60 +yuva420p10le d797038552d7f698e4d1db4dfa18ceb0 yuva420p16be 25a335f66a0670911ced818aa42fb670 yuva420p16le 97bf252e6c030f0f0412d3826c2ea259 yuva420p9be 06b764d85bd3c22e9b7ca4babed84d4f yuva420p9le 1f01cdd4fc46f98d4c11b2947307a0e3 yuva422p 92b6815f465297284cdb843711682cee -yuva422p10be c8722cb6e86d478f501d514a2d004867 -yuva422p10le 5c2767a47c94966052955bc48f72dd94 +yuva422p10be fb240ff9ac49b45b1b3d40df2c89e39d +yuva422p10le f767ede9ba1d427faadc963cf41d2412 yuva422p16be ef442b11b26e5e61f3c958fa309576dd yuva422p16le 5789009759d7a44dacc6da2194e402b1 yuva422p9be e0d2f45f7f5541eee988137c7ebb3495 yuva422p9le a4ec81f328efd3856dec430fb27f2f56 yuva444p c523716e4900cfe515eaab1d7124fdd9 -yuva444p10be 03df7c3936c25626ea596c28e0466129 -yuva444p10le 55398bb467bc7957288d59af9f0bfadd +yuva444p10be f5791a75fdb86da0c243511ef9ab8fbd +yuva444p10le 578e88dfbe4ab07f280fcc7554f3a5c4 yuva444p16be ee7b9dd854e36b165d5b7cffb646ba6c yuva444p16le ec93b2907923d5655e9fb085479260ef yuva444p9be 03414257d78e72c28d03e3c247319b7c diff --git a/tests/ref/lavfi/pixfmts_scale b/tests/ref/lavfi/pixfmts_scale index 7be8af4a11..e53580c944 100644 --- a/tests/ref/lavfi/pixfmts_scale +++ b/tests/ref/lavfi/pixfmts_scale @@ -58,21 +58,21 @@ yuv444p9be 9ac2643ce7f7e5c4e17c8c9fd8494d4a yuv444p9le 896a1cc9cccca1ba410dd53942d33cc4 yuva420p 8673a9131fb47de69788863f93a50eb7 yuva420p10be d92a95061809f251175f5d5e3074930e -yuva420p10le 8a06c377b8aa2b2979054e074582a5b5 +yuva420p10le bad90ba2d4c260e379a7aa6dc7760853 yuva420p16be a61d8ddb646e2d26020fc7ed2a48c1a9 yuva420p16le 90ef774f86ad3177ec57eca8744b4e09 yuva420p9be f7655546446bfdc875243d7cdeb13b30 yuva420p9le ada2b719827059d70ebc57e2a3f9da92 yuva422p 3c76ebeca0a7d3aa5f8e31ef80a86ffe -yuva422p10be 9a21b2f566c0761c8338edaa88006bee -yuva422p10le aefcda062e7e3463c887faa9d926aca7 +yuva422p10be 01dd539e4a62762a3c97e965c76bb6f7 +yuva422p10le 76355d9d8fdcd085a24d48832b72e40b yuva422p16be c21afa31ac18bd92e8e596b81552b52b yuva422p16le 0bc3720dba6076dcce3b74b1d3c6c4b7 yuva422p9be a60ac5b8026e9621724c033fbf79dbda yuva422p9le c3eda8831e9b9c94a3eb487d33114103 yuva444p 3268c6abe5e3cdbd16552a1eddced816 -yuva444p10be 3fbd1ece625c7aa7284b9ca3724d6abb -yuva444p10le 2eeda83856df77760cd30e477e8ba00b +yuva444p10be 856b37c1ee53459f46b9359d329ac9b5 +yuva444p10le 22790592361c007406d4ca9a9e0954a5 yuva444p16be ed5b07fe4d5b1137604568786777af1d yuva444p16le 3a3df23feb60d8832b566fd9765983d0 yuva444p9be 4fc479c5b1044ad37b4e6fc6488b4f7f diff --git a/tests/ref/lavfi/pixfmts_vflip b/tests/ref/lavfi/pixfmts_vflip index d820518aa8..9fd8bf6450 100644 --- a/tests/ref/lavfi/pixfmts_vflip +++ b/tests/ref/lavfi/pixfmts_vflip @@ -58,21 +58,21 @@ yuv444p9be 6ac92b7dc9ab2fc59bee99204886899a yuv444p9le 85aef13a654953d3455d89770b0d74bd yuva420p c705d1cf061d8c6580ac690b55f92276 yuva420p10be baa5e3b0ff6d0ebbb0958560cd763c6e -yuva420p10le 32473853156341586ed716090427fc10 +yuva420p10le a36dc59ad55b406e5fee475236e9753c yuva420p16be bf3b134eb70878df9afba61d03e930b8 yuva420p16le 105d375154329a381aa58379a0a6ec46 yuva420p9be 8273d591e055f48990c29dd905a6cdfd yuva420p9le 95ced0bb07e422d98db61a35cdb3fb8f yuva422p 6aed0ea657ed51cc047a4fbdd981aec8 -yuva422p10be b76d8be9b4035d3164c35a2fdb020636 -yuva422p10le 09aa2454075f999dbd3175b5c435dacf +yuva422p10be d69a3404984c5fd30c0fc548532bcb6b +yuva422p10le a40c8e6f50e12d94bf7484107ec98559 yuva422p16be 39552c259ca242f2417e913ffc602fde yuva422p16le 16faa558a34291ca32f6d94dce211ee2 yuva422p9be a951eafb62c092c63f7566b6803f60df yuva422p9le 00b39cfca78666e057ee527f5e174a04 yuva444p da5d64f2b2bd2013c186456f595fad65 -yuva444p10be 09375aa0c3a60436fc65ca0da76ca542 -yuva444p10le a4baf701134c7ff33f806ad00501d8f5 +yuva444p10be 00e74a9c0c7818a9bbd9fee95b961ee8 +yuva444p10le cbe30f44b63cf7ed27fc2dde40315b5e yuva444p16be 7e9b799b057e1446dabbf0f738480cfb yuva444p16le 556d58b91a617fe4a83af99a4aea1c2e yuva444p9be b5a31de4fac408eeecaf3aff11f40e55