mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-22 17:21:55 +07:00
media: coda: jpeg: only queue two buffers into the bitstream for JPEG on CODA7541
Padding the bitstream buffer is not enough to reliably avoid prefetch failures. Picture runs with the next buffer's header already visible to the CODA7541 succeed much more reliably, so always queue two JPEG frames into the bitstream buffer. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
1e3e2a9ac4
commit
86b30a671b
@ -261,11 +261,12 @@ void coda_fill_bitstream(struct coda_ctx *ctx, struct list_head *buffer_list)
|
|||||||
|
|
||||||
while (v4l2_m2m_num_src_bufs_ready(ctx->fh.m2m_ctx) > 0) {
|
while (v4l2_m2m_num_src_bufs_ready(ctx->fh.m2m_ctx) > 0) {
|
||||||
/*
|
/*
|
||||||
* Only queue a single JPEG into the bitstream buffer, except
|
* Only queue two JPEGs into the bitstream buffer to keep
|
||||||
* to increase payload over 512 bytes or if in hold state.
|
* latency low. We need at least one complete buffer and the
|
||||||
|
* header of another buffer (for prescan) in the bitstream.
|
||||||
*/
|
*/
|
||||||
if (ctx->codec->src_fourcc == V4L2_PIX_FMT_JPEG &&
|
if (ctx->codec->src_fourcc == V4L2_PIX_FMT_JPEG &&
|
||||||
(coda_get_bitstream_payload(ctx) >= 512) && !ctx->hold)
|
ctx->num_metas > 1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
src_buf = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx);
|
src_buf = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx);
|
||||||
|
Loading…
Reference in New Issue
Block a user