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

Unified Diff: media/filters/chunk_demuxer_unittest.cc

Issue 346613003: Fix WebMStreamParser to handle Cues between Clusters correctly. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 | « no previous file | media/formats/webm/webm_stream_parser.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/chunk_demuxer_unittest.cc
diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
index 4e000521386472ea9123b961860719ec6f7b0662..2326de2de6600ef7c2c204cccb38b2f1a1d5aae7 100644
--- a/media/filters/chunk_demuxer_unittest.cc
+++ b/media/filters/chunk_demuxer_unittest.cc
@@ -45,6 +45,11 @@ const uint8 kVP8Keyframe[] = {
// WebM Block bytes that represent a VP8 interframe.
const uint8 kVP8Interframe[] = { 0x11, 0x00, 0x00 };
+static const uint8 kCuesHeader[] = {
+ 0x1C, 0x53, 0xBB, 0x6B, // Cues ID
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // cues(size = 0)
+};
+
const int kTracksHeaderSize = sizeof(kTracksHeader);
const int kTracksSizeOffset = 4;
@@ -3453,4 +3458,27 @@ TEST_F(ChunkDemuxerTest, ClusterWithUnknownSize) {
CheckExpectedRanges(kSourceId, "{ [0,115) }");
}
+TEST_F(ChunkDemuxerTest, CuesBetweenClustersWithUnknownSize) {
+ ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
+
+ // Add two clusters separated by Cues in a single Append() call.
+ scoped_ptr<Cluster> cluster = GenerateCluster(0, 0, 4, true);
+ std::vector<uint8> data(cluster->data(), cluster->data() + cluster->size());
+ data.insert(data.end(), kCuesHeader, kCuesHeader + sizeof(kCuesHeader));
+ cluster = GenerateCluster(46, 66, 5, true);
+ data.insert(data.end(), cluster->data(), cluster->data() + cluster->size());
+ AppendData(&*data.begin(), data.size());
+
+ CheckExpectedRanges(kSourceId, "{ [0,115) }");
+}
+
+TEST_F(ChunkDemuxerTest, CuesBetweenClusters) {
+ ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
+
+ AppendCluster(GenerateCluster(0, 0, 4));
+ AppendData(kCuesHeader, sizeof(kCuesHeader));
+ AppendCluster(GenerateCluster(46, 66, 5));
+ CheckExpectedRanges(kSourceId, "{ [0,115) }");
+}
+
} // namespace media
« no previous file with comments | « no previous file | media/formats/webm/webm_stream_parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698