V4L2DecodeComponent: Support protected playback.

In this CL, V4L2DecodeComponent supports the protected playback by
using C2VdaBqBlockPool. To use C2VdaBqBlockPool, there are 2 specific
requirements compared to a normal C2BlockPool:
1. Call C2VdaBqBlockPool::requestNewBufferSet() before fetching blocks
2. Call MarkBlockPoolDataAsShared() after creating C2ConstGraphicBlock

Bug: 153608694
Test: Run ExoPlayer Demo apk: Widevine dash policy tests

Change-Id: Idce298d13cb2fb7f9dd88ae43cd4c8f0cb18dffb
6 files changed
tree: 192ca6d9acfe6db72320776d629afd910167b4fb
  1. accel/
  2. common/
  3. components/
  4. include/
  5. plugin_store/
  6. service/
  7. store/
  8. tests/
  9. .clang-format
  10. Android.mk
  11. C2EncoderInterface.cpp
  12. C2VDAAdaptor.cpp
  13. C2VDAAdaptorProxy.cpp
  14. C2VDAComponent.cpp
  15. MODULE_LICENSE_BSD
  16. NOTICE
  17. OWNERS
  18. PREUPLOAD.cfg
  19. 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.