diff mbox series

[meta-arago,master/kirkstone] gstreamer1.0-plugins-good: wave5-codec: Set max buffers same as min buffers

Message ID 20231017115119.306574-1-r-ravikumar@ti.com
State Accepted
Delegated to: Ryan Eatmon
Headers show
Series [meta-arago,master/kirkstone] gstreamer1.0-plugins-good: wave5-codec: Set max buffers same as min buffers | expand

Commit Message

Rahul T R Oct. 17, 2023, 11:51 a.m. UTC
wave5 codec driver can not work with new buffers allocated post stream
start. To avoid issues because of this set max_buffers same as min
buffers, so that new buffers are not allocated post stream start

Signed-off-by: Rahul T R <r-ravikumar@ti.com>
---
 .../0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch      | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Devarsh Thakkar Oct. 18, 2023, 7:38 a.m. UTC | #1
Hi Rahul,

On 17/10/23 17:21, Rahul T R wrote:
> wave5 codec driver can not work with new buffers allocated post stream

I am not aware of such bug in wave5 driver also iiuc it's actually not a wave5
driver problem but probably related to v4l2 plugin not able to provide the
buffer with same index always to the driver for which the workaround patch
0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch was made to maintain 1-to-1
between v4l2 buffer indices and buffer.

I assume the problem related to the workaround not able to handle 1-to-1 for
dynamically allocated buffers post streaming right(if required you can
probably check with Prasanth if it would be possible to support this), if
that's the case then I would suggest to update commit message likewise.

> start. To avoid issues because of this set max_buffers same as min
> buffers, so that new buffers are not allocated post stream start
> 
> Signed-off-by: Rahul T R <r-ravikumar@ti.com>

With the suggested changes in commit message,

Reviewed-by: Devarsh Thakkar <devarsht@ti.com>

Regards
Devarsh
> ---
>  .../0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch      | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
> index a1471661..bf73e257 100644
> --- a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
> +++ b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
> @@ -14,9 +14,9 @@ Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
>  ---
>   sys/v4l2/gstv4l2bufferpool.c | 17 ++++++++++++++---
>   sys/v4l2/gstv4l2bufferpool.h |  2 ++
> - sys/v4l2/gstv4l2object.c     | 15 ++++++++++++---
> + sys/v4l2/gstv4l2object.c     | 16 +++++++++++++---
>   sys/v4l2/gstv4l2videodec.c   | 20 ++++++++++++++------
> - 4 files changed, 42 insertions(+), 12 deletions(-)
> + 4 files changed, 43 insertions(+), 12 deletions(-)
>  
>  diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
>  index d85f036..e6a60dc 100644
> @@ -86,7 +86,7 @@ index ee60540..eff1cf2 100644
>       own_min = MAX (own_min, GST_V4L2_MIN_BUFFERS (obj));
>  
>       /* for the downstream pool, we keep what downstream wants, though ensure
> -@@ -5049,8 +5053,13 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
> +@@ -5049,8 +5053,14 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
>       min = MAX (min, GST_V4L2_MIN_BUFFERS (obj));
>  
>       /* To import we need the other pool to hold at least own_min */
> @@ -95,6 +95,7 @@ index ee60540..eff1cf2 100644
>  +    if (obj_pool == pool) {
>  +        if (0 == strcmp(obj->vcap.driver, "wave5-dec")) {
>  +            min = own_min;
> ++            max = min;
>  +        } else {
>  +            min += own_min;
>  +        }
Prasanth Mantena Oct. 18, 2023, 7:49 a.m. UTC | #2
On 13:08-20231018, Devarsh Thakkar wrote:
> Hi Rahul,
> 
> On 17/10/23 17:21, Rahul T R wrote:
> > wave5 codec driver can not work with new buffers allocated post stream
> 
> I am not aware of such bug in wave5 driver also iiuc it's actually not a wave5
> driver problem but probably related to v4l2 plugin not able to provide the
> buffer with same index always to the driver for which the workaround patch
> 0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch was made to maintain 1-to-1
> between v4l2 buffer indices and buffer.
> 
> I assume the problem related to the workaround not able to handle 1-to-1 for
> dynamically allocated buffers post streaming right(if required you can
> probably check with Prasanth if it would be possible to support this), if
> that's the case then I would suggest to update commit message likewise.
> 
> > start. To avoid issues because of this set max_buffers same as min
> > buffers, so that new buffers are not allocated post stream start
> > 
> > Signed-off-by: Rahul T R <r-ravikumar@ti.com>
> 
> With the suggested changes in commit message,
> 
> Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
Agreed. This is not really a bug in driver. It is on the plugin side,
where the mapping of buffers with v4l2 indices is not being maintained.
Please modify the commit message.

With this suggestion,

Reviewed-by: Prasanth Babu Mantena <p-mantena@ti.com>
> 
> Regards
> Devarsh
> > ---
> >  .../0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch      | 7 ++++---
> >  1 file changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
> > index a1471661..bf73e257 100644
> > --- a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
> > +++ b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
> > @@ -14,9 +14,9 @@ Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
> >  ---
> >   sys/v4l2/gstv4l2bufferpool.c | 17 ++++++++++++++---
> >   sys/v4l2/gstv4l2bufferpool.h |  2 ++
> > - sys/v4l2/gstv4l2object.c     | 15 ++++++++++++---
> > + sys/v4l2/gstv4l2object.c     | 16 +++++++++++++---
> >   sys/v4l2/gstv4l2videodec.c   | 20 ++++++++++++++------
> > - 4 files changed, 42 insertions(+), 12 deletions(-)
> > + 4 files changed, 43 insertions(+), 12 deletions(-)
> >  
> >  diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
> >  index d85f036..e6a60dc 100644
> > @@ -86,7 +86,7 @@ index ee60540..eff1cf2 100644
> >       own_min = MAX (own_min, GST_V4L2_MIN_BUFFERS (obj));
> >  
> >       /* for the downstream pool, we keep what downstream wants, though ensure
> > -@@ -5049,8 +5053,13 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
> > +@@ -5049,8 +5053,14 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
> >       min = MAX (min, GST_V4L2_MIN_BUFFERS (obj));
> >  
> >       /* To import we need the other pool to hold at least own_min */
> > @@ -95,6 +95,7 @@ index ee60540..eff1cf2 100644
> >  +    if (obj_pool == pool) {
> >  +        if (0 == strcmp(obj->vcap.driver, "wave5-dec")) {
> >  +            min = own_min;
> > ++            max = min;
> >  +        } else {
> >  +            min += own_min;
> >  +        }
Rahul T R Oct. 18, 2023, 9:25 a.m. UTC | #3
On 18/10/23 13:19, Prasanth Mantena wrote:
> On 13:08-20231018, Devarsh Thakkar wrote:
>> Hi Rahul,
>>
>> On 17/10/23 17:21, Rahul T R wrote:
>>> wave5 codec driver can not work with new buffers allocated post stream
>> I am not aware of such bug in wave5 driver also iiuc it's actually not a wave5
>> driver problem but probably related to v4l2 plugin not able to provide the
>> buffer with same index always to the driver for which the workaround patch
>> 0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch was made to maintain 1-to-1
>> between v4l2 buffer indices and buffer.
>>
>> I assume the problem related to the workaround not able to handle 1-to-1 for
>> dynamically allocated buffers post streaming right(if required you can
>> probably check with Prasanth if it would be possible to support this), if
>> that's the case then I would suggest to update commit message likewise.
>>
>>> start. To avoid issues because of this set max_buffers same as min
>>> buffers, so that new buffers are not allocated post stream start
>>>
>>> Signed-off-by: Rahul T R <r-ravikumar@ti.com>
>> With the suggested changes in commit message,
>>
>> Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
> Agreed. This is not really a bug in driver. It is on the plugin side,
> where the mapping of buffers with v4l2 indices is not being maintained.
> Please modify the commit message.
>
> With this suggestion,
>
> Reviewed-by: Prasanth Babu Mantena <p-mantena@ti.com>

Hi Devarsh, Prasanth,

Thanks for the review
I have send a v2 addressing the comments

https://lists.yoctoproject.org/g/meta-arago/message/14948

Regards
Rahul T R

>> Regards
>> Devarsh
>>> ---
>>>   .../0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch      | 7 ++++---
>>>   1 file changed, 4 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
>>> index a1471661..bf73e257 100644
>>> --- a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
>>> +++ b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
>>> @@ -14,9 +14,9 @@ Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
>>>   ---
>>>    sys/v4l2/gstv4l2bufferpool.c | 17 ++++++++++++++---
>>>    sys/v4l2/gstv4l2bufferpool.h |  2 ++
>>> - sys/v4l2/gstv4l2object.c     | 15 ++++++++++++---
>>> + sys/v4l2/gstv4l2object.c     | 16 +++++++++++++---
>>>    sys/v4l2/gstv4l2videodec.c   | 20 ++++++++++++++------
>>> - 4 files changed, 42 insertions(+), 12 deletions(-)
>>> + 4 files changed, 43 insertions(+), 12 deletions(-)
>>>   
>>>   diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
>>>   index d85f036..e6a60dc 100644
>>> @@ -86,7 +86,7 @@ index ee60540..eff1cf2 100644
>>>        own_min = MAX (own_min, GST_V4L2_MIN_BUFFERS (obj));
>>>   
>>>        /* for the downstream pool, we keep what downstream wants, though ensure
>>> -@@ -5049,8 +5053,13 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
>>> +@@ -5049,8 +5053,14 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
>>>        min = MAX (min, GST_V4L2_MIN_BUFFERS (obj));
>>>   
>>>        /* To import we need the other pool to hold at least own_min */
>>> @@ -95,6 +95,7 @@ index ee60540..eff1cf2 100644
>>>   +    if (obj_pool == pool) {
>>>   +        if (0 == strcmp(obj->vcap.driver, "wave5-dec")) {
>>>   +            min = own_min;
>>> ++            max = min;
>>>   +        } else {
>>>   +            min += own_min;
>>>   +        }
diff mbox series

Patch

diff --git a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
index a1471661..bf73e257 100644
--- a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
+++ b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Changes-for-DMA-Buf-import-j721s2.patch
@@ -14,9 +14,9 @@  Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
 ---
  sys/v4l2/gstv4l2bufferpool.c | 17 ++++++++++++++---
  sys/v4l2/gstv4l2bufferpool.h |  2 ++
- sys/v4l2/gstv4l2object.c     | 15 ++++++++++++---
+ sys/v4l2/gstv4l2object.c     | 16 +++++++++++++---
  sys/v4l2/gstv4l2videodec.c   | 20 ++++++++++++++------
- 4 files changed, 42 insertions(+), 12 deletions(-)
+ 4 files changed, 43 insertions(+), 12 deletions(-)
 
 diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
 index d85f036..e6a60dc 100644
@@ -86,7 +86,7 @@  index ee60540..eff1cf2 100644
      own_min = MAX (own_min, GST_V4L2_MIN_BUFFERS (obj));
 
      /* for the downstream pool, we keep what downstream wants, though ensure
-@@ -5049,8 +5053,13 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
+@@ -5049,8 +5053,14 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
      min = MAX (min, GST_V4L2_MIN_BUFFERS (obj));
 
      /* To import we need the other pool to hold at least own_min */
@@ -95,6 +95,7 @@  index ee60540..eff1cf2 100644
 +    if (obj_pool == pool) {
 +        if (0 == strcmp(obj->vcap.driver, "wave5-dec")) {
 +            min = own_min;
++            max = min;
 +        } else {
 +            min += own_min;
 +        }