| 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();
|
|
|