- Mar 29, 2021
-
-
Chih-Yu Huang authored
Originally V4L2ComponentStore and V4L2ComponentFactory depends on each other. To avoid circular dependency, V4L2ComponentStore dynamically loads the shared library of V4L2ComponentFactory. This CL removes the dependency from V4L2ComponentFactory to V4L2ComponentStore, and also avoid dynamic loading the shared library. Bug: 160110846 Test: android.media.cts.AdaptivePlaybackTest Change-Id: I864b642035ea5b1572ee1d474ad12706147cbed1
-
- Jan 12, 2021
-
-
Chih-Yu Huang authored
This CL introduces a new property "debug.v4l2_codec2.decode.concurrent-instances" used to limit the maximum concurrent instances of V4L2DecodeComponent. Bug: 174530542 Test: android.media.cts.MediaCodecCapabilitiesTest#testGetMaxSupportedInstances Change-Id: I92d6c0637fad3fb96333a2e457a4894218045678
-
David Stevens authored
InputBufferManager notifies the codec2 framework when the component no longer has any references to an input buffer. While a dedicated release notification is necessary in some circumstances, the release can usually be done when the corresponding work item is completed, to reduce the amount of IPC. This change sets the notification interval used by InputBufferManager to reduce how often a dedicated release notification is sent. Bug: 172184040 Test: tast run DUT arc.VideoDecodeAccel.vp8_vm Change-Id: Id6371d328bb00730b50d3b3075eccf4010554f27
-
- Dec 17, 2020
-
-
Cindy Zhou authored
Declare cfi_canonical_jump_table for codec factory functions to avoid cfi crashes. Bug: 158010610 Bug: 173497308 Test: ran atest DecoderConformanceTest, ImageReaderDecoderTest, VideoDecoderPerfTest, VideoEncoderTest. Compare the before and after enabling CFI results since there was a number of tests that were initially failing. Change-Id: Iced1b81656534de315779f5c9c6788c5c9c1a068
-
- Jul 22, 2020
-
-
David Staessens authored
This CL introduces the first version of the new codec2 V4L2 encoder. The V4L2EncodeComponent currently only supports H264, support for additional formats will introduced later. The encode component is developed and tested on ARC++ and the initial version is not functional yet on ARCVM. The changes required to fully enable the encoder on ARCVM (such as support for DMABufs) will be introduced in follow-up CLs. Currently the component makes heavy use of Chromium helpers as it's based on the Chromium V4L2VideoEncodeAccelerator, but in the future the amount of dependencies will be reduced. The new V4L2 encoder is currently not enabled by default, which requires additional changes in media_codecs_c2.xml. Bug: 143333813 Test: mmm external/v4l2_codec2 Change-Id: I59ba52e8f85aa40c8d23a451fb2842a7a421412a
-
- Jun 02, 2020
-
-
Chih-Yu Huang authored
This CL implements V4L2DecodeComponent, a decode C2Component via V4L2 API. It mainly contains these parts: - VideoDecoder: An interface for video decoding, similar to media::VideoDecoder at Chromium project. - V4L2Decoder: An implementation of VideoDecoder via V4L2 stateful API. We wrap all V4L2-related logic in this class - VideoFrame The data structure to represent the output buffer of VideoDecoder. It encapsulates a C2GraphicBlock and only exposes the essential information of physical buffers. - VideoFramePool: The buffer pool used by VideoDecoder. It encapsulates C2BlockPool and provides asynchronous method to fetch buffers. - V4L2DecodeComponent, V4L2DecodeInterface: The C2Component implementation that delegates the decode request to V4L2Decoder. - V4L2ComponentFactory: The C2ComponentFactory that creates V4L2DecodeComponent. Bug: 152714603 Test: mmm external/v4l2_codec2/ Test: Run e2e test and make sure the V4L2DecodeComponent is running Change-Id: I23e9b3553b62dd6c83d943d7787297305372c37d
-