| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 | 134 |
| 135 INSTANTIATE_TEST_CASE_P(C, Y4mVideoSourceTest, | 135 INSTANTIATE_TEST_CASE_P(C, Y4mVideoSourceTest, |
| 136 ::testing::ValuesIn(kY4mTestVectors)); | 136 ::testing::ValuesIn(kY4mTestVectors)); |
| 137 | 137 |
| 138 class Y4mVideoWriteTest | 138 class Y4mVideoWriteTest |
| 139 : public Y4mVideoSourceTest { | 139 : public Y4mVideoSourceTest { |
| 140 protected: | 140 protected: |
| 141 Y4mVideoWriteTest() {} | 141 Y4mVideoWriteTest() {} |
| 142 | 142 |
| 143 virtual ~Y4mVideoWriteTest() { | 143 virtual ~Y4mVideoWriteTest() { |
| 144 delete tmpfile_; |
| 145 input_file_ = NULL; |
| 146 } |
| 147 |
| 148 void ReplaceInputFile(FILE *input_file) { |
| 144 CloseSource(); | 149 CloseSource(); |
| 145 delete tmpfile_; | 150 frame_ = 0; |
| 151 input_file_ = input_file; |
| 152 rewind(input_file_); |
| 153 ReadSourceToStart(); |
| 146 } | 154 } |
| 147 | 155 |
| 148 // Writes out a y4m file and then reads it back | 156 // Writes out a y4m file and then reads it back |
| 149 void WriteY4mAndReadBack() { | 157 void WriteY4mAndReadBack() { |
| 150 ASSERT_TRUE(input_file_ != NULL); | 158 ASSERT_TRUE(input_file_ != NULL); |
| 151 char buf[Y4M_BUFFER_SIZE] = {0}; | 159 char buf[Y4M_BUFFER_SIZE] = {0}; |
| 152 const struct VpxRational framerate = {y4m_.fps_n, y4m_.fps_d}; | 160 const struct VpxRational framerate = {y4m_.fps_n, y4m_.fps_d}; |
| 153 tmpfile_ = new libvpx_test::TempOutFile; | 161 tmpfile_ = new libvpx_test::TempOutFile; |
| 154 ASSERT_TRUE(tmpfile_->file() != NULL); | 162 ASSERT_TRUE(tmpfile_->file() != NULL); |
| 155 y4m_write_file_header(buf, sizeof(buf), | 163 y4m_write_file_header(buf, sizeof(buf), |
| 156 kWidth, kHeight, | 164 kWidth, kHeight, |
| 157 &framerate, y4m_.vpx_fmt, | 165 &framerate, y4m_.vpx_fmt, |
| 158 y4m_.bit_depth); | 166 y4m_.bit_depth); |
| 159 fputs(buf, tmpfile_->file()); | 167 fputs(buf, tmpfile_->file()); |
| 160 for (unsigned int i = start_; i < limit_; i++) { | 168 for (unsigned int i = start_; i < limit_; i++) { |
| 161 y4m_write_frame_header(buf, sizeof(buf)); | 169 y4m_write_frame_header(buf, sizeof(buf)); |
| 162 fputs(buf, tmpfile_->file()); | 170 fputs(buf, tmpfile_->file()); |
| 163 write_image_file(img(), tmpfile_->file()); | 171 write_image_file(img(), tmpfile_->file()); |
| 164 Next(); | 172 Next(); |
| 165 } | 173 } |
| 166 tmpfile_->CloseFile(); | 174 ReplaceInputFile(tmpfile_->file()); |
| 167 Y4mVideoSourceTest::Init(tmpfile_->file_name(), limit_); | |
| 168 } | 175 } |
| 169 | 176 |
| 170 virtual void Init(const std::string &file_name, int limit) { | 177 virtual void Init(const std::string &file_name, int limit) { |
| 171 Y4mVideoSourceTest::Init(file_name, limit); | 178 Y4mVideoSourceTest::Init(file_name, limit); |
| 172 WriteY4mAndReadBack(); | 179 WriteY4mAndReadBack(); |
| 173 } | 180 } |
| 174 libvpx_test::TempOutFile *tmpfile_; | 181 libvpx_test::TempOutFile *tmpfile_; |
| 175 }; | 182 }; |
| 176 | 183 |
| 177 TEST_P(Y4mVideoWriteTest, WriteTest) { | 184 TEST_P(Y4mVideoWriteTest, WriteTest) { |
| 178 const Y4mTestParam t = GetParam(); | 185 const Y4mTestParam t = GetParam(); |
| 179 Init(t.filename, kFrames); | 186 Init(t.filename, kFrames); |
| 180 HeaderChecks(t.bit_depth, t.format); | 187 HeaderChecks(t.bit_depth, t.format); |
| 181 Md5Check(t.md5raw); | 188 Md5Check(t.md5raw); |
| 182 } | 189 } |
| 183 | 190 |
| 184 INSTANTIATE_TEST_CASE_P(C, Y4mVideoWriteTest, | 191 INSTANTIATE_TEST_CASE_P(C, Y4mVideoWriteTest, |
| 185 ::testing::ValuesIn(kY4mTestVectors)); | 192 ::testing::ValuesIn(kY4mTestVectors)); |
| 186 } // namespace | 193 } // namespace |
| OLD | NEW |