drivers/media/platform/qcom/venus/helpers.c | 5 ----- 1 file changed, 5 deletions(-)
Venus driver errors out on the interlaced streams with the 'field isn't
supported' error message, which e.g. prevents decoding of the MPEG2
video streams. Don't error out if the buffer is set to contain
interlaced data.
Tested with the fluster enabled to handle MPEG2 through Gstreamer:
./fluster.py r -d GStreamer-MPEG2_VIDEO-V4L2-Gst1.0 -s -so venus-mpeg2.md -j 1
GLOBAL SUMMARY
|TOTALS|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
|-|-|
|TOTAL|30/52|
|TOTAL TIME|75.526s|
|-|-|
|Profile|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
|MAIN|26/32|
|PROFILE_4_2_2|0/9|
|SIMPLE|4/11|
|-|-|
Fixes: 059790467bf4 ("media: venus: helpers: handle correctly vbuf field")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/media/platform/qcom/venus/helpers.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
index 747c388fe25f..71e79093a4c7 100644
--- a/drivers/media/platform/qcom/venus/helpers.c
+++ b/drivers/media/platform/qcom/venus/helpers.c
@@ -1466,11 +1466,6 @@ int venus_helper_vb2_buf_prepare(struct vb2_buffer *vb)
if (V4L2_TYPE_IS_OUTPUT(vb->vb2_queue->type)) {
if (vbuf->field == V4L2_FIELD_ANY)
vbuf->field = V4L2_FIELD_NONE;
- if (vbuf->field != V4L2_FIELD_NONE) {
- dev_err(inst->core->dev, "%s field isn't supported\n",
- __func__);
- return -EINVAL;
- }
}
if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
---
base-commit: 779cae956c8316aebc1946ef86ca001f99658270
change-id: 20260228-venus-mpeg2-495f9187a1ec
Best regards,
--
With best wishes
Dmitry
> Wiadomość napisana przez Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> w dniu 28 lut 2026, o godz. 10:49:
>
> Venus driver errors out on the interlaced streams with the 'field isn't
> supported' error message, which e.g. prevents decoding of the MPEG2
> video streams. Don't error out if the buffer is set to contain
> interlaced data.
>
> Tested with the fluster enabled to handle MPEG2 through Gstreamer:
>
> ./fluster.py r -d GStreamer-MPEG2_VIDEO-V4L2-Gst1.0 -s -so venus-mpeg2.md -j 1
>
> GLOBAL SUMMARY
> |TOTALS|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
> |-|-|
> |TOTAL|30/52|
> |TOTAL TIME|75.526s|
> |-|-|
> |Profile|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
> |MAIN|26/32|
> |PROFILE_4_2_2|0/9|
> |SIMPLE|4/11|
> |-|-|
>
> Fixes: 059790467bf4 ("media: venus: helpers: handle correctly vbuf field")
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/venus/helpers.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
> index 747c388fe25f..71e79093a4c7 100644
> --- a/drivers/media/platform/qcom/venus/helpers.c
> +++ b/drivers/media/platform/qcom/venus/helpers.c
> @@ -1466,11 +1466,6 @@ int venus_helper_vb2_buf_prepare(struct vb2_buffer *vb)
> if (V4L2_TYPE_IS_OUTPUT(vb->vb2_queue->type)) {
> if (vbuf->field == V4L2_FIELD_ANY)
> vbuf->field = V4L2_FIELD_NONE;
> - if (vbuf->field != V4L2_FIELD_NONE) {
> - dev_err(inst->core->dev, "%s field isn't supported\n",
> - __func__);
> - return -EINVAL;
> - }
> }
>
> if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
>
> ---
> base-commit: 779cae956c8316aebc1946ef86ca001f99658270
> change-id: 20260228-venus-mpeg2-495f9187a1ec
>
> Best regards,
> --
> With best wishes
> Dmitry
>
>
Dmitry,
I applied this on 6.19.4 mainline and give run with interlaced content (hd tv) on qcs6490 (radxa dragon sbc).
Playback fails like this: https://gist.github.com/warpme/a368983678af0a76af85314808773076
pls see a bootom kernel output showing venus failure.
my sw stack plays ok on e.g rpi4 stateful v4l2m2m so i think root cause isn't in my userspace....
pls let me know if anything extra is required to fix venus decoder issue.
br
On Sat, Feb 28, 2026 at 09:54:20PM +0100, Piotr Oniszczuk wrote:
>
>
> > Wiadomość napisana przez Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> w dniu 28 lut 2026, o godz. 10:49:
> >
> > Venus driver errors out on the interlaced streams with the 'field isn't
> > supported' error message, which e.g. prevents decoding of the MPEG2
> > video streams. Don't error out if the buffer is set to contain
> > interlaced data.
> >
> > Tested with the fluster enabled to handle MPEG2 through Gstreamer:
> >
> > ./fluster.py r -d GStreamer-MPEG2_VIDEO-V4L2-Gst1.0 -s -so venus-mpeg2.md -j 1
> >
> > GLOBAL SUMMARY
> > |TOTALS|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
> > |-|-|
> > |TOTAL|30/52|
> > |TOTAL TIME|75.526s|
> > |-|-|
> > |Profile|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
> > |MAIN|26/32|
> > |PROFILE_4_2_2|0/9|
> > |SIMPLE|4/11|
> > |-|-|
> >
> > Fixes: 059790467bf4 ("media: venus: helpers: handle correctly vbuf field")
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> > drivers/media/platform/qcom/venus/helpers.c | 5 -----
> > 1 file changed, 5 deletions(-)
> >
> > diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
> > index 747c388fe25f..71e79093a4c7 100644
> > --- a/drivers/media/platform/qcom/venus/helpers.c
> > +++ b/drivers/media/platform/qcom/venus/helpers.c
> > @@ -1466,11 +1466,6 @@ int venus_helper_vb2_buf_prepare(struct vb2_buffer *vb)
> > if (V4L2_TYPE_IS_OUTPUT(vb->vb2_queue->type)) {
> > if (vbuf->field == V4L2_FIELD_ANY)
> > vbuf->field = V4L2_FIELD_NONE;
> > - if (vbuf->field != V4L2_FIELD_NONE) {
> > - dev_err(inst->core->dev, "%s field isn't supported\n",
> > - __func__);
> > - return -EINVAL;
> > - }
> > }
> >
> > if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
> >
> > ---
> > base-commit: 779cae956c8316aebc1946ef86ca001f99658270
> > change-id: 20260228-venus-mpeg2-495f9187a1ec
> >
> > Best regards,
> > --
> > With best wishes
> > Dmitry
> >
> >
>
>
> Dmitry,
> I applied this on 6.19.4 mainline and give run with interlaced content (hd tv) on qcs6490 (radxa dragon sbc).
> Playback fails like this: https://gist.github.com/warpme/a368983678af0a76af85314808773076
> pls see a bootom kernel output showing venus failure.
> my sw stack plays ok on e.g rpi4 stateful v4l2m2m so i think root cause isn't in my userspace....
> pls let me know if anything extra is required to fix venus decoder issue.
> br
Interesting. So, most likely, H.264 decoder can't cope with it and we
need to allow non-NONE fields only for MPEG2. Let's see if Vikash will
have any other ideas.
--
With best wishes
Dmitry
On 3/1/2026 4:05 AM, Dmitry Baryshkov wrote:
> On Sat, Feb 28, 2026 at 09:54:20PM +0100, Piotr Oniszczuk wrote:
>>
>>
>>> Wiadomość napisana przez Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> w dniu 28 lut 2026, o godz. 10:49:
>>>
>>> Venus driver errors out on the interlaced streams with the 'field isn't
>>> supported' error message, which e.g. prevents decoding of the MPEG2
>>> video streams. Don't error out if the buffer is set to contain
>>> interlaced data.
>>>
>>> Tested with the fluster enabled to handle MPEG2 through Gstreamer:
>>>
>>> ./fluster.py r -d GStreamer-MPEG2_VIDEO-V4L2-Gst1.0 -s -so venus-mpeg2.md -j 1
>>>
>>> GLOBAL SUMMARY
>>> |TOTALS|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
>>> |-|-|
>>> |TOTAL|30/52|
>>> |TOTAL TIME|75.526s|
>>> |-|-|
>>> |Profile|GStreamer-MPEG2_VIDEO-V4L2-Gst1.0|
>>> |MAIN|26/32|
>>> |PROFILE_4_2_2|0/9|
>>> |SIMPLE|4/11|
>>> |-|-|
>>>
>>> Fixes: 059790467bf4 ("media: venus: helpers: handle correctly vbuf field")
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>> drivers/media/platform/qcom/venus/helpers.c | 5 -----
>>> 1 file changed, 5 deletions(-)
>>>
>>> diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
>>> index 747c388fe25f..71e79093a4c7 100644
>>> --- a/drivers/media/platform/qcom/venus/helpers.c
>>> +++ b/drivers/media/platform/qcom/venus/helpers.c
>>> @@ -1466,11 +1466,6 @@ int venus_helper_vb2_buf_prepare(struct vb2_buffer *vb)
>>> if (V4L2_TYPE_IS_OUTPUT(vb->vb2_queue->type)) {
>>> if (vbuf->field == V4L2_FIELD_ANY)
>>> vbuf->field = V4L2_FIELD_NONE;
>>> - if (vbuf->field != V4L2_FIELD_NONE) {
>>> - dev_err(inst->core->dev, "%s field isn't supported\n",
>>> - __func__);
>>> - return -EINVAL;
>>> - }
>>> }
>>>
>>> if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
>>>
>>> ---
>>> base-commit: 779cae956c8316aebc1946ef86ca001f99658270
>>> change-id: 20260228-venus-mpeg2-495f9187a1ec
>>>
>>> Best regards,
>>> --
>>> With best wishes
>>> Dmitry
>>>
>>>
>>
>>
>> Dmitry,
>> I applied this on 6.19.4 mainline and give run with interlaced content (hd tv) on qcs6490 (radxa dragon sbc).
>> Playback fails like this: https://gist.github.com/warpme/a368983678af0a76af85314808773076
>> pls see a bootom kernel output showing venus failure.
>> my sw stack plays ok on e.g rpi4 stateful v4l2m2m so i think root cause isn't in my userspace....
>> pls let me know if anything extra is required to fix venus decoder issue.
>> br
>
>
> Interesting. So, most likely, H.264 decoder can't cope with it and we
> need to allow non-NONE fields only for MPEG2. Let's see if Vikash will
> have any other ideas.
>
Venus should already support h264 interlace.
Piotr, do you see the same failure without this patch ?
Regards,
Vikash
On Mon, Mar 02, 2026 at 01:01:18PM +0530, Vikash Garodia wrote: > > On 3/1/2026 4:05 AM, Dmitry Baryshkov wrote: > > On Sat, Feb 28, 2026 at 09:54:20PM +0100, Piotr Oniszczuk wrote: > > > > > > > > > > Wiadomość napisana przez Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> w dniu 28 lut 2026, o godz. 10:49: > > > > > > > > Venus driver errors out on the interlaced streams with the 'field isn't > > > > supported' error message, which e.g. prevents decoding of the MPEG2 > > > > video streams. Don't error out if the buffer is set to contain > > > > interlaced data. > > > > > > > > Tested with the fluster enabled to handle MPEG2 through Gstreamer: > > > > [...] > > > > > > > Dmitry, > > > I applied this on 6.19.4 mainline and give run with interlaced content (hd tv) on qcs6490 (radxa dragon sbc). > > > Playback fails like this: https://gist.github.com/warpme/a368983678af0a76af85314808773076 > > > pls see a bootom kernel output showing venus failure. > > > my sw stack plays ok on e.g rpi4 stateful v4l2m2m so i think root cause isn't in my userspace.... > > > pls let me know if anything extra is required to fix venus decoder issue. > > > br > > > > > > Interesting. So, most likely, H.264 decoder can't cope with it and we > > need to allow non-NONE fields only for MPEG2. Let's see if Vikash will > > have any other ideas. > > > > Venus should already support h264 interlace. I guess, the question is: do we support interlaced H.264 streams? > > Piotr, do you see the same failure without this patch ? > > Regards, > Vikash -- With best wishes Dmitry
On 3/2/2026 4:58 PM, Dmitry Baryshkov wrote: > On Mon, Mar 02, 2026 at 01:01:18PM +0530, Vikash Garodia wrote: >> >> On 3/1/2026 4:05 AM, Dmitry Baryshkov wrote: >>> On Sat, Feb 28, 2026 at 09:54:20PM +0100, Piotr Oniszczuk wrote: >>>> >>>> >>>>> Wiadomość napisana przez Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> w dniu 28 lut 2026, o godz. 10:49: >>>>> >>>>> Venus driver errors out on the interlaced streams with the 'field isn't >>>>> supported' error message, which e.g. prevents decoding of the MPEG2 >>>>> video streams. Don't error out if the buffer is set to contain >>>>> interlaced data. >>>>> >>>>> Tested with the fluster enabled to handle MPEG2 through Gstreamer: >>>>> > > [...] > >>>>> >>>> Dmitry, >>>> I applied this on 6.19.4 mainline and give run with interlaced content (hd tv) on qcs6490 (radxa dragon sbc). >>>> Playback fails like this: https://gist.github.com/warpme/a368983678af0a76af85314808773076 >>>> pls see a bootom kernel output showing venus failure. >>>> my sw stack plays ok on e.g rpi4 stateful v4l2m2m so i think root cause isn't in my userspace.... >>>> pls let me know if anything extra is required to fix venus decoder issue. >>>> br >>> >>> >>> Interesting. So, most likely, H.264 decoder can't cope with it and we >>> need to allow non-NONE fields only for MPEG2. Let's see if Vikash will >>> have any other ideas. >>> >> >> Venus should already support h264 interlace. > > I guess, the question is: do we support interlaced H.264 streams? Yes, we do support interlace. > >> >> Piotr, do you see the same failure without this patch ? >> >> Regards, >> Vikash >
> Wiadomość napisana przez Vikash Garodia <vikash.garodia@oss.qualcomm.com> w dniu 4 mar 2026, o godz. 14:28: > > >>>> >>>> have any other ideas. >>>> >>> >>> Venus should already support h264 interlace. >> I guess, the question is: do we support interlaced H.264 streams? > > Yes, we do support interlace. > Hmm - i'm curious: when you are saying "we do support " - it this mean: 1. just support or, 2. suport for demonstrating working state or, 3. support for useful usage (i mean useful in user space like e.g media players) Isn't target to have option3? I have qcs6490 and decoder fails on: -kodi -mythtv -mpv Tested only on 3 major players as i'm afraid other exotic userspace is rather niche for users... And believe me - repaying to mine users: "hey - my distro supports video decoder on qcs6490 as i can prove it by showing you working test tools on it" is not what they want to see.
> Wiadomość napisana przez Vikash Garodia <vikash.garodia@oss.qualcomm.com> w dniu 2 mar 2026, o godz. 08:31: > > > On 3/1/2026 4:05 AM, Dmitry Baryshkov wrote: >>> >>> br >> Interesting. So, most likely, H.264 decoder can't cope with it and we >> need to allow non-NONE fields only for MPEG2. Let's see if Vikash will >> have any other ideas. > > Venus should already support h264 interlace. > > Piotr, do you see the same failure without this patch ? > > Regards, > Vikash yes
© 2016 - 2026 Red Hat, Inc.