This is a follow up to a very old series from April 2019 [1] and
December 2020 [2], adding V4L2 Request API hwaccels for stateless
decoding of MPEG2, H.264 and HEVC.
These hwaccels has in one form or another been used in LibreELEC
community, nightly and release images since Dec 20th 2018.
HISTORY
Add a hwdevice type for V4L2 Request API with transfer_data_from support
for AV_PIX_FMT_DRM_PRIME, based on AV_HWDEVICE_TYPE_DRM.
AVV4L2RequestDeviceContext.media_fd can be set by the application or a
media device path can be supplied when hwdevice is created. When none
is supplied it default to -
Add common helpers for supporting V4L2 Request API hwaccels.
Basic flow for initialization follow the kernel Memory-to-memory
Stateless Video Decoder Interface > Initialization [1].
In init video devices is probed and when a capable device is found it is
initialized for decoding. Codec specific C
Probe all media devices and its linked video devices to locate a video
device that support stateless decoding of the specific codec using the
V4L2 Request API.
When AVV4L2RequestDeviceContext.media_fd is a valid file descriptor only
video devices for the opened media device is probed.
E.g. using a
Add a V4L2 Request API hwaccel for MPEG2.
Support for MPEG2 is enabled when Linux kernel headers declare the
control id V4L2_CID_STATELESS_MPEG2_SEQUENCE, added in v5.14.
This also change v4l2_request hwaccel to use autodetect in configure.
Signed-off-by: Jonas Karlman
---
configure
Add common support for decoding using the V4L2 Request API.
Basic flow for decoding follow the kernel Memory-to-memory Stateless
Video Decoder Interface > Decoding [1].
A codec hwaccel typically handle decoding as follow:
In start_frame next OUTPUT buffer and its related request object is
picked
From: Boris Brezillon
The V4L2_CID_STATELESS_H264_DECODE_PARAMS control require following:
- dec_ref_pic_marking_bit_size
Size in bits of the dec_ref_pic_marking() syntax element.
- pic_order_cnt_bit_size
Combined size in bits of the picture order count related syntax
elements: pic_order_
From: Jernej Skrabec
Add a V4L2 Request API hwaccel for HEVC, supporting both slice and
frame decoding modes.
Support for HEVC is enabled when Linux kernel headers declare the
control id V4L2_CID_STATELESS_HEVC_SPS, added in v6.0.
Co-developed-by: Benjamin Gaignard
Signed-off-by: Benjamin Gaig
From: Jernej Skrabec
Add a V4L2 Request API hwaccel for H.264, supporting both slice and
frame decoding modes.
Support for H.264 is enabled when Linux kernel headers declare the
control id V4L2_CID_STATELESS_H264_DECODE_MODE, added in v5.11.
Signed-off-by: Jernej Skrabec
Co-developed-by: Jonas
Changes from v1:
- multi-planar rgb for YUV2RGBFUNC no longer uses an array in the stack,
since that gave an overall 1% slowdown because some variables would no
longer be stored in registers.
Ramiro Polla (5):
swscale/yuv2rgb: prepare LOADCHROMA/PUTFUNC macros for multi-planar
rgb
swsc
This will be used in the upcoming yuv42{0,2}p -> gbrp unscaled
colorspace converters.
There is no difference in performance.
---
libswscale/yuv2rgb.c | 402 +--
1 file changed, 201 insertions(+), 201 deletions(-)
diff --git a/libswscale/yuv2rgb.c b/libswsc
This will be used in the upcoming yuv42{0,2}p -> gbrp unscaled
colorspace converters.
There is no difference in performance.
---
libswscale/yuv2rgb.c | 83 +---
1 file changed, 48 insertions(+), 35 deletions(-)
diff --git a/libswscale/yuv2rgb.c b/libswscal
---
libswscale/yuv2rgb.c| 16 ++
tests/checkasm/sw_yuv2rgb.c | 60 +++--
2 files changed, 60 insertions(+), 16 deletions(-)
diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
index 31d10235ef..52fe2093e7 100644
--- a/libswscale/yuv2rgb.c
+++ b
Note: this implementation is limited to x86_64 due to general purpose
register pressure.
checkasm --bench on an Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz:
yuv420p_gbrp_8_c: 118.5
yuv420p_gbrp_8_ssse3: 93.3
yuv420p_gbrp_128_c: 1068.3
yuv420p_gbrp_128_ssse3: 319.3
yuv420p_gbrp_1080_c: 8841.8
yu
checkasm --bench on a Raspberry Pi 5 Model B Rev 1.0:
yuv420p_gbrp_128_c: 1243.0
yuv420p_gbrp_128_neon: 453.5
yuv420p_gbrp_1920_c: 18165.5
yuv420p_gbrp_1920_neon: 6700.0
yuv422p_gbrp_128_c: 1463.5
yuv422p_gbrp_128_neon: 471.5
yuv422p_gbrp_1920_c: 21343.7
yuv422p_gbrp_1920_neon: 6743.5
---
libswsca
On Wed, Jul 31, 2024 at 1:14 PM Michael Niedermayer
wrote:
> On Tue, Jul 30, 2024 at 03:05:22PM +0200, Ramiro Polla wrote:
> > On Tue, Jul 23, 2024 at 2:46 PM Ramiro Polla wrote:
> > > This will be used in the upcoming yuv42{0,2}p -> gbrp unscaled
> > > colorspace converters.
> >
> > ping on this
On 06/08/2024 11:06, Jonas Karlman wrote:
Add a hwdevice type for V4L2 Request API with transfer_data_from support
for AV_PIX_FMT_DRM_PRIME, based on AV_HWDEVICE_TYPE_DRM.
AVV4L2RequestDeviceContext.media_fd can be set by the application or a
media device path can be supplied when hwdevice is cr
startNumber starts with 1 in avformat/dashenc.c, if startNumber is start with
1, the first segment file will be skipped.
---
libavformat/dashdec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index 63070b77be..0263a41670 100644
- On Aug 4, 2024, at 4:11 PM, Quack Doc quackdoct...@gmail.com wrote:
> I see, I tried to pull the patch and test it. How does invocation with
> node work? I'm a bit confused with the invocation. For testing I tried
> using "gamescope --headless -- glxgears" to generate a raw pipewire
> stream.
Just a curiosity thing; why would the spec need to be out of alpha, yet the
other codecs are already in ffmpeg? Just no preference for VP8 itself,
while its still in-spec for tech like WebRTC? Again, just seems odd that
I've run into this type of messaging before.
Best Regards,
Paul
On Mon, Aug 5
> Sorry for the ambiguity in my previous reply. The answer is yes: the current
> version of the patch will try to use the XDG portal unless a file descriptor
> is provided. The "node" option was meant to be used together with the "fd"
> option, not as an alternative to it. So when I said that I tho
Timo, I've created the PR here: https://github.com/BtbN/FFmpeg/pull/2
On Tue, Aug 6, 2024 at 9:29 AM Mondain wrote:
> Just a curiosity thing; why would the spec need to be out of alpha, yet
> the other codecs are already in ffmpeg? Just no preference for VP8 itself,
> while its still in-spec for
On 06.08.2024 18:29, Mondain wrote:
Just a curiosity thing; why would the spec need to be out of alpha, yet the
other codecs are already in ffmpeg? Just no preference for VP8 itself,
while its still in-spec for tech like WebRTC? Again, just seems odd that
I've run into this type of messaging befo
Hi Lynne,
On 2024-08-06 14:46, Lynne via ffmpeg-devel wrote:
> On 06/08/2024 11:06, Jonas Karlman wrote:
>> Add a hwdevice type for V4L2 Request API with transfer_data_from support
>> for AV_PIX_FMT_DRM_PRIME, based on AV_HWDEVICE_TYPE_DRM.
>>
>> AVV4L2RequestDeviceContext.media_fd can be set by t
Hi
Did CBS win the obfuscated C contest yet?
I was just looking at a msan issue and then looked at this:
CHECK(FUNC_SEI(message_list)(ctx, rw, ¤t->message_list, 1));
#define CHECK(call) do { \
err = (call); \
if (err < 0) \
return err; \
} while (0)
#define FUN
Ok, sounds good; I'll get this rebased; one small patch is gonna take
longer than expected.
On Tue, Aug 6, 2024 at 9:39 AM Timo Rothenpieler wrote:
>
> On 06.08.2024 18:29, Mondain wrote:
> > Just a curiosity thing; why would the spec need to be out of alpha, yet the
> > other codecs are already
On Tue, Aug 06, 2024 at 07:05:38PM +0200, Michael Niedermayer wrote:
> Hi
>
> Did CBS win the obfuscated C contest yet?
>
> I was just looking at a msan issue and then looked at this:
>
> CHECK(FUNC_SEI(message_list)(ctx, rw, ¤t->message_list, 1));
>
>
> #define CHECK(call) do { \
> er
Signed-off-by: Andreas Rheinhardt
---
libavcodec/cbs_sei.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libavcodec/cbs_sei.c b/libavcodec/cbs_sei.c
index eefa07cf00..458751d92e 100644
--- a/libavcodec/cbs_sei.c
+++ b/libavcodec/cbs_sei.c
@@ -41,7 +41,6 @@ int ff_cbs_sei_
Michael Niedermayer:
> On Tue, Aug 06, 2024 at 07:05:38PM +0200, Michael Niedermayer wrote:
>> Hi
>>
>> Did CBS win the obfuscated C contest yet?
>>
>> I was just looking at a msan issue and then looked at this:
>>
>> CHECK(FUNC_SEI(message_list)(ctx, rw, ¤t->message_list, 1));
>>
>>
>> #define CHE
On 8/6/2024 2:54 PM, Andreas Rheinhardt wrote:
Michael Niedermayer:
On Tue, Aug 06, 2024 at 07:05:38PM +0200, Michael Niedermayer wrote:
Hi
Did CBS win the obfuscated C contest yet?
I was just looking at a msan issue and then looked at this:
CHECK(FUNC_SEI(message_list)(ctx, rw, ¤t->message_
On Tue, Aug 06, 2024 at 07:54:58PM +0200, Andreas Rheinhardt wrote:
> Michael Niedermayer:
> > On Tue, Aug 06, 2024 at 07:05:38PM +0200, Michael Niedermayer wrote:
> >> Hi
> >>
> >> Did CBS win the obfuscated C contest yet?
> >>
> >> I was just looking at a msan issue and then looked at this:
> >>
James Almer:
> On 8/6/2024 2:54 PM, Andreas Rheinhardt wrote:
>> Michael Niedermayer:
>>> On Tue, Aug 06, 2024 at 07:05:38PM +0200, Michael Niedermayer wrote:
Hi
Did CBS win the obfuscated C contest yet?
I was just looking at a msan issue and then looked at this:
On Tue, Aug 06, 2024 at 08:41:16PM +0200, Andreas Rheinhardt wrote:
> James Almer:
> > On 8/6/2024 2:54 PM, Andreas Rheinhardt wrote:
> >> Michael Niedermayer:
> >>> On Tue, Aug 06, 2024 at 07:05:38PM +0200, Michael Niedermayer wrote:
> Hi
>
> Did CBS win the obfuscated C contest yet
Michael Niedermayer:
> On Tue, Aug 06, 2024 at 08:41:16PM +0200, Andreas Rheinhardt wrote:
>> James Almer:
>>> On 8/6/2024 2:54 PM, Andreas Rheinhardt wrote:
Michael Niedermayer:
> On Tue, Aug 06, 2024 at 07:05:38PM +0200, Michael Niedermayer wrote:
>> Hi
>>
>> Did CBS win the
On Tue, Aug 06, 2024 at 09:51:10PM +0200, Andreas Rheinhardt wrote:
> Michael Niedermayer:
> > On Tue, Aug 06, 2024 at 08:41:16PM +0200, Andreas Rheinhardt wrote:
> >> James Almer:
> >>> On 8/6/2024 2:54 PM, Andreas Rheinhardt wrote:
> Michael Niedermayer:
> > On Tue, Aug 06, 2024 at 07:05
Fixes: use of uninitialized value
Fixes:
70871/clusterfuzz-testcase-minimized-ffmpeg_dem_SEGAFILM_fuzzer-5883617752973312
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
libavformat/segafilm.c | 1 +
1 f
Fixes: use of uninitialized value
Fixes:
70872/clusterfuzz-testcase-minimized-ffmpeg_dem_OBU_fuzzer-6005782487826432
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
libavformat/av1dec.c | 3 +++
1 file c
Fixes: dereferencing pointers near NULL
Fixes:
70432/clusterfuzz-testcase-minimized-ffmpeg_dem_IAMF_fuzzer-5255672845893632
Fixes:
70877/clusterfuzz-testcase-minimized-ffmpeg_dem_IAMF_fuzzer-5348547432611840
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/pro
The code can leave uninitialized holes in the array.
Fixes: use of uninitialized values
Fixes:
70883/clusterfuzz-testcase-minimized-ffmpeg_dem_WTV_fuzzer-6698694567591936
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Ni
Fixes: use of uninitialized values
Fixes:
70885/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VP6F_fuzzer-4610946029387776
(and likely others)
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
tools/t
Fixes: Use of uninitialized value
Fixes:
70900/clusterfuzz-testcase-minimized-ffmpeg_dem_WTV_fuzzer-6286909377150976
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
libavformat/wtvdec.c | 3 ++-
1 file c
On Sun, Jun 02, 2024 at 07:05:37PM -0400, Ronald S. Bultje wrote:
> Hi,
>
> On Sun, Jun 2, 2024 at 6:43 PM Kacper Michajlow wrote:
>
> > On Sun, 2 Jun 2024 at 23:17, Ronald S. Bultje wrote:
> > >
> > > Hi,
> > >
> > > On Sun, Jun 2, 2024 at 9:12 AM James Almer wrote:
> > >
> > > > On 6/2/2024
On Wed, Jul 10, 2024 at 05:28:48PM +0200, Kacper Michajłow wrote:
> Fixes Clang warning.
>
> Signed-off-by: Kacper Michajłow
> ---
> libavcodec/wmavoice.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
will apply
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF13361
On Fri, May 10, 2024 at 03:49:02AM +0200, Kacper Michajłow wrote:
> This fixes passing options dict.
>
> Fixes some timeouts found by OSS-Fuzz.
>
> Signed-off-by: Kacper Michajłow
> ---
> libavformat/srtpproto.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
will apply
thx
[..
On Fri, May 10, 2024 at 04:07:40AM +0200, Kacper Michajłow wrote:
> Found by OSS-Fuzz.
>
> Signed-off-by: Kacper Michajłow
> ---
> libavformat/rtpproto.c | 1 +
> 1 file changed, 1 insertion(+)
will apply
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I
On Wed, Aug 07, 2024 at 12:18:51AM +0200, Michael Niedermayer wrote:
> The code can leave uninitialized holes in the array.
> Fixes: use of uninitialized values
> Fixes:
> 70883/clusterfuzz-testcase-minimized-ffmpeg_dem_WTV_fuzzer-6698694567591936
>
> Found-by: continuous fuzzing process
> https
On Wed, Aug 07, 2024 at 12:18:53AM +0200, Michael Niedermayer wrote:
> Fixes: Use of uninitialized value
> Fixes:
> 70900/clusterfuzz-testcase-minimized-ffmpeg_dem_WTV_fuzzer-6286909377150976
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpe
> Sorry for the ambiguity in my previous reply. The answer is yes: the current
> version of the patch will try to use the XDG portal unless a file descriptor
> is provided. The "node" option was meant to be used together with the "fd"
> option, not as an alternative to it. So when I said that I tho
This commit adds support for CAP and CPF markers. Decoding will exit when
encountering Ilegal input codestreams.
Signed-off-by: Osamu Watanabe
---
libavcodec/jpeg2000.h| 8 +++
libavcodec/jpeg2000dec.c | 134 ++-
libavcodec/jpeg2000dec.h | 7 ++
3 fil
This commit adds support for placeholder pass parsing.
Signed-off-by: Osamu Watanabe
---
libavcodec/jpeg2000.h | 2 +
libavcodec/jpeg2000dec.c | 352 +
libavcodec/jpeg2000dec.h | 2 +-
libavcodec/jpeg2000htdec.c | 90 +-
4 files changed,
This commit fixes wrong treatment of MAGBP value in Ccap15 and bugs in HT block
decoding.
Signed-off-by: Osamu Watanabe
---
libavcodec/jpeg2000dec.c | 11 +--
libavcodec/jpeg2000htdec.c | 144 ++---
libavcodec/jpeg2000htdec.h | 2 +-
3 files changed, 93 inse
Hi Pierre,
Thanks for suggesting the improvements.
All the suggestions have been reflected in version 8 of the patch set.
Best,
Osamu
> On Aug 6, 2024, at 2:28, Pierre-Anthony Lemieux wrote:
>
> Hi Osamu,
>
> Below are suggested improvements to error messages.
>
> There are also a couple of
I plan to apply on Friday, after fixing the few errant trailing spaces.
On Tue, Aug 6, 2024 at 8:48 PM Osamu Watanabe
wrote:
>
> This commit adds support for CAP and CPF markers. Decoding will exit when
> encountering Ilegal input codestreams.
>
> Signed-off-by: Osamu Watanabe
> ---
> libavcod
53 matches
Mail list logo