[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8026c9c0-1345-488f-95db-15797833185c@oss.nxp.com>
Date: Mon, 31 Mar 2025 10:37:02 +0800
From: "Ming Qian(OSS)" <ming.qian@....nxp.com>
To: Frank Li <Frank.li@....com>
Cc: mchehab@...nel.org, hverkuil-cisco@...all.nl, nicolas@...fresne.ca,
sebastian.fricke@...labora.com, shawnguo@...nel.org, s.hauer@...gutronix.de,
kernel@...gutronix.de, festevam@...il.com, linux-imx@....com,
xiahong.bao@....com, eagle.zhou@....com, imx@...ts.linux.dev,
linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v4 2/2] media: amphion: Add a frame flush mode for decoder
Hi Frank,
On 2025/3/28 22:26, Frank Li wrote:
> On Fri, Mar 28, 2025 at 02:48:17PM +0800, ming.qian@....nxp.com wrote:
>> From: Ming Qian <ming.qian@....nxp.com>
>>
>> By default the amphion decoder will pre-parse 3 frames before starting
>> to decode the first frame. Alternatively, a block of flush padding data
>> can be appended to the frame, which will ensure that the decoder can
>> start decoding immediately after parsing the flush padding data, thus
>> potentially reducing decoding latency.
>>
>> This mode was previously only enabled, when the display delay was set to
>> 0. Allow the user to manually toggle the use of that mode via a module
>> parameter called low_latency, which enables the mode without
>> changing the display order.
>>
>> Signed-off-by: Ming Qian <ming.qian@....nxp.com>
>> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@...labora.com>
>> ---
>> v4
>> - Improve the comment expressing
>> v3
>> - Improve commit message as recommended
>> - Add some comments to avoid code looks cryptic
>>
>> drivers/media/platform/amphion/vpu_malone.c | 14 +++++++++++++-
>> 1 file changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/platform/amphion/vpu_malone.c b/drivers/media/platform/amphion/vpu_malone.c
>> index 88f8c16a451e..7f6251f7becb 100644
>> --- a/drivers/media/platform/amphion/vpu_malone.c
>> +++ b/drivers/media/platform/amphion/vpu_malone.c
>> @@ -25,6 +25,10 @@
>> #include "vpu_imx8q.h"
>> #include "vpu_malone.h"
>>
>> +static bool low_latency;
>> +module_param(low_latency, bool, 0644);
>> +MODULE_PARM_DESC(low_latency, "Set low latency frame flush mode: 0 (disable) or 1 (enable)");
>> +
>
> If there are two malone instances, it will impact both instances, is it what
> your expected? Prefer use sys interface to controller it.
>
> Frank
Yes, that's we expected.
I prefer to say that we use this parameter to adjust the behavior of the
firmware. I thought about enabling this mode by default, but our team
prefers to add a parameter mode, but keep the previous behavior.and then
enable it as needed.
Thanks,
Ming
>
>> #define CMD_SIZE 25600
>> #define MSG_SIZE 25600
>> #define CODEC_SIZE 0x1000
>> @@ -1581,7 +1585,15 @@ static int vpu_malone_input_frame_data(struct vpu_malone_str_buffer __iomem *str
>>
>> vpu_malone_update_wptr(str_buf, wptr);
>>
>> - if (disp_imm && !vpu_vb_is_codecconfig(vbuf)) {
>> + /*
>> + * Enable the low latency flush mode if display delay is set to 0
>> + * or the low latency frame flush mode if it is set to 1.
>> + * The low latency flush mode requires some padding data to be appended to each frame,
>> + * but there must not be any padding data between the sequence header and the frame.
>> + * This module is currently only supported for the H264 and HEVC formats,
>> + * for other formats, vpu_malone_add_scode() will return 0.
>> + */
>> + if ((disp_imm || low_latency) && !vpu_vb_is_codecconfig(vbuf)) {
>> ret = vpu_malone_add_scode(inst->core->iface,
>> inst->id,
>> &inst->stream_buffer,
>> --
>> 2.43.0-rc1
>>
Powered by blists - more mailing lists