History log of /external/v4l2_codec2/C2VDAComponent.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2fea071c2303da50753e76418e8a643baeae9f4b 14-May-2018 Pin-chih Lin <johnylin@google.com> codec2: add input/output allocator ID parameter

C2PortAllocatorsTuning is the parameter of component to indicate the allocator
ID of input/output buffers for CCodec to create block pools. When CCodec
creates remote output block pool, CCodec should config
C2PortBlockPoolsTuning::output as obtained block pool ID to the component.

Bug: 79392858
Test: CtsMediaTestCases android.media.cts.MediaPlayerTest#testLocalVideo_MP4_H264_480x360_500kbps_30fps_AAC_Stereo_128kbps_44110Hz
Change-Id: I144e6151ecbe43dc309e8c960c3ca1f26b5f81dc
/external/v4l2_codec2/C2VDAComponent.cpp
cb35176c4c402a7d77cd1c472002976be4021cb8 17-May-2018 Pin-chih Lin <johnylin@google.com> Revert "codec2: add dequeue thread loop to recycle output buffers"

This reverts commit fec9858bc46a83fc361574cb71bf3bfa240321aa.

Reason for revert: this will break pi-arc-dev cheets build

Bug: 79239042
Change-Id: Ief810ff6d8b03db859407f0ea08d54ae210dffb0
/external/v4l2_codec2/C2VDAComponent.cpp
fec9858bc46a83fc361574cb71bf3bfa240321aa 09-May-2018 Pin-chih Lin <johnylin@google.com> codec2: add dequeue thread loop to recycle output buffers

The dequeue thread is implemented for C2VDAComponent to process a routine to
dequeue buffer from C2VDABQBlockPool. When a buffer (along with its slot index)
is dequeued and obtained from block pool, C2VDAComponent has the map of slot
index to buffer id, and the corresponding buffer is then reusable for VDA.

Note: this change will break C2VDAComponent_test, need to fix it
Note: this only support output surface mode, we need another solution for
byte-buffer mode

Bug: 79239042
Test: CtsMediaTestCases android.media.cts.MediaPlayerTest#testLocalVideo_MP4_H264_480x360_1000kbps_25fps_AAC_Stereo_128kbps_44110Hz
Change-Id: Icb0ed0361eb39c067dc57d28462dad031a6319c3
/external/v4l2_codec2/C2VDAComponent.cpp
1ca0d0b761fd3074c538f3d31487f1b524e096da 04-May-2018 Pin-chih Lin <johnylin@google.com> codec2: C2VDAComponent uses C2InterfaceHelper

Use C2InterfaceHelper and SimpleInterface to align with framework
implementations. It is easier to implement and could avoid unexpected bugs
caused by design difference during development.

Keep the same set of parameters in C2VDAComponent as framework's software
decoder implementation.

Bug: 77835232
Test: CtsMediaTestCases android.media.cts.MediaPlayerTest#testLocalVideo_MP4_H264_480x360_1000kbps_25fps_AAC_Stereo_128kbps_44110Hz
Test: C2VDACompIntf_test
Change-Id: I4c5b6b0d6a229ac58b903ad497a8dd49d9efe92a
/external/v4l2_codec2/C2VDAComponent.cpp
675061958dc30fb9c1735c5516f1a5337aef751b 15-May-2018 Pin-chih Lin <johnylin@google.com> codec2: remove unused parameters

Bug: 77835232
Test: C2VDACompIntf_test
Change-Id: Id081df04a50fe551b75aa1ce5a297da34c5a0b7f
/external/v4l2_codec2/C2VDAComponent.cpp
85e1ec6ac0790a8f527ffc310a9f1a9be6589241 16-May-2018 Pin-chih Lin <johnylin@google.com> codec2: remove ANDROID_VERSION_NYC specific code

Note: if you really need to grab external/v4l2_codec2 repo under arc-nyc-mr1,
please use the one in master-arc-dev branch.

Bug: 32691050
Test: build pi-arc-dev image
Change-Id: I1e407efe5c86c071b385f82267e5518759609cb1
/external/v4l2_codec2/C2VDAComponent.cpp
cd56fe7ad767762950d20582daf9d646d916f10b 04-May-2018 Pin-chih Lin <johnylin@google.com> codec2: set input buffer to nullptr when work is done

In C2Work contract, when work is returned via onWorkDone, the input
buffer-pack's buffer vector shall contain nullptrs.

Bug: 77501776
Test: CtsMediaTestCases
Test: C2VDAComponent_test
Change-Id: I6e8de1d7f1ee106012f32142333b7cba9824e9c1
/external/v4l2_codec2/C2VDAComponent.cpp
a95fb65ad5d983e28df7031ee1240bc72c915246 03-May-2018 Pin-chih Lin <johnylin@google.com> codec2: do not request VDA reset again before previous one is done

If stop() is called right after flush() (before flush done callback from VDA),
it should prevent to call VDA->reset() twice.

Bug: 73261432
Test: CtsMediaTestCases android.media.cts.MediaPlayerTest#testLocalVideo_MP4_H264_480x360_1000kbps_25fps_AAC_Stereo_128kbps_44110Hz
Change-Id: If063e53816f6bf82213aba0d07f7012996957b42
/external/v4l2_codec2/C2VDAComponent.cpp
878832befac85322bc7769b798be52b191832b9e 18-Apr-2018 Pin-chih Lin <johnylin@google.com> codec2: instantiate VDAAdaptor on component start

In Codec2.0 spec, component could be started/stopped multiple times. Since
Chrome VDA only accepts to be initialized once per instance, we would like to
instantiate VDAAdaptor each time component is started, and destory it each time
component is stopped.

Bug: 78207086
Test: CtsMediaTestCases android.media.cts.DecoderTest#testCodecResetsVP8WithSurface
Change-Id: I7e38dc3f86fd05736bfd1b94368c3cff983ca2b9
/external/v4l2_codec2/C2VDAComponent.cpp
8c97420bc07b6b527fb333f9af3c15d53ce65486 12-Apr-2018 Pin-chih Lin <johnylin@google.com> codec2: set crop window of C2GraphicBlock passed to framework

Crop window (a.k.a. visible size) is a parameter of output pictures which is
different than coded size (the real size of a graphic buffer). For a encoded
stream, crop window is fixed while coded size could vary by codec driver (crop
window must be not larger than coded size)).

Crop window information should be filled when the component shared
C2ConstGraphicBlock instance and passed to framework.

Bug: 77941729
Test: native tests on eve-arcnext
Test: adb shell /data/local/tmp/C2VDAComponent_test/C2VDAComponent_test -i /data/local/tmp/C2VDAComponent_test/bear.mp4:c2.vda.avc.decoder:640:360:82:84
Change-Id: I3fd33f66e95df569fd4d35b66179f9d4de7adc33
/external/v4l2_codec2/C2VDAComponent.cpp
2a00c2490047f627e3cbd81cd89bae39126c91ea 28-Mar-2018 Pin-chih Lin <johnylin@google.com> codec2: use atomic state and synchronize start/stop calls

Since the client would call component API from different threads, we should
process mState atomically.

In addition, client would try to start/stop/reset asynchronously. All those
calls should be blocked until component started/stopped successfully which is
signaled by the first call.

Bug: 77202102
Test: adb shell setprop debug.stagefright.ccodec yes
Test: adb shell setprop debug.stagefright.ccodec_v4l2 yes
Test: adb shell killall mediaserver
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.MediaCodecTest#testAsyncFlushAndReset
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.MediaCodecTest#testAsyncStopAndReset
Change-Id: Ieeb3c7a38fb872b84230ac3aaf3939647bf2f2b5
/external/v4l2_codec2/C2VDAComponent.cpp
226ec4605d573878f8062524e271daf2732a650a 28-Mar-2018 Pin-chih Lin <johnylin@google.com> codec2: rename components as c2.vda.*

The original name c2.v4l2.* is misleading since for cheets images (ARC++P) the
codec drivers are not always v4l2 of ChromeOS side. Thus, rename them as
c2.vda.*.

Bug: 72354012
Test: adb shell setprop debug.stagefright.ccodec yes
Test: adb shell setprop debug.stagefright.ccodec_v4l2 yes
Test: adb shell killall mediaserver
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.MediaCodecListTest
Change-Id: I6ddc34e77b53017f859911adc443eedb29c81bc5
/external/v4l2_codec2/C2VDAComponent.cpp
388dba4f96a1c278851c9a5b89a34a61b210e2b4 20-Mar-2018 Pin-chih Lin <johnylin@google.com> codec2: correlate flushed work result definition to framework

With regard to CCodecBufferChannel::onWorkDone(), flushed work result
is set to C2_NOT_FOUND.

Note: it is still TODO for CCodecBufferChannel and may be changed in the
future.

Bug: 73261432
Test: adb shell setprop debug.stagefright.ccodec yes
Test: adb shell setprop debug.stagefright.ccodec_v4l2 yes
Test: adb shell killall mediaserver
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.MediaCodecTest#testDecodeAfterFlush
Change-Id: Ieca1d867a619da0ff151cb564ae6a745e1257b49
/external/v4l2_codec2/C2VDAComponent.cpp
9bf0e9696235df05d90ad8696575e3de9d18d877 08-Mar-2018 Pin-chih Lin <johnylin@google.com> codec2: allow output buffer returned after component stopped

Output buffer might be returnedfrom client after component is stopped

Bug: 72354012
Test: run stagefright cmdtool to decode video
Change-Id: Iea03d081778b9779d15afb7b5ff9d95bdb238129
(cherry picked from commit 6bdaded5a172b285de0f23fab97e4ea8f7bc3747)
/external/v4l2_codec2/C2VDAComponent.cpp
8a2118e656587a22ebf4c1a4c23874fea45062b4 08-Feb-2018 Johny Lin <johnylin@google.com> codec2: libv4l2_codec2_vndk is only for arc-nyc

In codec2 standard, allocators should be implemented under framework's vndk
library. However, master's allocator design is not compilable on arc-nyc. For
this reason, we implement libv4l2_codec2_vndk with allocators which should only
be used in arc-nyc (not in arc-pic).

Bug: 72354012
Test: run native tests on both arc-nyc and arc-pic

Change-Id: I2b2677e65a370c992f70bcd7fa3eb581a1c7f298
(cherry picked from commit e2dae6a1a56fb331a8789bd24b83ed4bdfc33ddd)
/external/v4l2_codec2/C2VDAComponent.cpp
45968c467fc032384691f3b284c149e321da574c 15-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "codec2: add traits for c2.v4l2.* components" into pi-dev
a7c557bb7a817831c7a4c2cc86e040f3cb78a8c8 07-Mar-2018 Pin-chih Lin <johnylin@google.com> codec2: copy '\0' as well for flex string type parameter

To allocate and assign string values for string-type parameter (ex.
C2PortMimeConfig), '\0' as char array terminator is required as well.

This patch fixes the wrong length and garbages when the client gets "const
char*" from those parameters.

Bug: 73261432
Test: adb shell setprop debug.stagefright.ccodec yes
Test: adb shell setprop debug.stagefright.ccodec_v4l2 yes
Test: adb shell killall mediaserver
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.VideoDecoderPerfTest#testAvcOther0Perf0320x0240
Change-Id: Ia640f4a5af88d9aa1d6dcd24560cb50e018dbecf
(cherry picked from commit afd63189bbc9a66d14cc01e610f494e25d73c38e)
/external/v4l2_codec2/C2VDAComponent.cpp
62343f7c21d43e46f08d333ee020b5413a12d378 07-Mar-2018 Pin-chih Lin <johnylin@google.com> codec2: add traits for c2.v4l2.* components

To list c2.v4l2.* components in MediaCodecList we need to define the component
traits.

Reference from: media/libstagefright/codec2/vndk/C2Store.cpp

And align the component name all over the places.

Bug: 73261432
Test: adb shell setprop debug.stagefright.ccodec yes
Test: adb shell setprop debug.stagefright.ccodec_v4l2 yes
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.MediaCodecListTest

Change-Id: Ida3fff68e22564a19a1162acf5b79becf460a1c2
(cherry picked from commit 49bf8dbba63a549c103dce120c70fa91868d71a5)
/external/v4l2_codec2/C2VDAComponent.cpp
93e4f225df19e43300fb3b29e6f95b4e63daa4c7 23-Feb-2018 Lajos Molnar <lajos@google.com> Codec2: adjust to API style/namespace fixes

C2P::alloc_unique => AllocUnique
C2FSVQ::field => field()
C2FSVQ::type => type()
android::C2Component.. => C2Component..

Bug: 64121714
Test: Build
Change-Id: Ied33cb6fa3bea23db3ad4a98930997e3d97be911
/external/v4l2_codec2/C2VDAComponent.cpp
3760d5fdd7e60b68ed599d7322e2599efe7a13c9 31-Jan-2018 Johny Lin <johnylin@google.com> codec2: fix drain flow and EOS work reporting

There are two possible cases for component to perform draining:
1. framework calls drain_nb(mode).
a. mode == DRAIN_COMPONENT_WITH_EOS:
For this case the component processes and returns all works it has, marks
the last returned work with EOS flag.
b. mode == DRAIN_COMPONENT_NO_EOS:
Simliar to DRAIN_COMPONENT_WITH_EOS but doesn't mark EOS flag.

2. framework queues a work with EOS flag, it may be:
a. a work with frame data
b. a dummy work, whose input.buffers has a zero-size linear block, and its
timestamp is irrational. It's used for notifying EOS only.

Note that EOS work should be the last reported work in mPendingWorks,
however we cannot rely on timestamp since dummy EOS work may have irrational
timestamp. Instead, we report EOS work only while the component finished
draining (called by onDrainDone()).

DummyEOSWorkTest is implemented to test dummy EOS work mechanism.

Bug: 72354012
Test: verify with CCodec stack by stagefright cmdtool
> adb shell setprop debug.stagefright.ccodec true
> adb shell stagefright -S -N c2.v4l2.h264.decoder bear.mp4
Test: verify C2VDAComponent_test
Test: verify v4l2_codec2_testapp

Change-Id: Ibfdb6ed55f5b7c06d0c4b735c79b117c45fc11bd
/external/v4l2_codec2/C2VDAComponent.cpp
5df85ff4077c14773b8af211d199dd8d6446db6b 02-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "codec2: add decode content sanity check for C2VDAComponent_test"
727e957ee9eac15bac6cf82a61c199ec26d29da2 24-Jan-2018 Johny Lin <johnylin@google.com> codec2: add decode content sanity check for C2VDAComponent_test

Implement sanity check test by computing MD5Sum for each iteration and
comparing to golden MD5Sums, which are stored in .md5 files.

Add "-r" argument for recording output raw YUV contents into file to help us to
confirm decoder visually for debudding.

Bug: 72431959
Test: run MultiplePlayThroughSanityTest on Bob(ARC++N) and Kevin(ARC++P)
> adb shell /data/local/tmp/C2VDAComponent_test/C2VDAComponent_test -i /data/local/tmp/C2VDAComponent_test/bear.mp4:v4l2.h264.decode:640:368:82:84 --gtest_filter=MultiplePlaythroughSanityTest/C2VDAComponentParamTest.SimpleDecodeTest/0

Test: run SinglePlayThroughTest with -r
> adb shell /data/local/tmp/C2VDAComponent_test/C2VDAComponent_test -i /data/local/tmp/C2VDAComponent_test/bear.mp4:v4l2.h264.decode:640:368:82:84 -r --gtest_filter=MultiplePlaythroughSanityTest/C2VDAComponentParamTest.SimpleDecodeTest/0
> adb pull /data/local/tmp/C2VDAComponent_test/bear_output_640x368.yuv .
> mplayer -demuxer rawvideo -rawvideo w=640:h=368:format=nv12 bear_output_640x368.yuv
(use mplayer to play raw yuv file)

Change-Id: I13910324f6c202ecc456bb165e4a7059f503fbab
/external/v4l2_codec2/C2VDAComponent.cpp
decfca19e5f4fea1d51bd0ca119bfc8e73dd3777 22-Jan-2018 Hirokazu Honda <hiroh@google.com> Implement component factory to load v4l2_codec2 as dynamic-linked lib

Bug: 72354012
Test: setprop debug.stagefright.ccodec_v4l2 true
Test: stagefright -S -N c2.v4l2.h264.decoder bear.mp4
Change-Id: I24c4595fbbd7b085ab37a99183433e422242b555
/external/v4l2_codec2/C2VDAComponent.cpp
95f1adea470ccf42a7153f41ebef73cd14d40b11 01-Feb-2018 Lajos Molnar <lajos@google.com> Merge "Codec2: more adjustments for C2Work related changes"
fa7abe5b3914c3041874b360f511b132e6bf1116 26-Jan-2018 Lajos Molnar <lajos@google.com> Codec2: more adjustments for C2Work related changes

Bug: 64121714
Change-Id: Ia0365b0b0087d9304b04a1f0e53edc091873c6e5
/external/v4l2_codec2/C2VDAComponent.cpp
19743c7d3852568bc3d56edf8b02b82675791eaa 30-Jan-2018 Johny Lin <johnylin@google.com> codec2: set proper usage of C2StreamFormatConfig

C2StreamFormatConfig is the parameter of input/output stream kind (ex.
compressed stream, audio, or video). Its value should be defined in
C2FormatKind.

Add a typedef C2VDAStreamProfileConfig for |mInputCodecProfile|, its value is
defined within VDA (vda/video_codecs.h) so it's ok to use a self-defined
typedef.

Remove |mOutputColorFormat| and consider to put color format as the info
included in C2GraphicBlock (like crop window). Will implement when CCodec needs
it.

Bug: 72354012
Test: verify with CCodec stack by stagefright cmdtool
> adb shell setprop debug.stagefright.ccodec true
> adb shell stagefright -S -N c2.v4l2.h264.decoder bear.mp4
Test: verify C2VDACompIntf_test

Change-Id: I2c53a7b17093543e9c7ed97101d5caddecd49d48
/external/v4l2_codec2/C2VDAComponent.cpp
2a2b90179d72e158c74982599752c92aac9029de 24-Jan-2018 Lajos Molnar <lajos@google.com> Codec2: adjust to C2Work structure changes

Bug: 64121714
Change-Id: I1a4a80bc0def673933e2734497db0cefcd034f8b
/external/v4l2_codec2/C2VDAComponent.cpp
2be0bbb4ec194f915004267d743a4654e5aca607 23-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Reland "codec2: C2VDAAdaptorProxy Implementation""
4b97b370ba1061970eecfb3dbce6c8d3e7cb0456 22-Jan-2018 Hirokazu Honda <hiroh@google.com> Reland "codec2: C2VDAAdaptorProxy Implementation"

This reverts commit 9900faa4256aec6debdcfbd05ba396847694967c.

Reason for revert: This CL doesn't break build now.

Change-Id: I04480777ac9af477ad844917974490c8d5fb8669
/external/v4l2_codec2/C2VDAComponent.cpp
f74fedcc4b316022c2dae3d21abc37057c694209 21-Jan-2018 Lajos Molnar <lajos@google.com> Codec2: adjust to vector<C2Param * const> => vector<C2Param*> change

Bug: 64121714
Change-Id: I008a682014cb1cf5c88e08fc52f9914348b7e51f
/external/v4l2_codec2/C2VDAComponent.cpp
9900faa4256aec6debdcfbd05ba396847694967c 19-Jan-2018 Robb Glasser <rglasser@google.com> Revert "codec2: C2VDAAdaptorProxy Implementation"

This reverts commit 25587606d0f8a122b0ccacd2ae4c49798d3c5cb9.

Reason for revert: Breaking build_test on master

Change-Id: I933c5be2d936e2a1f455435c670f35ec6bb1055d
/external/v4l2_codec2/C2VDAComponent.cpp
25587606d0f8a122b0ccacd2ae4c49798d3c5cb9 16-Jan-2018 Hirokazu Honda <hiroh@google.com> codec2: C2VDAAdaptorProxy Implementation

C2VDAAdaptorProxy is a proxy between Android Framework (C2VDAComponent) and Chrome
for supporting Codec2.0 API on ARC++.

Bug: 63828247
Test: C2VDAComponent_test
Change-Id: Ie7b8b4484d0bb76da876b3aef7454e6666563723
/external/v4l2_codec2/C2VDAComponent.cpp
ac6e2703a612a0d1431e412d022712c988177a7c 16-Jan-2018 Johny Lin <johnylin@google.com> Codec2.0: specify buffer format while import output buffer

In ARC++ case, the buffer format is no longer assigned from Chromium side.
Instead, the Android side will allocate the buffer and specify the buffer
format so that we know how to import the buffer in Chromium side.

Bug: None
Test: run native tests on bob (ARC++N) and kevin (ARC++P)
Change-Id: I518c89076f9c0fa825585d7f09be01c1f615d00c
/external/v4l2_codec2/C2VDAComponent.cpp
3a3eb60fe4668155c3ba21bb823e92956cc2de4b 03-Jan-2018 Johny Lin <johnylin@google.com> Codec2: align C2PlanarLayout definition to framework impl

Move the code part which is specific for passing handle and plane information
to VDA adaptor (or adaptor proxy) from allocator to component, i.e. swapping
offsets for YCrCb, and combining CbCr planes for semi-planar format.

For allocator itself follows the same definition of C2PlanarLayout as
C2AllocatorGralloc implementation provided by framework.

Bug: None
Test: run native tests for C2VDAComponent on ARC++N

Change-Id: I1dc9b207283b3313f0322bd93182b8a804b26a9a
/external/v4l2_codec2/C2VDAComponent.cpp
a0c6bbd64f675acaa2e11f902337256fda5233c8 03-Jan-2018 Lajos Molnar <lajos@google.com> Codec2: adjust for C2Params and C2Buffer API style fixups

Bug: 64121714
Change-Id: I5c57a3834ccc7ae935e8fde03f0fcf6ec94912f9
/external/v4l2_codec2/C2VDAComponent.cpp
c6d0b6f730a74e2d10a414ba5b368fb7cd87f78d 19-Dec-2017 Johny Lin <johnylin@google.com> codec2: correct include order and add include dir

Include order (according to Android coding style):
1. local includes
2. ported Chromium vda includes
3. codec2 header includes
4. external includes (libchrome)
5. external includes (system, media, framework...)
6. c/c++ header includes

Bug: None
Test: run native tests
Change-Id: I7506cf4561a1df87a1bc8b6324d9419a01035b18
/external/v4l2_codec2/C2VDAComponent.cpp
95d0e47610746d8c8444051e42413f6c0d454817 18-Dec-2017 Johny Lin <johnylin@google.com> codec2: support VP9 decode and add native tests

Bug: 70773841
Test: test C2VDAComponent_test vp9 on bob
> mmm external/v4l2_codec2/tests/
> adb push out/target/product/cheets_arm/data/nativetest/C2VDAComponent_test /data/local/tmp/
> adb push external/v4l2_codec2/tests/data/bear-vp9.webm /data/local/tmp/C2VDAComponent_test
> adb shell /data/local/tmp/C2VDAComponent_test/C2VDAComponent_test -i /data/local/tmp/C2VDAComponent_test/bear-vp9.webm:v4l2.vp9.decode:320:256:82:82

Change-Id: I56d5192294a0b815d95155e91e690a993ce8c390
/external/v4l2_codec2/C2VDAComponent.cpp
a891f0ea984eb1175467ebe1c0ec086977464a07 19-Dec-2017 Johny Lin <johnylin@google.com> codec2: fix coding style by clang-format

clang-format files are in Change-Id:
I78c285c6e1796b3f3ec118fd81a7f52d0503600f

Bug: None
Test: run native tests.

Change-Id: I4d46de3cc89813f50dfd0c12387cd50fb895b438
/external/v4l2_codec2/C2VDAComponent.cpp
2737fb61ca7ecd786b160ec5d79e3eaa48135606 19-Dec-2017 Lajos Molnar <lajos@google.com> Codec2: adjust for renaming and C2Component API update

Change-Id: I11d5624251b29347797845b1e6ee5b4e752eb3df
/external/v4l2_codec2/C2VDAComponent.cpp
9be5270780fda8f9e7e4aff26e10d94a1d47517b 15-Nov-2017 Johny Lin <johnylin@google.com> codec2: support VP8 decode and add native tests

Bug: 69353552
Test: tests C2VDAComponent_test with vp8 video
> mmm external/v4l2_codec2/tests/
> adb push out/target/product/cheets_arm/data/nativetest/C2VDAComponent_test /data/local/tmp/
> adb push external/v4l2_codec2/tests/data/bear-vp8.webm /data/local/tmp/C2VDAComponent_test
> adb shell /data/local/tmp/C2VDAComponent_test/C2VDAComponent_test -i /data/local/tmp/C2VDAComponent_test/bear-vp8.webm:v4l2.vp8.decode:640:368:82:82

Change-Id: I50f5606c7524d34c12dc95307c6752cd160bfc44
/external/v4l2_codec2/C2VDAComponent.cpp
52bffe176c343075c196c072aa7924de3abdd1b5 19-Sep-2017 Johny Lin <johnylin@google.com> codec2: component H264 decoder implementation

Bug: 63828240
Test: run codec2 binary

Change-Id: Ia5f6797b817eb01bcab69354baea31e7daf01a0f
/external/v4l2_codec2/C2VDAComponent.cpp
8977c08db7461b9df2cbadd8b05f5a38281ccb2c 30-Nov-2017 Lajos Molnar <lajos@google.com> Codec2: listComponents() is blocking and non-const

Bug: 64121714
Test: unittest
Change-Id: Ia2fba6c1c19fad1c323e9f3d61f1cf4205bfdbad
/external/v4l2_codec2/C2VDAComponent.cpp
b78444efc4fa4f34c735262b4305a7db22fb24bc 28-Nov-2017 Lajos Molnar <lajos@google.com> Codec2: Further finalize C2Component APIs.

Changes to go along with framework API change:
Codec2: Finalize C2Component APIs and add C2ComponentFactory

Bug: 64121714
Test: unittest
Change-Id: Ie540e949a98233c73fa9ae29b825947b38532225
/external/v4l2_codec2/C2VDAComponent.cpp
c81d232b1ccff107b88c09d7557960428ffe067c 16-Nov-2017 Lajos Molnar <lajos@google.com> Codec2: finalize C2 status constants

Bug: 64121714
Test: unittest
Change-Id: I65d4121422628be864cd27c031303be41e444741
/external/v4l2_codec2/C2VDAComponent.cpp
5b61cf9b31e456115bb2fa5490cb998d7b8ca915 15-Nov-2017 Lajos Molnar <lajos@google.com> Codec2: rename C2Error/status_t to C2Status

Bug: 64121714
Test: unittest
Change-Id: I5f4b69bd05d8769549314660a62cae999019a814
/external/v4l2_codec2/C2VDAComponent.cpp
c2d862adef2b94db02c56b104750eb4ad00a447f 14-Nov-2017 Lajos Molnar <lajos@google.com> Codec2: rework supported values signatures

Bug: 64121714
Change-Id: I301717b2e524d6660034a28e8d560ccf8930505d
/external/v4l2_codec2/C2VDAComponent.cpp
f48ea125351e2c25046d38183b950fc037e12ca7 10-Nov-2017 Lajos Molnar <lajos@google.com> Codec2: rename baseIndex to coreIndex.

- coreIndex does include the flexible flag.

Bug: 64121714
Change-Id: I105ba5f291b3a2f561796efee94e873ed9dbb0ff
/external/v4l2_codec2/C2VDAComponent.cpp
b229b6e1b077c3ebc35ca68684fb69ae664112e7 07-Nov-2017 Lajos Molnar <lajos@google.com> codec2: change C2ComponentStore::query to be sm (may block briefly)

Bug: 64121714
Test: compile
Change-Id: I010d61a85380189fe8094de04c1130cf0044fa6c
/external/v4l2_codec2/C2VDAComponent.cpp
ce275069838da4e120c7e54bbfb8e202d3a13997 30-Oct-2017 Hirokazu Honda <hiroh@google.com> codec2: Update Adaptor API

Bug: 63828240
Test: mmm external/v4l2_codec2
Change-Id: Id686eb1f9923dad535b7b0c8daee3ce8e9a00559
/external/v4l2_codec2/C2VDAComponent.cpp
d18cc34c9bb5a70a5c9e19b6e41c0097565a6518 17-Oct-2017 Lajos Molnar <lajos@google.com> Generate global field descriptors for C2VDAComponent

Bug: 64662308
Change-Id: Iad23414403e8096f8ba7dd3dd9051cb225a45af2
/external/v4l2_codec2/C2VDAComponent.cpp
744cff12c41df387d950bf38d095d17f9802b105 16-Aug-2017 Johny Lin <johnylin@google.com> codec2: component start/stop implementation

This CL only cover component start and stop function without buffer allocation
and any decoding procedure.

Bug: 63828275
Test: run native tests (on nyc branch, cheets_arm device). Steps:
1) mmm external/v4l2_codec2/tests/
2) adb push out/target/product/cheets_arm/data/nativetest/C2VDAComponent_test /data/local/tmp/
3) adb shell /data/local/tmp/C2VDAComponent_test/C2VDAComponent_test

Change-Id: I96d9f4b2d6f9bd6bb28be93be3b7b5bea62e9ea7
/external/v4l2_codec2/C2VDAComponent.cpp
7c4cb52a0cc4035582797eed726fe04d60703478 26-Jun-2017 Johny Lin <johnylin@google.com> codec2: C2VDAComponentIntf implementation

C2VDAComponentIntf is the component interface class of C2VDAComponent (V4L2
codec 2.0 implementation). Framework could config and query codec parameters
via C2VDAComponentIntf interface. There is the correspondent native test of it.

This CL also includes C2ComponentStore implementation and factory functions for
creating C2VDAComponentIntf objects.

Bug: 63828275
Test: run native tests (on nyc branch, cheets_arm device). Steps:
1) mmm external/v4l2_codec2/tests/
2) adb push out/target/product/cheets_arm/data/nativetest/C2VDAComponent_test /data/local/tmp/
3) adb shell /data/local/tmp/C2VDAComponent_test/C2VDAComponent_test

Change-Id: Ibaea85bc2f157b8099544a5e38a812808e71405a
/external/v4l2_codec2/C2VDAComponent.cpp