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

Unified Diff: media/formats/webm/webm_cluster_parser_unittest.cc

Issue 2254093002: Return buffers from StreamParsers in a single unified map (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restored calling GetBuffers after each Parse in WebM test Created 4 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
« no previous file with comments | « media/formats/webm/webm_cluster_parser.cc ('k') | media/formats/webm/webm_stream_parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/formats/webm/webm_cluster_parser_unittest.cc
diff --git a/media/formats/webm/webm_cluster_parser_unittest.cc b/media/formats/webm/webm_cluster_parser_unittest.cc
index a87854f09d7302607b1da56d7fbdb2b76ead0a08..c47345129258fbb8bffa04ac9a69c5165255530c 100644
--- a/media/formats/webm/webm_cluster_parser_unittest.cc
+++ b/media/formats/webm/webm_cluster_parser_unittest.cc
@@ -179,13 +179,12 @@ std::unique_ptr<Cluster> CreateEncryptedCluster(int bytes_to_write) {
return cb.Finish();
}
-bool VerifyBuffers(const WebMClusterParser::BufferQueue& audio_buffers,
- const WebMClusterParser::BufferQueue& video_buffers,
- const WebMClusterParser::BufferQueue& text_buffers,
+bool VerifyBuffers(const StreamParser::BufferQueueMap& buffer_queue_map,
const BlockInfo* block_info,
int block_count) {
- int buffer_count = audio_buffers.size() + video_buffers.size() +
- text_buffers.size();
+ int buffer_count = 0;
+ for (const auto& it : buffer_queue_map)
+ buffer_count += it.second.size();
if (block_count != buffer_count) {
DVLOG(1) << __FUNCTION__ << " : block_count (" << block_count
<< ") mismatches buffer_count (" << buffer_count << ")";
@@ -196,20 +195,20 @@ bool VerifyBuffers(const WebMClusterParser::BufferQueue& audio_buffers,
size_t video_offset = 0;
size_t text_offset = 0;
for (int i = 0; i < block_count; i++) {
- const WebMClusterParser::BufferQueue* buffers = NULL;
+ const StreamParser::BufferQueue* buffers = NULL;
size_t* offset;
StreamParserBuffer::Type expected_type = DemuxerStream::UNKNOWN;
+ const auto& it = buffer_queue_map.find(block_info[i].track_num);
+ EXPECT_NE(buffer_queue_map.end(), it);
+ buffers = &it->second;
if (block_info[i].track_num == kAudioTrackNum) {
- buffers = &audio_buffers;
offset = &audio_offset;
expected_type = DemuxerStream::AUDIO;
} else if (block_info[i].track_num == kVideoTrackNum) {
- buffers = &video_buffers;
offset = &video_offset;
expected_type = DemuxerStream::VIDEO;
} else if (block_info[i].track_num == kTextTrackNum) {
- buffers = &text_buffers;
offset = &text_offset;
expected_type = DemuxerStream::TEXT;
} else {
@@ -240,20 +239,9 @@ bool VerifyBuffers(const WebMClusterParser::BufferQueue& audio_buffers,
bool VerifyBuffers(const std::unique_ptr<WebMClusterParser>& parser,
const BlockInfo* block_info,
int block_count) {
- const WebMClusterParser::TextBufferQueueMap& text_map =
- parser->GetTextBuffers();
- const WebMClusterParser::BufferQueue* text_buffers;
- const WebMClusterParser::BufferQueue no_text_buffers;
- if (!text_map.empty())
- text_buffers = &(text_map.rbegin()->second);
- else
- text_buffers = &no_text_buffers;
-
- return VerifyBuffers(parser->GetAudioBuffers(),
- parser->GetVideoBuffers(),
- *text_buffers,
- block_info,
- block_count);
+ StreamParser::BufferQueueMap buffers;
+ parser->GetBuffers(&buffers);
+ return VerifyBuffers(buffers, block_info, block_count);
}
bool VerifyTextBuffers(const std::unique_ptr<WebMClusterParser>& parser,
@@ -294,9 +282,9 @@ void VerifyEncryptedBuffer(scoped_refptr<StreamParserBuffer> buffer) {
buffer->decrypt_config()->iv().length());
}
-void AppendToEnd(const WebMClusterParser::BufferQueue& src,
- WebMClusterParser::BufferQueue* dest) {
- for (WebMClusterParser::BufferQueue::const_iterator itr = src.begin();
+void AppendToEnd(const StreamParser::BufferQueue& src,
+ StreamParser::BufferQueue* dest) {
+ for (StreamParser::BufferQueue::const_iterator itr = src.begin();
itr != src.end(); ++itr) {
dest->push_back(*itr);
}
@@ -515,15 +503,12 @@ TEST_F(WebMClusterParserTest, ParseClusterWithMultipleCalls) {
std::unique_ptr<Cluster> cluster(
CreateCluster(0, kDefaultBlockInfo, block_count));
- WebMClusterParser::BufferQueue audio_buffers;
- WebMClusterParser::BufferQueue video_buffers;
- const WebMClusterParser::BufferQueue no_text_buffers;
-
const uint8_t* data = cluster->data();
int size = cluster->size();
int default_parse_size = 3;
int parse_size = std::min(default_parse_size, size);
+ StreamParser::BufferQueueMap buffers;
while (size > 0) {
int result = parser_->Parse(data, parse_size);
ASSERT_GE(result, 0);
@@ -536,17 +521,18 @@ TEST_F(WebMClusterParserTest, ParseClusterWithMultipleCalls) {
continue;
}
- AppendToEnd(parser_->GetAudioBuffers(), &audio_buffers);
- AppendToEnd(parser_->GetVideoBuffers(), &video_buffers);
+ StreamParser::BufferQueueMap bqm;
+ parser_->GetBuffers(&bqm);
+ for (const auto& it : bqm) {
+ AppendToEnd(it.second, &buffers[it.first]);
+ }
parse_size = default_parse_size;
data += result;
size -= result;
}
- ASSERT_TRUE(VerifyBuffers(audio_buffers, video_buffers,
- no_text_buffers, kDefaultBlockInfo,
- block_count));
+ ASSERT_TRUE(VerifyBuffers(buffers, kDefaultBlockInfo, block_count));
}
// Verify that both BlockGroups with the BlockDuration before the Block
@@ -748,8 +734,10 @@ TEST_F(WebMClusterParserTest, ParseEncryptedBlock) {
int result = parser_->Parse(cluster->data(), cluster->size());
EXPECT_EQ(cluster->size(), result);
- ASSERT_EQ(1UL, parser_->GetVideoBuffers().size());
- scoped_refptr<StreamParserBuffer> buffer = parser_->GetVideoBuffers()[0];
+ StreamParser::BufferQueueMap buffers;
+ parser_->GetBuffers(&buffers);
+ EXPECT_EQ(1UL, buffers[kVideoTrackNum].size());
+ scoped_refptr<StreamParserBuffer> buffer = buffers[kVideoTrackNum][0];
VerifyEncryptedBuffer(buffer);
}
@@ -879,8 +867,10 @@ TEST_F(WebMClusterParserTest, ParseWithoutAnyDurationsSimpleBlocks) {
EXPECT_GT(result, 0);
EXPECT_LT(result, cluster1->size());
ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo1, block_count1 - 3));
- EXPECT_EQ(3UL, parser_->GetAudioBuffers().size());
- EXPECT_EQ(1UL, parser_->GetVideoBuffers().size());
+ StreamParser::BufferQueueMap buffers;
+ parser_->GetBuffers(&buffers);
+ EXPECT_EQ(3UL, buffers[kAudioTrackNum].size());
+ EXPECT_EQ(1UL, buffers[kVideoTrackNum].size());
parser_->Reset();
@@ -951,8 +941,10 @@ TEST_F(WebMClusterParserTest, ParseWithoutAnyDurationsBlockGroups) {
EXPECT_GT(result, 0);
EXPECT_LT(result, cluster1->size());
ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo1, block_count1 - 3));
- EXPECT_EQ(3UL, parser_->GetAudioBuffers().size());
- EXPECT_EQ(1UL, parser_->GetVideoBuffers().size());
+ StreamParser::BufferQueueMap buffers;
+ parser_->GetBuffers(&buffers);
+ EXPECT_EQ(3UL, buffers[kAudioTrackNum].size());
+ EXPECT_EQ(1UL, buffers[kVideoTrackNum].size());
parser_->Reset();
« no previous file with comments | « media/formats/webm/webm_cluster_parser.cc ('k') | media/formats/webm/webm_stream_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698