Index: webrtc/tools/frame_editing/frame_editing_unittest.cc |
diff --git a/webrtc/tools/frame_editing/frame_editing_unittest.cc b/webrtc/tools/frame_editing/frame_editing_unittest.cc |
deleted file mode 100644 |
index 2e43545230d6686578b1e1e7aecda64a720c7c16..0000000000000000000000000000000000000000 |
--- a/webrtc/tools/frame_editing/frame_editing_unittest.cc |
+++ /dev/null |
@@ -1,216 +0,0 @@ |
-/* |
- * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
- * |
- * Use of this source code is governed by a BSD-style license |
- * that can be found in the LICENSE file in the root of the source |
- * tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
- * be found in the AUTHORS file in the root of the source tree. |
- */ |
- |
-#include <stdio.h> |
-#include <stdlib.h> |
- |
-#include <fstream> |
-#include <memory> |
- |
-#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" |
-#include "webrtc/test/gtest.h" |
-#include "webrtc/test/testsupport/fileutils.h" |
-#include "webrtc/tools/frame_editing/frame_editing_lib.h" |
- |
-namespace webrtc { |
-namespace test { |
- |
-const int kWidth = 352; |
-const int kHeight = 288; |
-const size_t kFrameSize = CalcBufferSize(VideoType::kI420, kWidth, kHeight); |
- |
-class FrameEditingTest : public ::testing::Test { |
- protected: |
- virtual void SetUp() { |
- reference_video_ = ResourcePath("foreman_cif", "yuv"); |
- test_video_ = webrtc::test::TempFilename(webrtc::test::OutputPath(), |
- "frame_editing_unittest.yuv"); |
- |
- original_fid_ = fopen(reference_video_.c_str(), "rb"); |
- ASSERT_TRUE(original_fid_ != NULL); |
- |
- // Ensure the output file exists on disk. |
- std::ofstream(test_video_.c_str(), std::ios::out); |
- // Open the output file for reading. |
- // TODO(holmer): Figure out why this file has to be opened here (test fails |
- // if it's opened after the write operation performed in EditFrames). |
- edited_fid_ = fopen(test_video_.c_str(), "rb"); |
- ASSERT_TRUE(edited_fid_ != NULL); |
- |
- original_buffer_.reset(new int[kFrameSize]); |
- edited_buffer_.reset(new int[kFrameSize]); |
- num_frames_read_ = 0; |
- } |
- virtual void TearDown() { |
- fclose(original_fid_); |
- fclose(edited_fid_); |
- remove(test_video_.c_str()); |
- } |
- // Compares the frames in both streams to the end of one of the streams. |
- void CompareToTheEnd(FILE* test_video_fid, |
- FILE* ref_video_fid, |
- std::unique_ptr<int[]>* ref_buffer, |
- std::unique_ptr<int[]>* test_buffer) { |
- while (!feof(test_video_fid) && !feof(ref_video_fid)) { |
- num_bytes_read_ = fread(ref_buffer->get(), 1, kFrameSize, ref_video_fid); |
- if (!feof(ref_video_fid)) { |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- } |
- num_bytes_read_ = fread(test_buffer->get(), 1, kFrameSize, |
- test_video_fid); |
- if (!feof(test_video_fid)) { |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- } |
- if (!feof(test_video_fid) && !feof(test_video_fid)) { |
- EXPECT_EQ(0, memcmp(ref_buffer->get(), test_buffer->get(), |
- kFrameSize)); |
- } |
- } |
- // There should not be anything left in either stream. |
- EXPECT_EQ(!feof(test_video_fid), !feof(ref_video_fid)); |
- } |
- std::string reference_video_; |
- std::string test_video_; |
- FILE* original_fid_; |
- FILE* edited_fid_; |
- size_t num_bytes_read_; |
- std::unique_ptr<int[]> original_buffer_; |
- std::unique_ptr<int[]> edited_buffer_; |
- int num_frames_read_; |
-}; |
- |
-TEST_F(FrameEditingTest, ValidInPath) { |
- const int kFirstFrameToProcess = 160; |
- const int kInterval = -1; |
- const int kLastFrameToProcess = 240; |
- |
- int result = EditFrames(reference_video_, kWidth, kHeight, |
- kFirstFrameToProcess, kInterval, kLastFrameToProcess, |
- test_video_); |
- EXPECT_EQ(0, result); |
- |
- for (int i = 1; i < kFirstFrameToProcess; ++i) { |
- num_bytes_read_ = fread(original_buffer_.get(), 1, kFrameSize, |
- original_fid_); |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- |
- num_bytes_read_ = fread(edited_buffer_.get(), 1, kFrameSize, edited_fid_); |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- |
- EXPECT_EQ(0, memcmp(original_buffer_.get(), edited_buffer_.get(), |
- kFrameSize)); |
- } |
- // Do not compare the frames that have been cut. |
- for (int i = kFirstFrameToProcess; i <= kLastFrameToProcess; ++i) { |
- num_bytes_read_ = fread(original_buffer_.get(), 1, kFrameSize, |
- original_fid_); |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- } |
- CompareToTheEnd(edited_fid_, original_fid_, &original_buffer_, |
- &edited_buffer_); |
-} |
- |
-TEST_F(FrameEditingTest, EmptySetToCut) { |
- const int kFirstFrameToProcess = 2; |
- const int kInterval = -1; |
- const int kLastFrameToProcess = 1; |
- |
- int result = EditFrames(reference_video_, kWidth, kHeight, |
- kFirstFrameToProcess, kInterval, kLastFrameToProcess, |
- test_video_); |
- EXPECT_EQ(-10, result); |
-} |
- |
-TEST_F(FrameEditingTest, InValidInPath) { |
- const std::string kRefVideo_ = "PATH/THAT/DOES/NOT/EXIST"; |
- |
- const int kFirstFrameToProcess = 30; |
- const int kInterval = 1; |
- const int kLastFrameToProcess = 120; |
- |
- int result = EditFrames(kRefVideo_, kWidth, kHeight, kFirstFrameToProcess, |
- kInterval, kLastFrameToProcess, test_video_); |
- EXPECT_EQ(-11, result); |
-} |
- |
-TEST_F(FrameEditingTest, DeletingEverySecondFrame) { |
- const int kFirstFrameToProcess = 1; |
- const int kInterval = -2; |
- const int kLastFrameToProcess = 10000; |
- // Set kLastFrameToProcess to a large value so that all frame are processed. |
- int result = EditFrames(reference_video_, kWidth, kHeight, |
- kFirstFrameToProcess, kInterval, kLastFrameToProcess, |
- test_video_); |
- EXPECT_EQ(0, result); |
- |
- while (!feof(original_fid_) && !feof(edited_fid_)) { |
- num_bytes_read_ = |
- fread(original_buffer_.get(), 1, kFrameSize, original_fid_); |
- if (!feof(original_fid_)) { |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- num_frames_read_++; |
- } |
- // We want to compare every second frame of the original to the edited. |
- // kInterval=-2 and (num_frames_read_ - 1) % kInterval will be -1 for |
- // every second frame. |
- // num_frames_read_ - 1 because we have deleted frame number 2, 4 , 6 etc. |
- if ((num_frames_read_ - 1) % kInterval == -1) { |
- num_bytes_read_ = fread(edited_buffer_.get(), 1, kFrameSize, |
- edited_fid_); |
- if (!feof(edited_fid_)) { |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- } |
- if (!feof(original_fid_) && !feof(edited_fid_)) { |
- EXPECT_EQ(0, memcmp(original_buffer_.get(), |
- edited_buffer_.get(), kFrameSize)); |
- } |
- } |
- } |
-} |
- |
-TEST_F(FrameEditingTest, RepeatFrames) { |
- const int kFirstFrameToProcess = 160; |
- const int kInterval = 2; |
- const int kLastFrameToProcess = 240; |
- |
- int result = EditFrames(reference_video_, kWidth, kHeight, |
- kFirstFrameToProcess, kInterval, kLastFrameToProcess, |
- test_video_); |
- EXPECT_EQ(0, result); |
- |
- for (int i = 1; i < kFirstFrameToProcess; ++i) { |
- num_bytes_read_ = fread(original_buffer_.get(), 1, kFrameSize, |
- original_fid_); |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- |
- num_bytes_read_ = fread(edited_buffer_.get(), 1, kFrameSize, edited_fid_); |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- |
- EXPECT_EQ(0, memcmp(original_buffer_.get(), edited_buffer_.get(), |
- kFrameSize)); |
- } |
- // Do not compare the frames that have been repeated. |
- for (int i = kFirstFrameToProcess; i <= kLastFrameToProcess; ++i) { |
- num_bytes_read_ = fread(original_buffer_.get(), 1, kFrameSize, |
- original_fid_); |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- for (int i = 1; i <= kInterval; ++i) { |
- num_bytes_read_ = fread(edited_buffer_.get(), 1, kFrameSize, |
- edited_fid_); |
- EXPECT_EQ(kFrameSize, num_bytes_read_); |
- EXPECT_EQ(0, memcmp(original_buffer_.get(), edited_buffer_.get(), |
- kFrameSize)); |
- } |
- } |
- CompareToTheEnd(edited_fid_, original_fid_, &original_buffer_, |
- &edited_buffer_); |
-} |
-} // namespace test |
-} // namespace webrtc |