Allow odd sized video decoder configs.
commitaf2caf7f5bef24e3db84c95d7d8d1203bf050e27
authorchcunningham <chcunningham@chromium.org>
Wed, 29 Jul 2015 19:23:22 +0000 (29 12:23 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 29 Jul 2015 19:23:50 +0000 (29 19:23 +0000)
tree551f6300c5d36784194234b700536e7aad5002bd
parent5af02f56a271ef100cfd8abfe1079b4a35534e2c
Allow odd sized video decoder configs.

VideoFrame::IsValidConfig is a public static method, called both
externally and internally. This change removes a check which is not
wanted in all (or even most) cases where IsValidConfig was called.

Spoke with some past authors. The check is not well understood, but
best guess is that it was meant to verify that coded size is properly
aligned with the sub-sampled UV planes. The check is now made more
narrowly in CreateFrame, where we are free to adjust the size because
we own the allocation.

This change also includes some unification of error handling among
the various "Create" methods. These will now return null if the
video frame configuration is found to be invalid.

See extensive discussion and back-story in code review comments.

BUG=505070, 489744, 379127
TESTS=media_unittests (added some), and manually tested repro in bug

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

Cr-Commit-Position: refs/heads/master@{#340946}
media/base/video_frame.cc
media/base/video_frame.h
media/base/video_frame_unittest.cc
media/filters/ffmpeg_video_decoder.cc