[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211224084248.3070568-1-wenst@chromium.org>
Date: Fri, 24 Dec 2021 16:42:41 +0800
From: Chen-Yu Tsai <wenst@...omium.org>
To: Ezequiel Garcia <ezequiel@...guardiasur.com.ar>,
Philipp Zabel <p.zabel@...gutronix.de>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Hans Verkuil <hverkuil-cisco@...all.nl>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Tomasz Figa <tfiga@...omium.org>,
Chen-Yu Tsai <wenst@...omium.org>, linux-media@...r.kernel.org,
linux-rockchip@...ts.infradead.org, linux-staging@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: [PATCH RFT 0/7] media: hantro: jpeg: Various improvements
Hi everyone,
Here are some improvements to the Hantro JPEG encoder driver. This
finishes two of the TODO items.
Patch 1 cleans up the final register write sequence in the JPEG encoder
driver. This particular bit was a bit confusing and hard to understand
given the lack of context around the original wmb(). Was it used to
force all the register writes to finish or to make sure memory writes
were completed? In the end I stuck with what the other hantro decoders
were doing.
Patch 2 fixes a misleading register name.
Patch 3 implements cropping on the output queue with the selection API
for the JPEG encoder. This allows specifying the visible area slightly
smaller than the macroblock-aligned coded size. This bit can be reused
by other stateless encoders once they are implemented.
Patch 4 adds a JFIF APP0 segment to the JPEG encoder output.
Patch 5 adds a COM segment to the JPEG encoder output. This is used to
align the SOS segment payload area.
Patch 6 implements the V4L2_CID_JPEG_ACTIVE_MARKER control. This is only
used to signal the segments added to userspace. The driver ignores any
changes requested.
Patch 7 lets the encoder output directly into the capture buffer,
getting rid of the DMA bounce buffer.
Please have a look and test. I only tested this on the RK3399 with
gstreamer. The H1 variant is untested by me.
To test the selection API bits with gstreamer, the v4l2videoenc plugin
needs to be patched. A gst_v4l2_object_set_crop() call should be
inserted after gst_v4l2_object_set_format() in
gst_v4l2_video_enc_set_format().
Regards
ChenYu
Chen-Yu Tsai (7):
media: hantro: jpeg: Relax register writes before write starting
hardware
media: hantro: Fix overfill bottom register field name
media: hantro: Support cropping visible area for encoders
media: hantro: jpeg: Add JFIF APP0 segment to JPEG encoder output
media: hantro: jpeg: Add COM segment to JPEG header to align image
scan
media: hantro: Implement V4L2_CID_JPEG_ACTIVE_MARKER control
media: hantro: output encoded JPEG content directly to capture buffers
drivers/staging/media/hantro/TODO | 7 --
drivers/staging/media/hantro/hantro.h | 1 -
drivers/staging/media/hantro/hantro_drv.c | 51 ++++++++----
.../staging/media/hantro/hantro_h1_jpeg_enc.c | 44 ++++++-----
drivers/staging/media/hantro/hantro_h1_regs.h | 2 +-
drivers/staging/media/hantro/hantro_hw.h | 11 ---
drivers/staging/media/hantro/hantro_jpeg.c | 51 ++++--------
drivers/staging/media/hantro/hantro_jpeg.h | 2 +-
drivers/staging/media/hantro/hantro_v4l2.c | 77 +++++++++++++++++++
.../media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 47 ++++++-----
.../staging/media/hantro/rockchip_vpu_hw.c | 6 --
11 files changed, 186 insertions(+), 113 deletions(-)
--
2.34.1.448.ga2b2bfdf31-goog
Powered by blists - more mailing lists