summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDale Curtis <dalecurtis@chromium.org>2015-06-03 10:29:53 -0700
committerDale Curtis <dalecurtis@chromium.org>2015-06-03 17:31:48 +0000
commitf0dd4b113adf2070a05ee50198225b52d5fcaff9 (patch)
treebd1e19130e50c4cb5f136363fc5c978c1ba253b9
parent80021b1be403584979a226a37a8eadbd3d3616c4 (diff)
downloadchromium_src-f0dd4b113adf2070a05ee50198225b52d5fcaff9.zip
chromium_src-f0dd4b113adf2070a05ee50198225b52d5fcaff9.tar.gz
chromium_src-f0dd4b113adf2070a05ee50198225b52d5fcaff9.tar.bz2
Merge to 2420: "Restore correct VideoFrame::BytesPerElement() calculation case for NV12."
A likely accidental removal of NV12 case from this method broke HW video decode on CrOS ARM, as plane size calculations for NV12 were using incorrect BytesPerElement result. TBR=mcasas@chromium.org,dalecurtis@chromium.org BUG=494912 TEST=video playback, apprtc Review URL: https://codereview.chromium.org/1163973002 Cr-Commit-Position: refs/heads/master@{#332566} (cherry picked from commit 0360c9825afe3740669d707cf75295b763cbcba4) Review URL: https://codereview.chromium.org/1162993004 Cr-Commit-Position: refs/branch-heads/2420@{#3} Cr-Branched-From: 39d27afab20c3f8559bde9207d8c0260cc94322d-refs/heads/master@{#332301}
-rw-r--r--media/base/video_frame.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/media/base/video_frame.cc b/media/base/video_frame.cc
index 8e323a6..9575e7c 100644
--- a/media/base/video_frame.cc
+++ b/media/base/video_frame.cc
@@ -86,6 +86,12 @@ static int BytesPerElement(VideoFrame::Format format, size_t plane) {
DCHECK(VideoFrame::IsValidPlane(plane, format));
if (format == VideoFrame::ARGB || format == VideoFrame::XRGB)
return 4;
+
+#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+ if (format == VideoFrame::NV12 && plane == VideoFrame::kUVPlane)
+ return 2;
+#endif
+
return 1;
}
@@ -111,10 +117,11 @@ bool VideoFrame::IsYuvPlanar(Format format) {
case YV16:
case YV12A:
case YV24:
- return true;
#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
case NV12:
#endif
+ return true;
+
case UNKNOWN:
case ARGB:
case XRGB: