VideoFrame: Segregate Pixel Format and Storage Type.

VideoFrame::Format is a mix of textures and cpu-backed
formats. Textures are then further specified by
a texture format VideoFrame::TextureFormat.

This CL consolidates this into a single pixel format
and a storage type. This applies to HOLE as well,
which is understood as another Storage type.

VideoFrame ctor forces to pass a |mailbox_holders_|
also for non-texture based formats. Another private
ctor is added without this necessity, and all the
necessary factory methods are updated.

UMA-wise: Removing NATIVE_TEXTURE and HOLE from pixel
format prevents them from being UMA-accounted, but
there are no registered instances of those anyway.

NV12 format is restricted to OS_MACOSX.

BUG=489744
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
TBR=bbudge@chromium.org for pepper/ since the change
is trivial there.

Review URL: https://codereview.chromium.org/1143663007

Cr-Commit-Position: refs/heads/master@{#332000}
31 files changed