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 |