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

Unified Diff: media/base/stream_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/base/stream_parser.cc ('k') | media/filters/frame_processor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/stream_parser_unittest.cc
diff --git a/media/base/stream_parser_unittest.cc b/media/base/stream_parser_unittest.cc
index 4aa96170124b2cdff52949f843cac42140eb967a..21e3715d882a20b1efb40a511ef0da93fa3a9504 100644
--- a/media/base/stream_parser_unittest.cc
+++ b/media/base/stream_parser_unittest.cc
@@ -6,6 +6,7 @@
#include <stdint.h>
#include <algorithm>
+#include <map>
#include <sstream>
#include "base/macros.h"
@@ -17,7 +18,6 @@ namespace media {
typedef StreamParser::TrackId TrackId;
typedef StreamParser::BufferQueue BufferQueue;
-typedef StreamParser::TextBufferQueueMap TextBufferQueueMap;
const int kEnd = -1;
const uint8_t kFakeData[] = {0xFF};
@@ -78,36 +78,32 @@ class StreamParserTest : public testing::Test {
// to |audio_buffers_|. See GenerateBuffers() for |decode_timestamps| format.
void GenerateAudioBuffers(const int* decode_timestamps) {
GenerateBuffers(decode_timestamps, DemuxerStream::AUDIO, kAudioTrackId,
- &audio_buffers_);
+ &buffer_queue_map_[kAudioTrackId]);
}
// Appends test video buffers in the sequence described by |decode_timestamps|
// to |video_buffers_|. See GenerateBuffers() for |decode_timestamps| format.
void GenerateVideoBuffers(const int* decode_timestamps) {
GenerateBuffers(decode_timestamps, DemuxerStream::VIDEO, kVideoTrackId,
- &video_buffers_);
+ &buffer_queue_map_[kVideoTrackId]);
}
// Current tests only need up to two distinct text BufferQueues. This helper
- // conditionally appends buffers to the underlying |text_buffers_a_| and
- // |text_buffers_b_| and conditionally inserts these BufferQueues into
- // |text_map_| keyed by the respective track ID. If |decode_timestamps_{a,b}|
- // is NULL, then the corresponding BufferQueue is neither appended to nor
- // inserted into |text_map_| (though it may previously have been inserted).
+ // conditionally appends buffers to the underlying |buffer_queue_map_| keyed
+ // by the respective track ID. If |decode_timestamps_{a,b}|
+ // is NULL, then the corresponding BufferQueue is not changed at all.
// Note that key collision on map insertion does not replace the previous
// value.
void GenerateTextBuffers(const int* decode_timestamps_a,
const int* decode_timestamps_b) {
if (decode_timestamps_a) {
GenerateBuffers(decode_timestamps_a, DemuxerStream::TEXT, kTextTrackIdA,
- &text_buffers_a_);
- text_map_.insert(std::make_pair(kTextTrackIdA, text_buffers_a_));
+ &buffer_queue_map_[kTextTrackIdA]);
}
if (decode_timestamps_b) {
GenerateBuffers(decode_timestamps_b, DemuxerStream::TEXT, kTextTrackIdB,
- &text_buffers_b_);
- text_map_.insert(std::make_pair(kTextTrackIdB, text_buffers_b_));
+ &buffer_queue_map_[kTextTrackIdB]);
}
}
@@ -176,8 +172,7 @@ class StreamParserTest : public testing::Test {
size_t original_video_in_merged = CountMatchingMergedBuffers(IsVideo);
size_t original_text_in_merged = CountMatchingMergedBuffers(IsText);
- EXPECT_TRUE(MergeBufferQueues(audio_buffers_, video_buffers_, text_map_,
- &merged_buffers_));
+ EXPECT_TRUE(MergeBufferQueues(buffer_queue_map_, &merged_buffers_));
// Verify resulting contents of |merged_buffers| matches |expected|.
EXPECT_EQ(expected,
@@ -193,46 +188,40 @@ class StreamParserTest : public testing::Test {
EXPECT_GE(video_in_merged, original_video_in_merged);
EXPECT_GE(text_in_merged, original_text_in_merged);
- EXPECT_EQ(audio_buffers_.size(),
+ EXPECT_EQ(buffer_queue_map_[kAudioTrackId].size(),
audio_in_merged - original_audio_in_merged);
- EXPECT_EQ(video_buffers_.size(),
+ if (buffer_queue_map_[kAudioTrackId].empty())
+ buffer_queue_map_.erase(kAudioTrackId);
+ EXPECT_EQ(buffer_queue_map_[kVideoTrackId].size(),
video_in_merged - original_video_in_merged);
+ if (buffer_queue_map_[kVideoTrackId].empty())
+ buffer_queue_map_.erase(kVideoTrackId);
size_t expected_text_buffer_count = 0;
- for (TextBufferQueueMap::const_iterator itr = text_map_.begin();
- itr != text_map_.end();
- ++itr) {
- expected_text_buffer_count += itr->second.size();
- }
+ expected_text_buffer_count += buffer_queue_map_[kTextTrackIdA].size();
+ if (buffer_queue_map_[kTextTrackIdA].empty())
+ buffer_queue_map_.erase(kTextTrackIdA);
+ expected_text_buffer_count += buffer_queue_map_[kTextTrackIdB].size();
+ if (buffer_queue_map_[kTextTrackIdB].empty())
+ buffer_queue_map_.erase(kTextTrackIdB);
EXPECT_EQ(expected_text_buffer_count,
text_in_merged - original_text_in_merged);
}
- // Verifies that MergeBufferQueues() of the current |audio_buffers_|,
- // |video_buffers_|, |text_map_|, and |merged_buffers_| returns false.
+ // Verifies that MergeBufferQueues() of the current |buffer_queue_map_| and
+ // |merged_buffers_| returns false.
void VerifyMergeFailure() {
- EXPECT_FALSE(MergeBufferQueues(audio_buffers_, video_buffers_, text_map_,
- &merged_buffers_));
+ EXPECT_FALSE(MergeBufferQueues(buffer_queue_map_, &merged_buffers_));
}
// Helper to allow tests to clear all the input BufferQueues (except
- // |merged_buffers_|) and the TextBufferQueueMap that are used in
+ // |merged_buffers_|) and the BufferQueueMap that are used in
// VerifyMerge{Success/Failure}().
- void ClearQueuesAndTextMapButKeepAnyMergedBuffers() {
- audio_buffers_.clear();
- video_buffers_.clear();
- text_buffers_a_.clear();
- text_buffers_b_.clear();
- text_map_.clear();
- }
+ void ClearBufferQueuesButKeepAnyMergedBuffers() { buffer_queue_map_.clear(); }
private:
- BufferQueue audio_buffers_;
- BufferQueue video_buffers_;
- BufferQueue text_buffers_a_;
- BufferQueue text_buffers_b_;
+ StreamParser::BufferQueueMap buffer_queue_map_;
BufferQueue merged_buffers_;
- TextBufferQueueMap text_map_;
DISALLOW_COPY_AND_ASSIGN(StreamParserTest);
};
@@ -343,7 +332,7 @@ TEST_F(StreamParserTest, MergeBufferQueues_ValidAppendToExistingMerge) {
GenerateTextBuffers(text_timestamps_a, text_timestamps_b);
VerifyMergeSuccess(expected, true);
- ClearQueuesAndTextMapButKeepAnyMergedBuffers();
+ ClearBufferQueuesButKeepAnyMergedBuffers();
expected = "A0:100 V1:101 T2:102 V1:103 T3:104 A0:105 V1:106 T2:107 "
"A0:107 V1:111 T2:112 V1:113 T3:114 A0:115 V1:116 T2:117";
@@ -371,7 +360,7 @@ TEST_F(StreamParserTest, MergeBufferQueues_InvalidAppendToExistingMerge) {
// Appending empty buffers to pre-existing merge result should succeed and not
// change the existing result.
- ClearQueuesAndTextMapButKeepAnyMergedBuffers();
+ ClearBufferQueuesButKeepAnyMergedBuffers();
VerifyMergeSuccess(expected, true);
// But appending something with a lower timestamp than the last timestamp
« no previous file with comments | « media/base/stream_parser.cc ('k') | media/filters/frame_processor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698