Thread (21 messages) 21 messages, 3 authors, 2024-08-27

Re: [PATCH v4 0/7] media: mediatek: vcodec: fix v4l2_ctrl_request_complete fail

flat view

From: Yunfei Dong (董云飞) <Yunfei.Dong@mediatek.com>
Date: 2024-08-27 02:59:05
Also in: linux-arm-kernel, linux-media, linux-mediatek, lkml

Hi Sebastian,

Thanks for your suggestion.
On Fri, 2024-08-23 at 17:45 +0200, Sebastian Fricke wrote:
Hey Yunfei,

given this new series by Hans:
https://urldefense.com/v3/__https://patchwork.linuxtv.org/project/linux-media/list/?series=13427__;!!CTRNKA9wMg0ARbw!h4__bSC_RX1erZCq5wvZbjRQrmS9ecXytwjcdLc9sgjBgj3buUC8JrUG78rhtEsXAN6vmZEhM3tWumFQ50R5NcR_1hbqLyYlSg$
 

we might actually be able to find a more performant solution of the
problem, I'll work on that a bit and give you feedback.
I already do so many test for different project with these patches,
whether it's possible to merge these patch firstly, then to call hans's
changes to do stress test.

Best Regards,
Yunfei Dong
Regards,
Sebastian

On 07.08.2024 16:24, Yunfei Dong wrote:
quoted
v4l2_m2m_buf_done is called in lat work queue,
v4l2_ctrl_request_complete
is called in core queue. The request status of output queue will be
set to
MEDIA_REQUEST_STATE_COMPLETE when v4l2_m2m_buf_done is called,
leading to
output queue request complete fail. Must move
v4l2_ctrl_request_complete
in front of v4l2_m2m_buf_done.

Patch 1 setting request complete before buffer done
Patch 2 change flush decode order when stream off
Patch 3 flush decoder before stream off
Patch 4 using input information to get vb2 buffer
Patch 5 store source vb2 buffer
Patch 6 replace v4l2_m2m_next_src_buf with v4l2_m2m_src_buf_remove
Patch 7 remove media request checking

---
compared with v3:
- fix flush decoder issue when userspace stream off capture queue
firstly
- fluster test result same with v3

compared with v2:
- add patch 5/6/7 to fix decode again issue
- add fluster test result with mt8195 platform(same with no
changed):
 1> ./fluster.py run -d GStreamer-VP8-V4L2SL-Gst1.0 -j1 -t 90
    VP8-TEST-VECTORS 59/61
 2> ./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0 -j1 -t 90
    VP9-TEST-VECTORS 276/305
 3> ./fluster.py run -d GStreamer-AV1-V4L2SL-Gst1.0 -j1 -t 90
    AV1-TEST-VECTORS 237/239
 4> ./fluster.py run -d GStreamer-H.264-V4L2SL-Gst1.0 -j1 -t 90
    JVT-AVC_V1       95/135
 5> ./fluster.py run -d GStreamer-H.265-V4L2SL-Gst1.0 -j1 -t 90
    JCT-VC-HEVC_V1   142/147

compared with v1:
- add patch 2/3/4 to fix timing issue.
---
Yunfei Dong (7):
 media: mediatek: vcodec: setting request complete before buffer
done
 media: mediatek: vcodec: change flush decode order when stream off
 media: mediatek: vcodec: flush decoder before stream off
 media: mediatek: vcodec: using input information to get vb2 buffer
 media: mediatek: vcodec: store source vb2 buffer
 media: mediatek: vcodec: replace v4l2_m2m_next_src_buf with
   v4l2_m2m_src_buf_remove
 media: mediatek: vcodec: remove media request checking

.../mediatek/vcodec/decoder/mtk_vcodec_dec.c  | 44 ++++++++------
---
.../vcodec/decoder/mtk_vcodec_dec_drv.h       |  4 +-
.../vcodec/decoder/mtk_vcodec_dec_stateless.c | 48 ++++++++++++++
-----
.../vcodec/decoder/vdec/vdec_av1_req_lat_if.c | 18 +++----
.../decoder/vdec/vdec_h264_req_multi_if.c     |  4 +-
.../decoder/vdec/vdec_hevc_req_multi_if.c     |  4 +-
.../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 19 ++++----
.../mediatek/vcodec/decoder/vdec_msg_queue.h  |  4 +-
8 files changed, 85 insertions(+), 60 deletions(-)

-- 
2.46.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help