media: Add VideoFrameFactory for MediaCodecVideoDecoder to create frames

VideoFrameFactory supports creating VideoFrames backed by mailboxes made
from CodecImage backed textues. It's single threaded and owned by MCVD,
but wraps the gpu-thread-only GpuVideoFrameFactory, which is where the
texture and mailbox creation happens.

It also tracks outstanding CodecImages and renders them in advance if
possible.

Bug: 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I37111da1df2aa908c998a006feedf82afeb5c2ca
Reviewed-on: https://chromium-review.googlesource.com/532318
Commit-Queue: Chris Watkins <watk@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#481281}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 65dc2a5af608731b5b2e3594a05a163411a5d269
13 files changed