Rockchip: Force first 3x3 array of macroblocks of frame to be intra blocks

When running decoding in parallel with encoding (i.e. one frame of decoding,
one frame of encoding, etc.), due to hardware issue, encoder block does not
properly reinitialize some internal SRAM, which is shared with decoder block
and resulting encoded frame might be corrupted.

According to Rockchip engineers, to work around the issue, a large enough
block of macroblocks need to be encoded as intra block in every frame to
make that area of SRAM be reinitialized by other part of encoder block.

This patch makes the plugin always force first 3x3 block of macroblocks to
be encoded as intra blocks to prevent encoding corruption.

BUG=chrome-os-partner:36844
TEST=AppRTC loopback in current tab with Lorax trailer playing in another

Change-Id: I43b7c7d3ec037842ba8dd8e57c9e76b43e46926a
Reviewed-on: https://chromium-review.googlesource.com/270301
Tested-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>
1 file changed
tree: 5cc0ca0500e0fb64f0440bcdbd66c1e0ffa9f2ae
  1. libv4l-rockchip/
  2. OWNERS