From: "Ming Qian(OSS)" <ming.qian@oss.nxp.com>
To: Sebastian Fricke <sebastian.fricke@collabora.com>
Cc: mchehab@kernel.org, hverkuil-cisco@xs4all.nl,
nicolas@ndufresne.ca, shawnguo@kernel.org, robh+dt@kernel.org,
s.hauer@pengutronix.de, kernel@pengutronix.de,
festevam@gmail.com, linux-imx@nxp.com, xiahong.bao@nxp.com,
eagle.zhou@nxp.com, tao.jiang_2@nxp.com, imx@lists.linux.dev,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 2/2] media: amphion: Add a frame flush mode for decoder
Date: Tue, 25 Feb 2025 09:43:27 +0800 [thread overview]
Message-ID: <93c5d8b2-2eaa-4f5b-9326-93657cb063da@oss.nxp.com> (raw)
In-Reply-To: <20250224141712.soexl43hrimwf236@basti-XPS-13-9310>
Hi sebastian,
On 2025/2/24 22:17, Sebastian Fricke wrote:
> [You don't often get email from sebastian.fricke@collabora.com. Learn
> why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Hey Ming,
>
> On 17.01.2025 16:57, Ming Qian wrote:
>> The amphion decoder will pre-parse 3 frames before decoding the first
>> frame. If we append a flush padding data after frame, the decoder
>> will finish parsing and start to decode when the flush data is parsed.
>> It can reduce the decoding latency.
>> In the past, we only enable this mode when the display delay is set to
>> 0. But we still can enable this mode without changing the display order,
>> so we add a frame_flush_mode parameter to enable it.
>
> My recommendation:
>
> 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 frame_flush_mode, which enables the mode without
> changing the display order.
>
>
> Which fixes a few grammatical issues and tries to be a bit more clear.
> But please confirm to me that I hit your intended meaning.
>
> More comments below ...
>
Yes, you're right, and your description looks better, I will follow it.
>>
>> Signed-off-by: Ming Qian <ming.qian@oss.nxp.com>
>> ---
>> drivers/media/platform/amphion/vpu_malone.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/platform/amphion/vpu_malone.c
>> b/drivers/media/platform/amphion/vpu_malone.c
>> index 1d9e10d9bec1..f07660dc3b07 100644
>> --- a/drivers/media/platform/amphion/vpu_malone.c
>> +++ b/drivers/media/platform/amphion/vpu_malone.c
>> @@ -25,6 +25,9 @@
>> #include "vpu_imx8q.h"
>> #include "vpu_malone.h"
>>
>> +static bool frame_flush_mode;
>> +module_param(frame_flush_mode, bool, 0644);
>
> Could you add a comment here that makes clear to the reader briefly what
> the expected behavior of frame_flush_mode = 0 and frame_flush_mode = 1
> is?
>
OK, I'll add a comment to describe this mode.
>> +
>> #define CMD_SIZE 25600
>> #define MSG_SIZE 25600
>> #define CODEC_SIZE 0x1000
>> @@ -1579,7 +1582,7 @@ 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)) {
>> + if ((disp_imm || frame_flush_mode) &&
>> !vpu_vb_is_codecconfig(vbuf)) {
>
> So you say that the mode was enabled with display delay set to 0,
> meaning (disp_imm = 1) == (display delay = 0), right? E.g. disp_imm
> means display_immediately I guess.
>
> I think this all deserves a lot better documentation, otherwise the code
> becomes quite cryptic. Could you add a comment before this line, which
> explains the entry conditions disp_imm & frame_flush_mode and the
> codeconfig thing and that explains briefly what kind of mode we are
> entering here?
>
Sure,I'll add comments to explain the code. I'm sorry fot the confusion.
Thank you very much for your feedback, I will try to fix them in v3 patch.
Thanks,
Ming
>> ret = vpu_malone_add_scode(inst->core->iface,
>> inst->id,
>> &inst->stream_buffer,
>> --
>> 2.43.0-rc1
>>
>>
>
> Regards,
> Sebastian Fricke
next prev parent reply other threads:[~2025-02-25 1:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-17 7:57 [PATCH v2 1/2] media: amphion: Reduce decoding latency for HEVC decoder Ming Qian
2025-01-17 7:57 ` [PATCH v2 2/2] media: amphion: Add a frame flush mode for decoder Ming Qian
2025-02-24 14:17 ` Sebastian Fricke
2025-02-25 1:43 ` Ming Qian(OSS) [this message]
2025-02-26 9:45 ` [PATCH v2 1/2] media: amphion: Reduce decoding latency for HEVC decoder Sebastian Fricke
2025-02-26 10:01 ` Ming Qian(OSS)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=93c5d8b2-2eaa-4f5b-9326-93657cb063da@oss.nxp.com \
--to=ming.qian@oss.nxp.com \
--cc=eagle.zhou@nxp.com \
--cc=festevam@gmail.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=nicolas@ndufresne.ca \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=sebastian.fricke@collabora.com \
--cc=shawnguo@kernel.org \
--cc=tao.jiang_2@nxp.com \
--cc=xiahong.bao@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox