| Index: media/base/video_frame_unittest.cc
|
| diff --git a/media/base/video_frame_unittest.cc b/media/base/video_frame_unittest.cc
|
| index b88d20c363973e9a1937a640829a5edca79d561b..710c69f4c52a6a07dc816807f9dc1af0dce047bd 100644
|
| --- a/media/base/video_frame_unittest.cc
|
| +++ b/media/base/video_frame_unittest.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/bind.h"
|
| #include "base/callback_helpers.h"
|
| #include "base/format_macros.h"
|
| +#include "base/memory/aligned_memory.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "media/base/buffers.h"
|
| @@ -46,40 +47,41 @@ void ExpectFrameColor(media::VideoFrame* yv12_frame, uint32 expect_rgb_color) {
|
| ASSERT_EQ(VideoFrame::YV12, yv12_frame->format());
|
| ASSERT_EQ(yv12_frame->stride(VideoFrame::kUPlane),
|
| yv12_frame->stride(VideoFrame::kVPlane));
|
| -
|
| - scoped_refptr<media::VideoFrame> rgb_frame;
|
| - rgb_frame = media::VideoFrame::CreateFrame(VideoFrame::RGB32,
|
| - yv12_frame->coded_size(),
|
| - yv12_frame->visible_rect(),
|
| - yv12_frame->natural_size(),
|
| - yv12_frame->GetTimestamp());
|
| -
|
| - ASSERT_EQ(yv12_frame->coded_size().width(),
|
| - rgb_frame->coded_size().width());
|
| - ASSERT_EQ(yv12_frame->coded_size().height(),
|
| - rgb_frame->coded_size().height());
|
| + ASSERT_EQ(
|
| + yv12_frame->coded_size().width() & (VideoFrame::kFrameSizeAlignment - 1),
|
| + 0);
|
| + ASSERT_EQ(
|
| + yv12_frame->coded_size().height() & (VideoFrame::kFrameSizeAlignment - 1),
|
| + 0);
|
| +
|
| + size_t bytes_per_row = yv12_frame->coded_size().width() * 4u;
|
| + uint8* rgb_data = reinterpret_cast<uint8*>(
|
| + base::AlignedAlloc(bytes_per_row * yv12_frame->coded_size().height() +
|
| + VideoFrame::kFrameSizePadding,
|
| + VideoFrame::kFrameAddressAlignment));
|
|
|
| media::ConvertYUVToRGB32(yv12_frame->data(VideoFrame::kYPlane),
|
| yv12_frame->data(VideoFrame::kUPlane),
|
| yv12_frame->data(VideoFrame::kVPlane),
|
| - rgb_frame->data(VideoFrame::kRGBPlane),
|
| - rgb_frame->coded_size().width(),
|
| - rgb_frame->coded_size().height(),
|
| + rgb_data,
|
| + yv12_frame->coded_size().width(),
|
| + yv12_frame->coded_size().height(),
|
| yv12_frame->stride(VideoFrame::kYPlane),
|
| yv12_frame->stride(VideoFrame::kUPlane),
|
| - rgb_frame->stride(VideoFrame::kRGBPlane),
|
| + bytes_per_row,
|
| media::YV12);
|
|
|
| - for (int row = 0; row < rgb_frame->coded_size().height(); ++row) {
|
| + for (int row = 0; row < yv12_frame->coded_size().height(); ++row) {
|
| uint32* rgb_row_data = reinterpret_cast<uint32*>(
|
| - rgb_frame->data(VideoFrame::kRGBPlane) +
|
| - (rgb_frame->stride(VideoFrame::kRGBPlane) * row));
|
| - for (int col = 0; col < rgb_frame->coded_size().width(); ++col) {
|
| + rgb_data + (bytes_per_row * row));
|
| + for (int col = 0; col < yv12_frame->coded_size().width(); ++col) {
|
| SCOPED_TRACE(
|
| base::StringPrintf("Checking (%d, %d)", row, col));
|
| EXPECT_EQ(expect_rgb_color, rgb_row_data[col]);
|
| }
|
| }
|
| +
|
| + base::AlignedFree(rgb_data);
|
| }
|
|
|
| // Fill each plane to its reported extents and verify accessors report non
|
| @@ -204,8 +206,6 @@ TEST(VideoFrame, CheckFrameExtents) {
|
| // and the expected hash of all planes if filled with kFillByte (defined in
|
| // ExpectFrameExtents).
|
| ExpectFrameExtents(
|
| - VideoFrame::RGB32, 1, 4, "de6d3d567e282f6a38d478f04fc81fb0");
|
| - ExpectFrameExtents(
|
| VideoFrame::YV12, 3, 1, "71113bdfd4c0de6cf62f48fb74f7a0b1");
|
| ExpectFrameExtents(
|
| VideoFrame::YV16, 3, 1, "9bb99ac3ff350644ebff4d28dc01b461");
|
|
|