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

Unified Diff: media/base/stream_parser.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.h ('k') | media/base/stream_parser_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/stream_parser.cc
diff --git a/media/base/stream_parser.cc b/media/base/stream_parser.cc
index 9f3119b33b004e0eb27366d223595587d35e7473..78fff1a173ff697e4b7b11b28a246890fb97077d 100644
--- a/media/base/stream_parser.cc
+++ b/media/base/stream_parser.cc
@@ -111,24 +111,25 @@ static bool MergeBufferQueuesInternal(
}
}
-bool MergeBufferQueues(const StreamParser::BufferQueue& audio_buffers,
- const StreamParser::BufferQueue& video_buffers,
- const StreamParser::TextBufferQueueMap& text_buffers,
+bool MergeBufferQueues(const StreamParser::BufferQueueMap& buffer_queue_map,
StreamParser::BufferQueue* merged_buffers) {
DCHECK(merged_buffers);
// Prepare vector containing pointers to any provided non-empty buffer queues.
+
+ // Append audio buffer queues first, before all other types, since
+ // FrameProcessorTest.AudioVideo_Discontinuity currently depends on audio
+ // buffers being processed first.
std::vector<const StreamParser::BufferQueue*> buffer_queues;
- if (!audio_buffers.empty())
- buffer_queues.push_back(&audio_buffers);
- if (!video_buffers.empty())
- buffer_queues.push_back(&video_buffers);
- for (StreamParser::TextBufferQueueMap::const_iterator map_itr =
- text_buffers.begin();
- map_itr != text_buffers.end();
- map_itr++) {
- if (!map_itr->second.empty())
- buffer_queues.push_back(&(map_itr->second));
+ for (const auto& it : buffer_queue_map) {
+ DCHECK(!it.second.empty());
+ if (it.second[0]->type() == DemuxerStream::AUDIO)
+ buffer_queues.push_back(&it.second);
+ }
+ for (const auto& it : buffer_queue_map) {
+ DCHECK(!it.second.empty());
+ if (it.second[0]->type() != DemuxerStream::AUDIO)
+ buffer_queues.push_back(&it.second);
}
// Do the merge.
« no previous file with comments | « media/base/stream_parser.h ('k') | media/base/stream_parser_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698