commit | f48666208d6eb854768ee0923bc9abb3f93eeb5e | [log] [tgz] |
---|---|---|
author | Dean Liao <deanliao@chromium.org> | Thu Dec 27 01:58:41 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Dec 27 01:58:41 2018 |
tree | 24d64cbba989976dd62feae828b7a0f3a2adbb56 | |
parent | 9a681b755c3b9b77f22391ec0b385a7c01bec5e9 [diff] |
media/gpu: Add LibYUVImageProcessor and extend ImageProcessor interface LibYUVImageProcessor is a software image processor to convert video stream format for video encoder / decoder to consume. Adds ImageProcessorFactory to encapsulate image processor creation for video decode/encode accelerators. Adds Process(VF, VF, cb) in ImageProcessor because it is platform agnostics, i.e. no ScopedFD, which is POXIS only. Also, it aligns with our goal to make ImageProcessor support only import mode for output VideoFrame (input is already import mode only). When we reach the goal, i.e. all IP's users use Process(VF, VF, cb), we can simplify the logic of both ImageProcessors and their callers. We take V4L2 VEA as its first user of this overloaded function. When V4L2 VEA needs IP and VEA knows how to create VideoFrame for IP as output, we can use the new interface. On the contrary, as far as we know, V4L2 VEA is unable to create DMAbuf-backed VideoFrame for V4L2 IP's output, we keep using the original interface until the issue is solved. BUG=b:73752373, chromium:907767, b:110815424 TEST=TEST=Run VEA VDA unittest on devices (peach_pit and elm) VEA: video_encode_accelerator_unittest \ --test_stream_data=bear-320x180.yuv:320:180:1:bear.mp4:100000:30 \ --disable_flush --single-process-tests -v=0 Change-Id: I8bfabda30a569030e8e0831efafc502f48cfabf2 Reviewed-on: https://chromium-review.googlesource.com/c/1348150 Commit-Queue: Shuo-Peng Liao <deanliao@google.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Wu-Cheng Li <wuchengli@chromium.org> Reviewed-by: Alexandre Courbot <acourbot@chromium.org> Cr-Commit-Position: refs/heads/master@{#618991}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .