V4L2DecodeComponent: fix element not found at mWorksAtDecoder

|mWorksAtDecoder| is for storing the C2Works that pass to
V4L2Decoder::Decode(). After a work is finished decoding, the
callback will be called, and V4L2DecodeComponent erase the
C2Work from |mWorksAtDecoder|.

Originally, we store C2Work after calling V4L2Decoder::Decode(). So
it's possible that the callback is called before inserting the C2Work
into |mWorksAtDecoder|. This CL fixes this issue.

Bug: 177627914
Test: android.media.cts.MediaRandomTest#testPlayerRandomActionH264

Change-Id: I0e496c8d1e37798a5efe153436d56f343e6ac500
1 file changed
tree: a7023e91cfa65bd60eefc3e1365d30e6afec4fbd
  1. accel/
  2. common/
  3. components/
  4. plugin_store/
  5. service/
  6. store/
  7. tests/
  8. .clang-format
  9. Android.bp
  10. METADATA
  11. MODULE_LICENSE_BSD
  12. NOTICE
  13. OWNERS
  14. PREUPLOAD.cfg
  15. 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.