CHROMIUM: [media] rk3288-vpu: Workaround for encode after decode
authorTomasz Figa <tfiga@chromium.org>
Fri, 17 Jul 2015 10:31:54 +0000 (19:31 +0900)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 30 Jun 2016 11:57:30 +0000 (19:57 +0800)
commit60a3c09c3eef10c99b7bb4a916bc2cfa2ae78fff
tree3fc2db4710aae2a388694627bb02226a57218a5f
parentc097c475f4f216ebf6468c3d46972ec1a5ad5c0d
CHROMIUM: [media] rk3288-vpu: Workaround for encode after decode

On RK3288 there is an issue with certain hardware state being corrupted
while decoding certain streams, which affects encoding task run directly
after that decoding task. To reinitialize the state properly, a dummy
encoding of a single 64x64 pixels keyframe must be performed before the
real encoding is run.

This patch adds necessary workaround code to the driver, which makes it
execute an encoding task using dummy buffers with static parameters
manually selected for lowest performance overhead and to assure that
aforementioned hardware state is reinitialized.

BUG=chrome-os-partner:41585
TEST=AppRTC loopback

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/286284
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Change-Id: I019d1983633ec2cf2818956a7bf988314d853cdf
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
drivers/media/platform/rk3288-vpu/rk3288_vpu.c
drivers/media/platform/rk3288-vpu/rk3288_vpu_common.h
drivers/media/platform/rk3288-vpu/rk3288_vpu_enc.c
drivers/media/platform/rk3288-vpu/rk3288_vpu_enc.h
drivers/media/platform/rk3288-vpu/rk3288_vpu_hw.h
drivers/media/platform/rk3288-vpu/rk3288_vpu_hw_vp8e.c