Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(959)

Unified Diff: media/filters/vp8_parser_unittest.cc

Issue 1269473002: Extract IVF parser from VP8 parser unittest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DKIF Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/filters/vp8_parser_unittest.cc
diff --git a/media/filters/vp8_parser_unittest.cc b/media/filters/vp8_parser_unittest.cc
index 39a2a801032e7d6cb2f459199b611321ae1effc2..50f21e92a1cc7f797b1b3fa4d59e2da2ba98e787 100644
--- a/media/filters/vp8_parser_unittest.cc
+++ b/media/filters/vp8_parser_unittest.cc
@@ -2,12 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/command_line.h"
#include "base/files/memory_mapped_file.h"
#include "base/logging.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/sys_byteorder.h"
#include "media/base/test_data_util.h"
+#include "media/filters/ivf_parser.h"
#include "media/filters/vp8_parser.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -15,45 +13,37 @@ namespace media {
TEST(Vp8ParserTest, StreamFileParsing) {
base::FilePath file_path = GetTestDataFilePath("test-25fps.vp8");
- // Number of frames in the test stream to be parsed.
- const int num_frames = 250;
-
base::MemoryMappedFile stream;
ASSERT_TRUE(stream.Initialize(file_path))
<< "Couldn't open stream file: " << file_path.MaybeAsASCII();
- Vp8Parser parser;
+ IvfParser ivf_parser;
+ IvfFileHeader ivf_file_header;
+ memset(&ivf_file_header, 0, sizeof(ivf_file_header));
+ ASSERT_TRUE(
+ ivf_parser.Initialize(stream.data(), stream.length(), &ivf_file_header));
+ ASSERT_EQ(ivf_file_header.fourcc, 0x30385056u); // VP80
+
+ Vp8Parser vp8_parser;
+ IvfFrameHeader ivf_frame_header;
xhwang 2015/08/06 21:56:10 Here and in other places, can you just do IvfFra
kcwu 2015/08/07 06:20:08 Done.
+ memset(&ivf_frame_header, 0, sizeof(ivf_frame_header));
+ size_t num_parsed_frames = 0;
// Parse until the end of stream/unsupported stream/error in stream is found.
- int num_parsed_frames = 0;
- const uint8_t* stream_ptr = stream.data();
- size_t bytes_left = stream.length();
- // Skip IVF file header.
- const size_t kIvfStreamHeaderLen = 32;
- CHECK_GE(bytes_left, kIvfStreamHeaderLen);
- stream_ptr += kIvfStreamHeaderLen;
- bytes_left -= kIvfStreamHeaderLen;
-
- const size_t kIvfFrameHeaderLen = 12;
- while (bytes_left > kIvfFrameHeaderLen) {
+ const uint8_t* payload = nullptr;
+ while (ivf_parser.ParseNextFrame(&ivf_frame_header, &payload)) {
Vp8FrameHeader fhdr;
- uint32_t frame_size =
- base::ByteSwapToLE32(*reinterpret_cast<const uint32_t*>(stream_ptr));
- // Skip IVF frame header.
- stream_ptr += kIvfFrameHeaderLen;
- bytes_left -= kIvfFrameHeaderLen;
- ASSERT_TRUE(parser.ParseFrame(stream_ptr, frame_size, &fhdr));
+ ASSERT_TRUE(
+ vp8_parser.ParseFrame(payload, ivf_frame_header.frame_size, &fhdr));
- stream_ptr += frame_size;
- bytes_left -= frame_size;
++num_parsed_frames;
}
DVLOG(1) << "Number of successfully parsed frames before EOS: "
<< num_parsed_frames;
- EXPECT_EQ(num_frames, num_parsed_frames);
+ EXPECT_EQ(ivf_file_header.num_frames, num_parsed_frames);
}
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698