Index: media/base/video_frame_pool_unittest.cc |
diff --git a/media/base/video_frame_pool_unittest.cc b/media/base/video_frame_pool_unittest.cc |
index 052b67737d2721d493d14472042993593e8c9c5b..a6facba4c8fe22dfb8f135552c3300c218e07f9c 100644 |
--- a/media/base/video_frame_pool_unittest.cc |
+++ b/media/base/video_frame_pool_unittest.cc |
@@ -12,15 +12,15 @@ class VideoFramePoolTest : public ::testing::Test { |
VideoFramePoolTest() : pool_(new VideoFramePool()) {} |
scoped_refptr<VideoFrame> CreateFrame(VideoPixelFormat format, |
- int timestamp_ms) { |
+ int timestamp_ms, |
+ bool zero_new_frames) { |
gfx::Size coded_size(320,240); |
gfx::Rect visible_rect(coded_size); |
gfx::Size natural_size(coded_size); |
- scoped_refptr<VideoFrame> frame = |
- pool_->CreateFrame( |
- format, coded_size, visible_rect, natural_size, |
- base::TimeDelta::FromMilliseconds(timestamp_ms)); |
+ scoped_refptr<VideoFrame> frame = pool_->CreateFrame( |
+ format, coded_size, visible_rect, natural_size, |
+ base::TimeDelta::FromMilliseconds(timestamp_ms), zero_new_frames); |
EXPECT_EQ(format, frame->format()); |
EXPECT_EQ(base::TimeDelta::FromMilliseconds(timestamp_ms), |
frame->timestamp()); |
@@ -39,21 +39,30 @@ class VideoFramePoolTest : public ::testing::Test { |
scoped_ptr<VideoFramePool> pool_; |
}; |
+TEST_F(VideoFramePoolTest, FrameInitializedAndZeroed) { |
+ scoped_refptr<VideoFrame> frame = CreateFrame(PIXEL_FORMAT_YV12, 10, true); |
+ |
+ // Verify that frame is initialized with zeros. |
+ for (size_t i = 0; i < VideoFrame::NumPlanes(frame->format()); ++i) |
+ EXPECT_EQ(0, frame->data(i)[0]); |
+} |
+ |
TEST_F(VideoFramePoolTest, SimpleFrameReuse) { |
- scoped_refptr<VideoFrame> frame = CreateFrame(PIXEL_FORMAT_YV12, 10); |
+ scoped_refptr<VideoFrame> frame = CreateFrame(PIXEL_FORMAT_YV12, 10, false); |
const uint8* old_y_data = frame->data(VideoFrame::kYPlane); |
// Clear frame reference to return the frame to the pool. |
frame = NULL; |
// Verify that the next frame from the pool uses the same memory. |
- scoped_refptr<VideoFrame> new_frame = CreateFrame(PIXEL_FORMAT_YV12, 20); |
+ scoped_refptr<VideoFrame> new_frame = |
+ CreateFrame(PIXEL_FORMAT_YV12, 20, false); |
EXPECT_EQ(old_y_data, new_frame->data(VideoFrame::kYPlane)); |
} |
TEST_F(VideoFramePoolTest, SimpleFormatChange) { |
- scoped_refptr<VideoFrame> frame_a = CreateFrame(PIXEL_FORMAT_YV12, 10); |
- scoped_refptr<VideoFrame> frame_b = CreateFrame(PIXEL_FORMAT_YV12, 10); |
+ scoped_refptr<VideoFrame> frame_a = CreateFrame(PIXEL_FORMAT_YV12, 10, false); |
+ scoped_refptr<VideoFrame> frame_b = CreateFrame(PIXEL_FORMAT_YV12, 10, false); |
// Clear frame references to return the frames to the pool. |
frame_a = NULL; |
@@ -64,12 +73,13 @@ TEST_F(VideoFramePoolTest, SimpleFormatChange) { |
// Verify that requesting a frame with a different format causes the pool |
// to get drained. |
- scoped_refptr<VideoFrame> new_frame = CreateFrame(PIXEL_FORMAT_YV12A, 10); |
+ scoped_refptr<VideoFrame> new_frame = |
+ CreateFrame(PIXEL_FORMAT_YV12A, 10, false); |
CheckPoolSize(0u); |
} |
TEST_F(VideoFramePoolTest, FrameValidAfterPoolDestruction) { |
- scoped_refptr<VideoFrame> frame = CreateFrame(PIXEL_FORMAT_YV12, 10); |
+ scoped_refptr<VideoFrame> frame = CreateFrame(PIXEL_FORMAT_YV12, 10, false); |
// Destroy the pool. |
pool_.reset(); |