- Oct 20, 2021
-
-
Chih-Yu Huang authored
Bug: None Test: mmm external/v4l2_codec2 Change-Id: I21d5d30ce32279dfb1cbe2b40d435d2e9707f5aa
-
- Jun 07, 2021
-
-
Chih-Yu Huang authored
Originally libv4l2_codec2_common is small library that only contains some constant definitions, so it's efficient to link it as static library. Now the library becomes larger. This CL changes to link it as shared library to prevent duplicating the content into its dependency libraries and binaries. Bug: 160110407 Test: mmm external/v4l2_codec2 Change-Id: Ie0c08bdd694d7226ce430af9148e0c8919126c79
-
- May 12, 2021
-
-
David Staessens authored
This CL removes the libv4l2_codec2_accel library now all files have been removed from the library, and updates dependent modules. Bug: 155138142 Test: m -j32 Change-Id: I45629ae702b12aedf9a6be256d955e702da8245d
-
David Staessens authored
This CL splits the V4L2EncodeComponent in a codec2 component and a V4L2 encoder part. This improves the encapsulation and flexibility of the encoder and makes maintenance easier. As a lot of the encode/drain/flush logic has been affected by the split, various changes needed to be made: - The drain/flush flows have been reworked. - Various changes have been made to the input/output buffer flows to match the new requirements and restrictions. - The BitstreamBuffer class is used for output, to avoid having Codec2 logic in the V4L2 encoder class. - A queue was introduced for work waiting for input format conversion. - Some outdated comments have been removed. Bug: 143333813 Test: arc.VideoEncodeAcel.* and various CTS tests Change-Id: Ie782b74daa3662a1ce1d441b5ba5e48eaa1057d3
-
- 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
-
- Mar 01, 2021
-
-
Chih-Yu Huang authored
At ag/13473071 we expose C2BufferQueueBlockPoolData at C2BqBufferPriv.h, which needs C2BlockInternal.h header. This CL adds the corresponding header_libs at plugin_store because it includes C2BqBufferPriv.h. Bug: 174188958 Test: m -j32 Change-Id: I0eec5db85b6d7d05ad97df142cb61a9ea2adbe76
-
- Feb 13, 2021
-
-
Bob Badour authored
Added SPDX-license-identifier-BSD to: accel/Android.bp common/Android.bp components/Android.bp plugin_store/Android.bp service/Android.bp store/Android.bp tests/c2_comp_intf/Android.bp Added SPDX-license-identifier-BSD legacy_unencumbered to: Android.bp tests/c2_e2e_test/jni/Android.mk Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: I4ef032a3849d650e13761a868b45309275d408a2
-
- Jan 12, 2021
-
-
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
-
- Aug 31, 2020
-
-
David Staessens authored
This CL removes the duplicate HalPixelFormat and InputCodec types in common.h that are also present in VideoTypes.h. VideoTypes.h is moved to the common/ folder so it can also be used by other classes. note: Submit together with ag/12467730 Bug: 143333813 Test: tast run $HOST arc.VideoEncodeAccel.h264_vm on hatch-arc-r Change-Id: I93bca14a3b2f0c4c49104149d5683193554ba3eb
-
- 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
-
- Jul 09, 2020
-
-
Chih-Yu Huang authored
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
-
David Staessens authored
This CL adds the -Wthread-safety flag to the codec2 components build file, so thread annotation such as GUARDED_BY can be used. Bug: 160110407 Test: m -j32 Change-Id: If39ae7694598d81076e18d5332fc759b74787a5d
-
- 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
-