lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 25 Aug 2020 00:52:40 -0300 From: Ezequiel Garcia <ezequiel@...labora.com> To: linux-media@...r.kernel.org, linux-kernel@...r.kernel.org Cc: Tomasz Figa <tfiga@...omium.org>, kernel@...labora.com, Jonas Karlman <jonas@...boo.se>, Hans Verkuil <hverkuil@...all.nl>, Alexandre Courbot <acourbot@...omium.org>, Jeffrey Kardatzke <jkardatzke@...omium.org>, Nicolas Dufresne <nicolas.dufresne@...labora.com>, Philipp Zabel <p.zabel@...gutronix.de>, Maxime Ripard <mripard@...nel.org>, Paul Kocialkowski <paul.kocialkowski@...tlin.com>, Jernej Skrabec <jernej.skrabec@...l.net> Subject: [PATCH v4 14/19] media: cedrus: h264: Properly configure reference field From: Jernej Skrabec <jernej.skrabec@...l.net> When interlaced H264 content is being decoded, references must indicate which field is being referenced. Currently this was done by checking capture buffer flags. However, that is not correct because capture buffer may hold both fields. Fix this by checking newly introduced flags in reference lists. Signed-off-by: Jernej Skrabec <jernej.skrabec@...l.net> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@...labora.com> --- drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c index c8f626fdd3dd..1e89a8438f36 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c @@ -182,7 +182,6 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx, for (i = 0; i < num_ref; i++) { const struct v4l2_h264_dpb_entry *dpb; const struct cedrus_buffer *cedrus_buf; - const struct vb2_v4l2_buffer *ref_buf; unsigned int position; int buf_idx; u8 dpb_idx; @@ -197,12 +196,11 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx, if (buf_idx < 0) continue; - ref_buf = to_vb2_v4l2_buffer(cap_q->bufs[buf_idx]); - cedrus_buf = vb2_v4l2_to_cedrus_buffer(ref_buf); + cedrus_buf = vb2_to_cedrus_buffer(cap_q->bufs[buf_idx]); position = cedrus_buf->codec.h264.position; sram_array[i] |= position << 1; - if (ref_buf->field == V4L2_FIELD_BOTTOM) + if (ref_list[i].fields & V4L2_H264_BOTTOM_FIELD_REF) sram_array[i] |= BIT(0); } -- 2.27.0
Powered by blists - more mailing lists