* [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M
2024-10-12 6:43 [PATCH v5 0/5] media: mediatek: vcodec: fix v4l2_ctrl_request_complete fail Yunfei Dong
@ 2024-10-12 6:43 ` Yunfei Dong
2024-11-07 9:51 ` Chen-Yu Tsai
0 siblings, 1 reply; 4+ messages in thread
From: Yunfei Dong @ 2024-10-12 6:43 UTC (permalink / raw)
To: Nícolas F . R . A . Prado, Sebastian Fricke,
Nicolas Dufresne, Hans Verkuil, AngeloGioacchino Del Regno,
Benjamin Gaignard, Nathan Hebert, Daniel Almeida
Cc: Hsin-Yi Wang, Fritz Koenig, Daniel Vetter, Steve Cho, Yunfei Dong,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Project_Global_Chrome_Upstream_Group
Getting the SRC buffer from M2M will pick a different than the one
used for current decode operation when the SRC buffer is removed
from ready list.
Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
---
.../vcodec/decoder/vdec/vdec_av1_req_lat_if.c | 13 +++++++------
.../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 15 +++++++--------
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
index 90217cc8e242..a744740ba5f1 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
@@ -1062,19 +1062,20 @@ static inline void vdec_av1_slice_vsi_to_remote(struct vdec_av1_slice_vsi *vsi,
static int vdec_av1_slice_setup_lat_from_src_buf(struct vdec_av1_slice_instance *instance,
struct vdec_av1_slice_vsi *vsi,
+ struct mtk_vcodec_mem *bs,
struct vdec_lat_buf *lat_buf)
{
- struct vb2_v4l2_buffer *src;
+ struct mtk_video_dec_buf *src_buf_info;
struct vb2_v4l2_buffer *dst;
- src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx);
- if (!src)
+ src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
+ if (!src_buf_info)
return -EINVAL;
- lat_buf->vb2_v4l2_src = src;
+ lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb;
dst = &lat_buf->ts_info;
- v4l2_m2m_buf_copy_metadata(src, dst, true);
+ v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, dst, true);
vsi->frame.cur_ts = dst->vb2_buf.timestamp;
return 0;
@@ -1724,7 +1725,7 @@ static int vdec_av1_slice_setup_lat(struct vdec_av1_slice_instance *instance,
struct vdec_av1_slice_vsi *vsi = &pfc->vsi;
int ret;
- ret = vdec_av1_slice_setup_lat_from_src_buf(instance, vsi, lat_buf);
+ ret = vdec_av1_slice_setup_lat_from_src_buf(instance, vsi, bs, lat_buf);
if (ret)
return ret;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
index 3dceb668ba1c..c50a454ab4f7 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
@@ -712,19 +712,18 @@ int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *
}
static int vdec_vp9_slice_setup_lat_from_src_buf(struct vdec_vp9_slice_instance *instance,
+ struct mtk_vcodec_mem *bs,
struct vdec_lat_buf *lat_buf)
{
- struct vb2_v4l2_buffer *src;
- struct vb2_v4l2_buffer *dst;
+ struct mtk_video_dec_buf *src_buf_info;
- src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx);
- if (!src)
+ src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
+ if (!src_buf_info)
return -EINVAL;
- lat_buf->vb2_v4l2_src = src;
+ lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb;
- dst = &lat_buf->ts_info;
- v4l2_m2m_buf_copy_metadata(src, dst, true);
+ v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, &lat_buf->ts_info, true);
return 0;
}
@@ -1154,7 +1153,7 @@ static int vdec_vp9_slice_setup_lat(struct vdec_vp9_slice_instance *instance,
struct vdec_vp9_slice_vsi *vsi = &pfc->vsi;
int ret;
- ret = vdec_vp9_slice_setup_lat_from_src_buf(instance, lat_buf);
+ ret = vdec_vp9_slice_setup_lat_from_src_buf(instance, bs, lat_buf);
if (ret)
goto err;
--
2.46.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M
@ 2024-10-19 16:17 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2024-10-19 16:17 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20241012064333.27269-4-yunfei.dong@mediatek.com>
References: <20241012064333.27269-4-yunfei.dong@mediatek.com>
TO: Yunfei Dong <yunfei.dong@mediatek.com>
TO: "Nícolas F . R . A . Prado" <nfraprado@collabora.com>
TO: Sebastian Fricke <sebastian.fricke@collabora.com>
TO: Nicolas Dufresne <nicolas.dufresne@collabora.com>
TO: Hans Verkuil <hverkuil@xs4all.nl>
TO: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
TO: Benjamin Gaignard <benjamin.gaignard@collabora.com>
TO: Nathan Hebert <nhebert@chromium.org>
TO: Daniel Almeida <daniel.almeida@collabora.com>
CC: "Hsin-Yi Wang" <hsinyi@chromium.org>
CC: Fritz Koenig <frkoenig@chromium.org>
CC: Daniel Vetter <daniel@ffwll.ch>
CC: Steve Cho <stevecho@chromium.org>
CC: Yunfei Dong <yunfei.dong@mediatek.com>
CC: linux-media@vger.kernel.org
CC: devicetree@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-arm-kernel@lists.infradead.org
CC: linux-mediatek@lists.infradead.org
CC: Project_Global_Chrome_Upstream_Group@mediatek.com
Hi Yunfei,
kernel test robot noticed the following build warnings:
[auto build test WARNING on media-tree/master]
[also build test WARNING on linus/master v6.12-rc3 next-20241018]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Yunfei-Dong/media-mediatek-vcodec-setting-request-complete-before-buffer-done/20241012-144607
base: git://linuxtv.org/media_tree.git master
patch link: https://lore.kernel.org/r/20241012064333.27269-4-yunfei.dong%40mediatek.com
patch subject: [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M
:::::: branch date: 7 days ago
:::::: commit date: 7 days ago
config: arm-randconfig-r072-20241016 (https://download.01.org/0day-ci/archive/20241020/202410200022.8uNnjxzj-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 14.1.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410200022.8uNnjxzj-lkp@intel.com/
smatch warnings:
drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c:721 vdec_vp9_slice_setup_lat_from_src_buf() warn: can 'src_buf_info' even be NULL?
drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c:1072 vdec_av1_slice_setup_lat_from_src_buf() warn: can 'src_buf_info' even be NULL?
vim +/src_buf_info +721 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
b0f407c19648ae drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-13 713
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 714 static int vdec_vp9_slice_setup_lat_from_src_buf(struct vdec_vp9_slice_instance *instance,
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 715 struct mtk_vcodec_mem *bs,
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 716 struct vdec_lat_buf *lat_buf)
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 717 {
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 718 struct mtk_video_dec_buf *src_buf_info;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 719
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 720 src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 @721 if (!src_buf_info)
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 722 return -EINVAL;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 723
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 724 lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 725
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 726 v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, &lat_buf->ts_info, true);
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 727 return 0;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 728 }
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 729
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M
@ 2024-10-20 21:37 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2024-10-20 21:37 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20241012064333.27269-4-yunfei.dong@mediatek.com>
References: <20241012064333.27269-4-yunfei.dong@mediatek.com>
TO: Yunfei Dong <yunfei.dong@mediatek.com>
TO: "Nícolas F . R . A . Prado" <nfraprado@collabora.com>
TO: Sebastian Fricke <sebastian.fricke@collabora.com>
TO: Nicolas Dufresne <nicolas.dufresne@collabora.com>
TO: Hans Verkuil <hverkuil@xs4all.nl>
TO: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
TO: Benjamin Gaignard <benjamin.gaignard@collabora.com>
TO: Nathan Hebert <nhebert@chromium.org>
TO: Daniel Almeida <daniel.almeida@collabora.com>
CC: "Hsin-Yi Wang" <hsinyi@chromium.org>
CC: Fritz Koenig <frkoenig@chromium.org>
CC: Daniel Vetter <daniel@ffwll.ch>
CC: Steve Cho <stevecho@chromium.org>
CC: Yunfei Dong <yunfei.dong@mediatek.com>
CC: linux-media@vger.kernel.org
CC: devicetree@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-arm-kernel@lists.infradead.org
CC: linux-mediatek@lists.infradead.org
CC: Project_Global_Chrome_Upstream_Group@mediatek.com
Hi Yunfei,
kernel test robot noticed the following build warnings:
[auto build test WARNING on media-tree/master]
[also build test WARNING on linus/master v6.12-rc3 next-20241018]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Yunfei-Dong/media-mediatek-vcodec-setting-request-complete-before-buffer-done/20241012-144607
base: git://linuxtv.org/media_tree.git master
patch link: https://lore.kernel.org/r/20241012064333.27269-4-yunfei.dong%40mediatek.com
patch subject: [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M
:::::: branch date: 9 days ago
:::::: commit date: 9 days ago
config: arm-randconfig-r072-20241016 (https://download.01.org/0day-ci/archive/20241021/202410210753.AzGgWmKA-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 14.1.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410210753.AzGgWmKA-lkp@intel.com/
smatch warnings:
drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c:721 vdec_vp9_slice_setup_lat_from_src_buf() warn: can 'src_buf_info' even be NULL?
drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c:1072 vdec_av1_slice_setup_lat_from_src_buf() warn: can 'src_buf_info' even be NULL?
vim +/src_buf_info +721 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
b0f407c19648ae drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-13 713
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 714 static int vdec_vp9_slice_setup_lat_from_src_buf(struct vdec_vp9_slice_instance *instance,
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 715 struct mtk_vcodec_mem *bs,
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 716 struct vdec_lat_buf *lat_buf)
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 717 {
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 718 struct mtk_video_dec_buf *src_buf_info;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 719
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 720 src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 @721 if (!src_buf_info)
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 722 return -EINVAL;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 723
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 724 lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 725
af58c67202dda7 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2024-10-12 726 v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, &lat_buf->ts_info, true);
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 727 return 0;
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 728 }
5d418351ca8f17 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c Yunfei Dong 2022-05-12 729
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M
2024-10-12 6:43 ` [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M Yunfei Dong
@ 2024-11-07 9:51 ` Chen-Yu Tsai
0 siblings, 0 replies; 4+ messages in thread
From: Chen-Yu Tsai @ 2024-11-07 9:51 UTC (permalink / raw)
To: Yunfei Dong
Cc: Nícolas F . R . A . Prado, Sebastian Fricke,
Nicolas Dufresne, Hans Verkuil, AngeloGioacchino Del Regno,
Benjamin Gaignard, Nathan Hebert, Daniel Almeida, Hsin-Yi Wang,
Fritz Koenig, Daniel Vetter, Steve Cho, linux-media, devicetree,
linux-kernel, linux-arm-kernel, linux-mediatek,
Project_Global_Chrome_Upstream_Group
On Sat, Oct 12, 2024 at 2:44 PM Yunfei Dong <yunfei.dong@mediatek.com> wrote:
>
> Getting the SRC buffer from M2M will pick a different than the one
> used for current decode operation when the SRC buffer is removed
> from ready list.
>
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> ---
> .../vcodec/decoder/vdec/vdec_av1_req_lat_if.c | 13 +++++++------
> .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 15 +++++++--------
> 2 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
> index 90217cc8e242..a744740ba5f1 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
> @@ -1062,19 +1062,20 @@ static inline void vdec_av1_slice_vsi_to_remote(struct vdec_av1_slice_vsi *vsi,
>
> static int vdec_av1_slice_setup_lat_from_src_buf(struct vdec_av1_slice_instance *instance,
> struct vdec_av1_slice_vsi *vsi,
> + struct mtk_vcodec_mem *bs,
> struct vdec_lat_buf *lat_buf)
> {
> - struct vb2_v4l2_buffer *src;
> + struct mtk_video_dec_buf *src_buf_info;
> struct vb2_v4l2_buffer *dst;
>
> - src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx);
> - if (!src)
> + src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
> + if (!src_buf_info)
> return -EINVAL;
This doesn't make sense.
First of all, you are getting the container of bs, and
mtk_video_dec_buf.bs_buffer is at a non-zero offset, so even if bs is NULL,
container_of(bs, struct mtk_video_dec_buf, bs_buffer) is not going to be
NULL.
Second, vdec_av1_slice_setup_lat_from_src_buf() is called from
vdec_av1_slice_setup_lat(), which itself is called from
vdec_av1_slice_lat_decode(). Earlier in that function, bs is already
checked. If bs is NULL, it's considered a request to flush the decoder.
The other changes look OK. It's just the check that seems meaningless.
>
> - lat_buf->vb2_v4l2_src = src;
> + lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb;
>
> dst = &lat_buf->ts_info;
> - v4l2_m2m_buf_copy_metadata(src, dst, true);
> + v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, dst, true);
> vsi->frame.cur_ts = dst->vb2_buf.timestamp;
>
> return 0;
> @@ -1724,7 +1725,7 @@ static int vdec_av1_slice_setup_lat(struct vdec_av1_slice_instance *instance,
> struct vdec_av1_slice_vsi *vsi = &pfc->vsi;
> int ret;
>
> - ret = vdec_av1_slice_setup_lat_from_src_buf(instance, vsi, lat_buf);
> + ret = vdec_av1_slice_setup_lat_from_src_buf(instance, vsi, bs, lat_buf);
> if (ret)
> return ret;
>
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> index 3dceb668ba1c..c50a454ab4f7 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> @@ -712,19 +712,18 @@ int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *
> }
>
> static int vdec_vp9_slice_setup_lat_from_src_buf(struct vdec_vp9_slice_instance *instance,
> + struct mtk_vcodec_mem *bs,
> struct vdec_lat_buf *lat_buf)
> {
> - struct vb2_v4l2_buffer *src;
> - struct vb2_v4l2_buffer *dst;
> + struct mtk_video_dec_buf *src_buf_info;
>
> - src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx);
> - if (!src)
> + src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
> + if (!src_buf_info)
> return -EINVAL;
Same thing here.
> - lat_buf->vb2_v4l2_src = src;
> + lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb;
>
> - dst = &lat_buf->ts_info;
> - v4l2_m2m_buf_copy_metadata(src, dst, true);
> + v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, &lat_buf->ts_info, true);
> return 0;
> }
>
> @@ -1154,7 +1153,7 @@ static int vdec_vp9_slice_setup_lat(struct vdec_vp9_slice_instance *instance,
> struct vdec_vp9_slice_vsi *vsi = &pfc->vsi;
> int ret;
>
> - ret = vdec_vp9_slice_setup_lat_from_src_buf(instance, lat_buf);
> + ret = vdec_vp9_slice_setup_lat_from_src_buf(instance, bs, lat_buf);
> if (ret)
> goto err;
>
> --
> 2.46.0
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-11-07 10:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-20 21:37 [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2024-10-19 16:17 kernel test robot
2024-10-12 6:43 [PATCH v5 0/5] media: mediatek: vcodec: fix v4l2_ctrl_request_complete fail Yunfei Dong
2024-10-12 6:43 ` [PATCH v5 3/5] media: mediatek: vcodec: Get SRC buffer from bitstream instead of M2M Yunfei Dong
2024-11-07 9:51 ` Chen-Yu Tsai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.