| Index: media/filters/chunk_demuxer_unittest.cc
|
| diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
|
| index cc3ab630c75f530838ec481746da0cf72e3864c7..7df159e1389e7a14782814d6fd040969fad38c72 100644
|
| --- a/media/filters/chunk_demuxer_unittest.cc
|
| +++ b/media/filters/chunk_demuxer_unittest.cc
|
| @@ -37,7 +37,7 @@ const uint8 kTracksHeader[] = {
|
| 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // tracks(size = 0)
|
| };
|
|
|
| -// WebM Block bytes that represent a VP8 keyframe.
|
| +// WebM Block bytes that represent a VP8 key frame.
|
| const uint8 kVP8Keyframe[] = {
|
| 0x010, 0x00, 0x00, 0x9d, 0x01, 0x2a, 0x00, 0x10, 0x00, 0x10, 0x00
|
| };
|
| @@ -429,9 +429,9 @@ class ChunkDemuxerTest : public ::testing::Test {
|
| // |block_descriptions| - A space delimited string of block info that
|
| // is used to populate |blocks|. Each block info has a timestamp in
|
| // milliseconds and optionally followed by a 'K' to indicate that a block
|
| - // should be marked as a keyframe. For example "0K 30 60" should populate
|
| - // |blocks| with 3 BlockInfo objects: a keyframe with timestamp 0 and 2
|
| - // non-keyframes at 30ms and 60ms.
|
| + // should be marked as a key frame. For example "0K 30 60" should populate
|
| + // |blocks| with 3 BlockInfo objects: a key frame with timestamp 0 and 2
|
| + // non-key-frames at 30ms and 60ms.
|
| void ParseBlockDescriptions(int track_number,
|
| const std::string block_descriptions,
|
| std::vector<BlockInfo>* blocks) {
|
| @@ -457,8 +457,8 @@ class ChunkDemuxerTest : public ::testing::Test {
|
| block_info.duration = kTextBlockDuration;
|
| ASSERT_EQ(kWebMFlagKeyframe, block_info.flags)
|
| << "Text block with timestamp " << block_info.timestamp_in_ms
|
| - << " was not marked as a keyframe."
|
| - << " All text blocks must be keyframes";
|
| + << " was not marked as a key frame."
|
| + << " All text blocks must be key frames";
|
| }
|
|
|
| if (track_number == kAudioTrackNum)
|
| @@ -841,7 +841,7 @@ class ChunkDemuxerTest : public ::testing::Test {
|
| int video_timecode = first_video_timecode;
|
|
|
| // Create simple blocks for everything except the last 2 blocks.
|
| - // The first video frame must be a keyframe.
|
| + // The first video frame must be a key frame.
|
| uint8 video_flag = kWebMFlagKeyframe;
|
| for (int i = 0; i < block_count - 2; i++) {
|
| if (audio_timecode <= video_timecode) {
|
| @@ -1074,6 +1074,9 @@ class ChunkDemuxerTest : public ::testing::Test {
|
| ss << " ";
|
| ss << buffer->timestamp().InMilliseconds();
|
|
|
| + if (buffer->is_key_frame())
|
| + ss << "K";
|
| +
|
| // Handle preroll buffers.
|
| if (EndsWith(timestamps[i], "P", true)) {
|
| ASSERT_EQ(kInfiniteDuration(), buffer->discard_padding().first);
|
| @@ -1384,15 +1387,15 @@ TEST_F(ChunkDemuxerTest, SingleTextTrackIdChange) {
|
| MuxedStreamInfo(kAlternateTextTrackNum, "45K"));
|
|
|
| CheckExpectedRanges(kSourceId, "{ [0,92) }");
|
| - CheckExpectedBuffers(audio_stream, "0 23 46 69");
|
| - CheckExpectedBuffers(video_stream, "0 30 60");
|
| - CheckExpectedBuffers(text_stream, "10 45");
|
| + CheckExpectedBuffers(audio_stream, "0K 23K 46K 69K");
|
| + CheckExpectedBuffers(video_stream, "0K 30 60K");
|
| + CheckExpectedBuffers(text_stream, "10K 45K");
|
|
|
| ShutdownDemuxer();
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, InitSegmentSetsNeedRandomAccessPointFlag) {
|
| - // Tests that non-keyframes following an init segment are allowed
|
| + // Tests that non-key-frames following an init segment are allowed
|
| // and dropped, as expected if the initialization segment received
|
| // algorithm correctly sets the needs random access point flag to true for all
|
| // track buffers. Note that the first initialization segment is insufficient
|
| @@ -1422,9 +1425,9 @@ TEST_F(ChunkDemuxerTest, InitSegmentSetsNeedRandomAccessPointFlag) {
|
| MuxedStreamInfo(kTextTrackNum, "80K 90K"));
|
| CheckExpectedRanges(kSourceId, "{ [23,92) }");
|
|
|
| - CheckExpectedBuffers(audio_stream, "23 46 69");
|
| - CheckExpectedBuffers(video_stream, "30 90");
|
| - CheckExpectedBuffers(text_stream, "25 40 80 90");
|
| + CheckExpectedBuffers(audio_stream, "23K 46K 69K");
|
| + CheckExpectedBuffers(video_stream, "30K 90K");
|
| + CheckExpectedBuffers(text_stream, "25K 40K 80K 90K");
|
| }
|
|
|
| // Make sure that the demuxer reports an error if Shutdown()
|
| @@ -3409,13 +3412,13 @@ TEST_F(ChunkDemuxerTest, AppendWindow_Video) {
|
| // in the buffer. Also verify that buffers that start inside the
|
| // window and extend beyond the end of the window are not included.
|
| CheckExpectedRanges(kSourceId, "{ [120,270) }");
|
| - CheckExpectedBuffers(stream, "120 150 180 210 240");
|
| + CheckExpectedBuffers(stream, "120K 150 180 210 240K");
|
|
|
| // Extend the append window to [50,650).
|
| append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(650);
|
|
|
| // Append more data and verify that adding buffers start at the next
|
| - // keyframe.
|
| + // key frame.
|
| AppendSingleStreamCluster(kSourceId, kVideoTrackNum,
|
| "360 390 420K 450 480 510 540K 570 600 630K");
|
| CheckExpectedRanges(kSourceId, "{ [120,270) [420,630) }");
|
| @@ -3444,7 +3447,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_Audio) {
|
|
|
| // The "50P" buffer is the "0" buffer marked for complete discard. The next
|
| // "50" buffer is the "30" buffer marked with 20ms of start discard.
|
| - CheckExpectedBuffers(stream, "50P 50 60 90 120 150 180 210 240");
|
| + CheckExpectedBuffers(stream, "50KP 50K 60K 90K 120K 150K 180K 210K 240K");
|
|
|
| // Extend the append window to [50,650).
|
| append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(650);
|
| @@ -3491,7 +3494,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_WebMFile_AudioOnly) {
|
| AppendDataInPieces(buffer->data(), buffer->data_size(), 128);
|
|
|
| DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::AUDIO);
|
| - CheckExpectedBuffers(stream, "50P 50 62 86 109 122 125 128");
|
| + CheckExpectedBuffers(stream, "50KP 50K 62K 86K 109K 122K 125K 128K");
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, AppendWindow_AudioConfigUpdateRemovesPreroll) {
|
| @@ -3533,7 +3536,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_AudioConfigUpdateRemovesPreroll) {
|
| Seek(duration_1);
|
| ExpectConfigChanged(DemuxerStream::AUDIO);
|
| ASSERT_FALSE(config_1.Matches(stream->audio_decoder_config()));
|
| - CheckExpectedBuffers(stream, "2746 2767 2789 2810");
|
| + CheckExpectedBuffers(stream, "2746K 2767K 2789K 2810K");
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, AppendWindow_Text) {
|
| @@ -3558,8 +3561,8 @@ TEST_F(ChunkDemuxerTest, AppendWindow_Text) {
|
| // in the buffer. Also verify that cues that extend beyond the
|
| // window are not included.
|
| CheckExpectedRanges(kSourceId, "{ [100,270) }");
|
| - CheckExpectedBuffers(video_stream, "120 150 180 210 240");
|
| - CheckExpectedBuffers(text_stream, "100");
|
| + CheckExpectedBuffers(video_stream, "120K 150 180 210 240K");
|
| + CheckExpectedBuffers(text_stream, "100K");
|
|
|
| // Extend the append window to [20,650).
|
| append_window_end_for_next_append_ = base::TimeDelta::FromMilliseconds(650);
|
| @@ -3573,8 +3576,8 @@ TEST_F(ChunkDemuxerTest, AppendWindow_Text) {
|
|
|
| // Seek to the new range and verify that the expected buffers are returned.
|
| Seek(base::TimeDelta::FromMilliseconds(420));
|
| - CheckExpectedBuffers(video_stream, "420 450 480 510 540 570 600");
|
| - CheckExpectedBuffers(text_stream, "400 500");
|
| + CheckExpectedBuffers(video_stream, "420K 450 480 510 540K 570 600");
|
| + CheckExpectedBuffers(text_stream, "400K 500K");
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, StartWaitingForSeekAfterParseError) {
|
| @@ -3599,9 +3602,9 @@ TEST_F(ChunkDemuxerTest, Remove_AudioVideoText) {
|
| MuxedStreamInfo(kVideoTrackNum, "0K 30 60 90 120K 150 180"),
|
| MuxedStreamInfo(kTextTrackNum, "0K 100K 200K"));
|
|
|
| - CheckExpectedBuffers(audio_stream, "0 20 40 60 80 100 120 140");
|
| - CheckExpectedBuffers(video_stream, "0 30 60 90 120 150 180");
|
| - CheckExpectedBuffers(text_stream, "0 100 200");
|
| + CheckExpectedBuffers(audio_stream, "0K 20K 40K 60K 80K 100K 120K 140K");
|
| + CheckExpectedBuffers(video_stream, "0K 30 60 90 120K 150 180");
|
| + CheckExpectedBuffers(text_stream, "0K 100K 200K");
|
|
|
| // Remove the buffers that were added.
|
| demuxer_->Remove(kSourceId, base::TimeDelta(),
|
| @@ -3618,9 +3621,9 @@ TEST_F(ChunkDemuxerTest, Remove_AudioVideoText) {
|
| MuxedStreamInfo(kTextTrackNum, "1K 101K 201K"));
|
|
|
| Seek(base::TimeDelta());
|
| - CheckExpectedBuffers(audio_stream, "1 21 41 61 81 101 121 141");
|
| - CheckExpectedBuffers(video_stream, "1 31 61 91 121 151 181");
|
| - CheckExpectedBuffers(text_stream, "1 101 201");
|
| + CheckExpectedBuffers(audio_stream, "1K 21K 41K 61K 81K 101K 121K 141K");
|
| + CheckExpectedBuffers(video_stream, "1K 31 61 91 121K 151 181");
|
| + CheckExpectedBuffers(text_stream, "1K 101K 201K");
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, Remove_StartAtDuration) {
|
| @@ -3639,7 +3642,7 @@ TEST_F(ChunkDemuxerTest, Remove_StartAtDuration) {
|
| "0K 20K 40K 60K 80K 100K 120K 140K");
|
|
|
| CheckExpectedRanges(kSourceId, "{ [0,160) }");
|
| - CheckExpectedBuffers(audio_stream, "0 20 40 60 80 100 120 140");
|
| + CheckExpectedBuffers(audio_stream, "0K 20K 40K 60K 80K 100K 120K 140K");
|
|
|
| demuxer_->Remove(kSourceId,
|
| base::TimeDelta::FromSecondsD(demuxer_->GetDuration()),
|
| @@ -3647,7 +3650,7 @@ TEST_F(ChunkDemuxerTest, Remove_StartAtDuration) {
|
|
|
| Seek(base::TimeDelta());
|
| CheckExpectedRanges(kSourceId, "{ [0,160) }");
|
| - CheckExpectedBuffers(audio_stream, "0 20 40 60 80 100 120 140");
|
| + CheckExpectedBuffers(audio_stream, "0K 20K 40K 60K 80K 100K 120K 140K");
|
| }
|
|
|
| // Verifies that a Seek() will complete without text cues for
|
| @@ -3687,8 +3690,8 @@ TEST_F(ChunkDemuxerTest, SeekCompletesWithoutTextCues) {
|
| EXPECT_FALSE(text_read_done);
|
|
|
| // Read some audio & video buffers to further verify seek completion.
|
| - CheckExpectedBuffers(audio_stream, "120 140");
|
| - CheckExpectedBuffers(video_stream, "120 150");
|
| + CheckExpectedBuffers(audio_stream, "120K 140K");
|
| + CheckExpectedBuffers(video_stream, "120K 150");
|
|
|
| EXPECT_FALSE(text_read_done);
|
|
|
| @@ -3704,10 +3707,10 @@ TEST_F(ChunkDemuxerTest, SeekCompletesWithoutTextCues) {
|
|
|
| // NOTE: we start at 275 here because the buffer at 225 was returned
|
| // to the pending read initiated above.
|
| - CheckExpectedBuffers(text_stream, "275 325");
|
| + CheckExpectedBuffers(text_stream, "275K 325K");
|
|
|
| // Verify that audio & video streams continue to return expected values.
|
| - CheckExpectedBuffers(audio_stream, "160 180");
|
| + CheckExpectedBuffers(audio_stream, "160K 180K");
|
| CheckExpectedBuffers(video_stream, "180 210");
|
| }
|
|
|
|
|