V4L2Decoder: use map to associate block IDs to V4L2 buffers

Block IDs can be arbitrarily large, but we only have a limited number of
V4L2 buffers. Keep an association between the block IDs received from
VideoFramePool and a V4L2 buffer slot to use with them instead of
assuming that block IDs can be used as valid V4L2 buffer indices.

Bug: 161323057
Test: arc.VideoDecodeAccel.h264_vm fully passes on Kukui.
Change-Id: Id6a1013795d85cc08e3dca9308442db4921ddae0
2 files changed
tree: 5f0cecadf87f3ddbbc7a6a11e6a909cbb7993e2f
  1. accel/
  2. common/
  3. components/
  4. include/
  5. plugin_store/
  6. service/
  7. store/
  8. tests/
  9. .clang-format
  10. Android.mk
  11. C2VDAAdaptor.cpp
  12. C2VDAAdaptorProxy.cpp
  13. C2VDAComponent.cpp
  14. MODULE_LICENSE_BSD
  15. NOTICE
  16. OWNERS
  17. PREUPLOAD.cfg
  18. README.md
README.md

V4L2-based Codec2 Component Implementation

Description of Sub-folders

  • accel/ Core V4L2 API and codec utilities, ported from Chromium project.

  • common/ Common helper classes for both components/ and store/.

  • components/ The C2Component implementations based on V4L2 API.

  • store/ The implementation of C2ComponentStore. It is used for creating all the C2Components implemented at components/ folder.

  • service/ The Codec2's V4L2 IComponentStore service. The service initiates the component store implemented at store/ folder, and registers it as the default service.