Skip to content

Commit 73bc0b0

Browse files
jernejskmchehab
authored andcommitted
media: cedrus: Fix H264 decoding
During H264 API overhaul subtle bug was introduced Cedrus driver. Progressive references have both, top and bottom reference flags set. Cedrus reference list expects only bottom reference flag and only when interlaced frames are decoded. However, due to a bug in Cedrus check, exclusivity is not tested and that flag is set also for progressive references. That causes "jumpy" background with many videos. Fix that by checking that only bottom reference flag is set in control and nothing else. Tested-by: Andre Heider <a.heider@gmail.com> Fixes: cfc8c3e ("media: cedrus: h264: Properly configure reference field") Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: <stable@vger.kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
1 parent a53e3c1 commit 73bc0b0

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/staging/media/sunxi/cedrus/cedrus_h264.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx,
203203
position = cedrus_buf->codec.h264.position;
204204

205205
sram_array[i] |= position << 1;
206-
if (ref_list[i].fields & V4L2_H264_BOTTOM_FIELD_REF)
206+
if (ref_list[i].fields == V4L2_H264_BOTTOM_FIELD_REF)
207207
sram_array[i] |= BIT(0);
208208
}
209209

0 commit comments

Comments
 (0)