Sep 24, 2022, 23:57 by d...@lynne.ee:
> Sep 24, 2022, 21:40 by mar...@martin.st:
>
>> What about ac3dsp then - that one seems like it's fairly optimized for arm?
>>
> Haven't touched them, they're still being used. Unfortunately, for AC3,
> the full MDCT optimizations in lavc do make a difference
On 9/22/2022 3:08 PM, Derek Buitenhuis wrote:
> ---
> fftools/ffprobe.c | 11 +--
> 1 file changed, 9 insertions(+), 2 deletions(-)
Will push later today (with commit message typo fixed)
if there are no objections.
- Derek
___
ffmpeg-devel mail
Lynne:
> Sep 24, 2022, 23:57 by d...@lynne.ee:
>
>> Sep 24, 2022, 21:40 by mar...@martin.st:
>>
>>> What about ac3dsp then - that one seems like it's fairly optimized for arm?
>>>
>> Haven't touched them, they're still being used. Unfortunately, for AC3,
>> the full MDCT optimizations in lavc do m
Lynne:
> -for (int i = 0; i < WMAPRO_BLOCK_SIZES; i++) {
> -ret = ff_mdct_init(&s->mdct_ctx[i], WMAPRO_BLOCK_MIN_BITS + 1 + i, 1,
> - 1.0 / (1 << (WMAPRO_BLOCK_MIN_BITS + i - 1))
> - / (1ll << (s->bits_per_sample - 1)));
> -if
Hello,
Changes since version version 5:
- Use shifted-add instructions where applicable (pointer arithmetic) to
minimise scalar operations to the absolute minimum.
- Add AAC PS DSP stereo interpolation [0].
The following changes since commit 7cd252ee41ddc693fa140c5b5eb472b6d6f27f9e:
avco
From: Rémi Denis-Courmont
This introduces compile-time and run-time CPU detection on RISC-V. In
practice, I doubt that FFmpeg will ever see a RISC-V CPU without all of
I, F and D extensions, and if it does, it probably won't have run-time
detection. So the flags are essentially always set.
But a
From: Rémi Denis-Courmont
RV64G supports MIN & MAX instructions natively only on floating point
registers, not general purpose ones. The later would require the Zbb
extension. Due to that, it is actually faster to perform the clipping
"properly" in FPU.
Benchmarks on SiFive U74-MC (courtesy of S
From: Rémi Denis-Courmont
---
libavutil/riscv/asm.S | 77 +++
1 file changed, 77 insertions(+)
create mode 100644 libavutil/riscv/asm.S
diff --git a/libavutil/riscv/asm.S b/libavutil/riscv/asm.S
new file mode 100644
index 00..dbd97f40a4
--- /dev/
From: Rémi Denis-Courmont
Benchmarks on SiFive U74-MC (courtesy of Shanghai StarFive Tech):
get_pixels_c: 180.0
get_pixels_rvi: 136.7
---
libavcodec/pixblockdsp.c| 2 +
libavcodec/pixblockdsp.h| 2 +
libavcodec/riscv/Makefile | 2 +
libavcodec/riscv/pixblockd
From: Rémi Denis-Courmont
RVV defines a total of 12 different extensions, including:
- 5 different instruction subsets:
- Zve32x: 8-, 16- and 32-bit integers,
- Zve32f: Zve32x plus single precision floats,
- Zve64x: Zve32x plus 64-bit integers,
- Zve64f: Zve32f plus Zve64x,
- Zve64d: Z
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 3 +++
libavutil/riscv/float_dsp_rvv.S | 19 +++
2 files changed, 22 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index 6027a67b46..c2d93e0cd7 100644
--- a/libavu
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 9 -
libavutil/riscv/float_dsp_rvv.S | 17 +
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index de567c50d2..b829c0f736
From: Rémi Denis-Courmont
Those mnemonics require the very latest binutils release at the time of
writing. These macros provide seamless backward compatibility.
---
libavutil/riscv/asm.S | 19 +++
1 file changed, 19 insertions(+)
diff --git a/libavutil/riscv/asm.S b/libavutil/ri
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 6 +-
libavutil/riscv/float_dsp_rvv.S | 17 +
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index 60b79bd59e..6027a67b46 100
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 3 +++
libavutil/riscv/float_dsp_rvv.S | 18 ++
2 files changed, 21 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index c2d93e0cd7..d17d0f66c5 100644
--- a/libavut
From: Rémi Denis-Courmont
This is based on existing code from the VLC git tree with two minor
changes to account for the different function prototypes.
---
libavutil/float_dsp.c| 2 ++
libavutil/float_dsp.h| 1 +
libavutil/riscv/Makefile | 4 +++-
libavutil/ris
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 3 +++
libavutil/riscv/float_dsp_rvv.S | 17 +
2 files changed, 20 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index b829c0f736..60b79bd59e 100644
--- a/libavuti
From: Rémi Denis-Courmont
---
Makefile | 2 +-
configure| 15 +++
ffbuild/arch.mak | 2 ++
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 61f79e27ae..1fb742f390 100644
--- a/Makefile
+++ b/Makefile
@@ -91,7 +91,7 @@ ffbuild/
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 2 ++
libavutil/riscv/float_dsp_rvv.S | 18 ++
2 files changed, 20 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index 2ddd2050f7..f164b1308f 100644
--- a/libavuti
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 3 +++
libavutil/riscv/float_dsp_rvv.S | 19 +++
2 files changed, 22 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index d17d0f66c5..2ddd2050f7 100644
--- a/libavu
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 2 ++
libavutil/riscv/float_dsp_rvv.S | 20
2 files changed, 22 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index dacd81c08b..cc9b7e83dc 100644
--- a/libavu
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 3 +++
libavutil/riscv/float_dsp_rvv.S | 21 +
2 files changed, 24 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index f164b1308f..9b8fd9942b 100644
--- a/liba
From: Rémi Denis-Courmont
---
libavutil/fixed_dsp.c| 4 +++-
libavutil/fixed_dsp.h| 1 +
libavutil/riscv/Makefile | 4 +++-
libavutil/riscv/fixed_dsp_init.c | 38 ++
libavutil/riscv/fixed_dsp_rvv.S | 40 +
From: Rémi Denis-Courmont
---
libavutil/riscv/float_dsp_init.c | 3 +++
libavutil/riscv/float_dsp_rvv.S | 33
2 files changed, 36 insertions(+)
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index 9b8fd9942b..dacd81c08b 100644
From: Rémi Denis-Courmont
---
libavcodec/riscv/Makefile| 1 +
libavcodec/riscv/audiodsp_init.c | 9
libavcodec/riscv/audiodsp_rvv.S | 36
3 files changed, 46 insertions(+)
create mode 100644 libavcodec/riscv/audiodsp_rvv.S
diff --git a/libav
From: Rémi Denis-Courmont
---
libavcodec/riscv/audiodsp_init.c | 2 ++
libavcodec/riscv/audiodsp_rvv.S | 19 +++
2 files changed, 21 insertions(+)
diff --git a/libavcodec/riscv/audiodsp_init.c b/libavcodec/riscv/audiodsp_init.c
index ddd561484f..6f38b7bc83 100644
--- a/libavco
From: Rémi Denis-Courmont
---
libavcodec/riscv/fmtconvert_init.c | 7 ++-
libavcodec/riscv/fmtconvert_rvv.S | 28
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/libavcodec/riscv/fmtconvert_init.c
b/libavcodec/riscv/fmtconvert_init.c
index fd2f5
From: Rémi Denis-Courmont
---
libavcodec/aacpsdsp.h| 1 +
libavcodec/aacpsdsp_template.c | 2 ++
libavcodec/riscv/Makefile| 2 ++
libavcodec/riscv/aacpsdsp_init.c | 37
libavcodec/riscv/aacpsdsp_rvv.S | 37 +++
From: Rémi Denis-Courmont
---
libavcodec/riscv/audiodsp_init.c | 7 ++-
libavcodec/riscv/audiodsp_rvv.S | 17 +
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/libavcodec/riscv/audiodsp_init.c b/libavcodec/riscv/audiodsp_init.c
index ce8b60ee52..ddd561484f 10
From: Rémi Denis-Courmont
---
libavcodec/fmtconvert.c| 2 ++
libavcodec/fmtconvert.h| 1 +
libavcodec/riscv/Makefile | 2 ++
libavcodec/riscv/fmtconvert_init.c | 39 ++
libavcodec/riscv/fmtconvert_rvv.S | 39 +++
From: Rémi Denis-Courmont
---
libavcodec/riscv/aacpsdsp_init.c | 6 +-
libavcodec/riscv/aacpsdsp_rvv.S | 17 +
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/libavcodec/riscv/aacpsdsp_init.c b/libavcodec/riscv/aacpsdsp_init.c
index 525fc9aa38..90c9c501c3 100
From: Rémi Denis-Courmont
This uses the following vectorisation:
for (i = 0; i < blocksize; i++) {
ang[i] = mag[i] - copysignf(fmaxf(ang[i], 0.f), mag[i]);
mag[i] = mag[i] - copysignf(fminf(ang[i], 0.f), mag[i]);
}
---
libavcodec/riscv/Makefile | 2 ++
libavcode
From: Rémi Denis-Courmont
This starts with one-time initialisation of the 26 constant factors
like 08edacc248bce3f8946d75e97188d189c74a6de6. That is done with
the scalar instruction set. While the formula can readily be vectored,
the gains would (probably) be more than lost in transfering the re
From: Rémi Denis-Courmont
---
libavcodec/riscv/aacpsdsp_init.c | 14 +
libavcodec/riscv/aacpsdsp_rvv.S | 35
2 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/libavcodec/riscv/aacpsdsp_init.c b/libavcodec/riscv/aacpsdsp_init.c
index 622
From: Rémi Denis-Courmont
---
libavcodec/riscv/aacpsdsp_init.c | 3 +++
libavcodec/riscv/aacpsdsp_rvv.S | 35
2 files changed, 38 insertions(+)
diff --git a/libavcodec/riscv/aacpsdsp_init.c b/libavcodec/riscv/aacpsdsp_init.c
index 76f55502ee..20b1a12741 100644
From: Rémi Denis-Courmont
---
libavcodec/riscv/aacpsdsp_init.c | 4 ++
libavcodec/riscv/aacpsdsp_rvv.S | 65
2 files changed, 69 insertions(+)
diff --git a/libavcodec/riscv/aacpsdsp_init.c b/libavcodec/riscv/aacpsdsp_init.c
index 20b1a12741..58a4c61121 100644
Signed-off-by: Andreas Rheinhardt
---
libavcodec/amrwbdec.c | 4
libavcodec/lsp.c | 4
2 files changed, 8 insertions(+)
diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c
index ea3812cd9a..b59066adcf 100644
--- a/libavcodec/amrwbdec.c
+++ b/libavcodec/amrwbdec.c
@@ -24,6 +
Will avoid a forward declaration lateron.
Also adapt the function to modern style while at it.
Signed-off-by: Andreas Rheinhardt
---
libavcodec/lsp.c | 35 ---
1 file changed, 16 insertions(+), 19 deletions(-)
diff --git a/libavcodec/lsp.c b/libavcodec/lsp.c
inde
Possible since 48ac225db2563fe534b1d9e999bf8e70d5a577f8.
Furthermore, the current code would not work on mips
in case ff_lsp2polyf() were used outside of lsp.c,
because it is not compiled on mips since commit
3827a86eacd04d9d7b356f769be553f7b8cca361 at all;
instead it is overridden with a static av
Hi all,
I would very much appreciate a review of the following, which was
posted on August 22.
It addresses https://trac.ffmpeg.org/ticket/9842 and works in concert with [2].
Best,
-- Pierre
[1] https://trac.ffmpeg.org/ticket/9842
[2]
https://github.com/FFmpeg/FFmpeg/commit/48fa27e77a6d71be89
Hi,
I found an issue while playing with Bayer pixel format conversions.
```
$ echo -ne
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff
Hi,
this is an updated and cleaned-up version of Jan's patchset discussed in [1],
now v5...
Should fix #8329 and #6370.
Thanks,
Thilo
Jan Ekström (2):
ffmpeg: Add display_{rotation, hflip, vflip, scale} options
ffmpeg: Deprecate display rotation override with a metadata key
Thilo Borgmann
---
doc/APIchanges | 3 +++
libavutil/display.c | 21 +
libavutil/display.h | 15 +++
libavutil/version.h | 4 ++--
4 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 729f56be7b..42e3391b72 100644
--- a/doc/A
From: Jan Ekström
This enables overriding the scale, rotation as well as horizontal/vertical
flip state of a specific video stream on the input side.
Additionally, switch the singular test that was utilizing the rotation
metadata to instead override the input display rotation, thus leading
to th
From: Jan Ekström
Now that we have proper options for defining display matrix
overrides, this should no longer be required.
fftools does not have its own versioning, so for now the define is
just set to 1 and disables the functionality if set to zero.
---
fftools/ffmpeg.c | 2 ++
fftools/f
These functions work just as well with stack based matrices.
Signed-off-by: Andreas Rheinhardt
---
libavutil/display.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavutil/display.h b/libavutil/display.h
index 31d8bef361..0c73bff5da 100644
--- a/libavutil/display.h
Patch attached
From 0a28ae573654d05ef56cafbb169674b1829f0c6f Mon Sep 17 00:00:00 2001
From: Paul B Mahol
Date: Sun, 25 Sep 2022 19:17:25 +0200
Subject: [PATCH] avcodec/mjpegdec: check that index is not negative
Signed-off-by: Paul B Mahol
---
libavcodec/mjpegdec.c | 4
1 file changed, 4 in
Thilo Borgmann:
> ---
> doc/APIchanges | 3 +++
> libavutil/display.c | 21 +
> libavutil/display.h | 15 +++
> libavutil/version.h | 4 ++--
> 4 files changed, 41 insertions(+), 2 deletions(-)
>
> diff --git a/doc/APIchanges b/doc/APIchanges
> index 729f56b
Also remove a variable that is only used in this commented-out
codeblock. This fixes a -Wunused-variable warning.
Signed-off-by: Andreas Rheinhardt
---
libavcodec/tiff.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
index 3a610ada
Signed-off-by: Andreas Rheinhardt
---
libavcodec/tiff.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
index fd9db18c0b..dc566d307d 100644
--- a/libavcodec/tiff.c
+++ b/libavcodec/tiff.c
@@ -1879,7 +1879,6 @@ static const float xyz2rgb
Signed-off-by: James Almer
---
doc/resampler.texi | 16 +++-
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/doc/resampler.texi b/doc/resampler.texi
index 5ed3f4377a..a7a5abcfda 100644
--- a/doc/resampler.texi
+++ b/doc/resampler.texi
@@ -11,16 +11,6 @@ programmatic use
On Sat, 24 Sep 2022, Lynne wrote:
What about ac3dsp then - that one seems like it's fairly optimized for arm?
Haven't touched them, they're still being used. Unfortunately, for AC3,
the full MDCT optimizations in lavc do make a difference and the overall
decoder becomes 15% slower with this p
Sep 25, 2022, 21:55 by mar...@martin.st:
> On Sat, 24 Sep 2022, Lynne wrote:
>
>>> What about ac3dsp then - that one seems like it's fairly optimized for arm?
>>>
>>
>> Haven't touched them, they're still being used. Unfortunately, for AC3,
>> the full MDCT optimizations in lavc do make a differen
Sep 25, 2022, 14:34 by andreas.rheinha...@outlook.com:
> Lynne:
>
>> Sep 24, 2022, 23:57 by d...@lynne.ee:
>>
>>> Sep 24, 2022, 21:40 by mar...@martin.st:
>>>
What about ac3dsp then - that one seems like it's fairly optimized for arm?
>>> Haven't touched them, they're still being used. U
Lynne:
> Sep 25, 2022, 14:34 by andreas.rheinha...@outlook.com:
>
>> Lynne:
>>
>>> Sep 24, 2022, 23:57 by d...@lynne.ee:
>>>
Sep 24, 2022, 21:40 by mar...@martin.st:
> What about ac3dsp then - that one seems like it's fairly optimized for
> arm?
>
Haven't touched them,
Sep 25, 2022, 23:17 by andreas.rheinha...@outlook.com:
> Lynne:
>
>> Sep 25, 2022, 14:34 by andreas.rheinha...@outlook.com:
>>
>>> Lynne:
>>>
Sep 24, 2022, 23:57 by d...@lynne.ee:
> Sep 24, 2022, 21:40 by mar...@martin.st:
>
>> What about ac3dsp then - that one seems like it'
Signed-off-by: Andreas Rheinhardt
---
libavcodec/dirac_dwt.c | 6 +++---
libavcodec/dirac_dwt_template.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/dirac_dwt.c b/libavcodec/dirac_dwt.c
index af29932c6d..4039899cf0 100644
--- a/libavcodec/dirac_dwt.c
Pointers to void can be converted to any pointer to incomplete or
object type and back; but they are nevertheless not completely generic
pointers: There is no provision in the C standard that guarantees their
convertibility with function pointers. C90 lacks a generic function
pointer, C99 made ever
AVCodec.channel_layouts is deprecated and Clang (unlike GCC)
warns when setting this field in a codec definition.
Fortunately, Clang (unlike GCC) allows to use
FF_DISABLE_DEPRECATION_WARNINGS inside a definition (of an FFCodec),
so that one can create simple macros to set AVCodec.channel_layouts
th
They will be mistaken for the sentinel of the arrays
they are in, thereby hiding the 6.1, 7.1 and 22.2 layouts.
(This doesn't really matter, as these arrays are informational
only for decoders.)
Signed-off-by: Andreas Rheinhardt
---
libavcodec/aacdectab.h | 10 ++
1 file changed, 2 inser
> Fixes: 005c7a4 ("libavcodec/qsvenc: Add max/min qp reset support in
> qsvenc")
> CC: Wenbin Chen
> Signed-off-by: Dmitry Rogozhkin
> ---
> libavcodec/qsvenc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
> index 84c6e29
Hi,
this is an almost identical rebased version of Jan's patchset discussed in [1],
now v6...
Should fix #8329 and #6370.
Thanks,
Thilo
[1] https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296553.html
Jan Ekström (2):
ffmpeg: Add display_{rotation, hflip, vflip} options
ffmpeg: De
From: Jan Ekström
This enables overriding the rotation as well as horizontal/vertical
flip state of a specific video stream on the input side.
Additionally, switch the singular test that was utilizing the rotation
metadata to instead override the input display rotation, thus leading
to the same
From: Jan Ekström
Now that we have proper options for defining display matrix
overrides, this should no longer be required.
fftools does not have its own versioning, so for now the define is
just set to 1 and disables the functionality if set to zero.
---
fftools/ffmpeg.c | 2 ++
fftools/f
Andreas:
>Wujian(Chin):
>> Signed-off-by: wujian_nanjing
>> ---
>> libavcodec/avpacket.c | 44
>> libavcodec/packet.h | 17 +
>> libavformat/demux.c | 7 +++
>> libavformat/rtpdec.c | 37 -
>
Sep 25, 2022, 16:25 by r...@remlab.net:
> From: Rémi Denis-Courmont
> -if ((flags & AV_CPU_FLAG_RVD) && !(flags & AV_CPU_FLAG_RVF)) {
> +if ((flags & AV_CPU_FLAG_RV_ZVE64D) && !(flags & AV_CPU_FLAG_RV_ZVE64X))
> {
> +av_log(NULL, AV_LOG_WARNING, "RV%s implied by specified flags\n
Sep 25, 2022, 16:25 by r...@remlab.net:
> From: Rémi Denis-Courmont
>
> ---
> libavutil/riscv/float_dsp_init.c | 9 -
> libavutil/riscv/float_dsp_rvv.S | 17 +
> 2 files changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/libavutil/riscv/float_dsp_init.c
> b/liba
67 matches
Mail list logo