| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/string_split.h" | 10 #include "base/strings/string_split.h" |
| 11 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
| 12 #include "media/base/audio_decoder_config.h" | 12 #include "media/base/audio_decoder_config.h" |
| 13 #include "media/base/decoder_buffer.h" | 13 #include "media/base/decoder_buffer.h" |
| 14 #include "media/base/decrypt_config.h" | 14 #include "media/base/decrypt_config.h" |
| 15 #include "media/base/media_log.h" |
| 15 #include "media/base/mock_demuxer_host.h" | 16 #include "media/base/mock_demuxer_host.h" |
| 16 #include "media/base/test_data_util.h" | 17 #include "media/base/test_data_util.h" |
| 17 #include "media/base/test_helpers.h" | 18 #include "media/base/test_helpers.h" |
| 18 #include "media/filters/chunk_demuxer.h" | 19 #include "media/filters/chunk_demuxer.h" |
| 19 #include "media/formats/webm/cluster_builder.h" | 20 #include "media/formats/webm/cluster_builder.h" |
| 20 #include "media/formats/webm/webm_constants.h" | 21 #include "media/formats/webm/webm_constants.h" |
| 21 #include "media/formats/webm/webm_crypto_helpers.h" | 22 #include "media/formats/webm/webm_crypto_helpers.h" |
| 22 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
| 23 | 24 |
| 24 using ::testing::AnyNumber; | 25 using ::testing::AnyNumber; |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 EXPECT_EQ(status, DemuxerStream::kOk); | 135 EXPECT_EQ(status, DemuxerStream::kOk); |
| 135 EXPECT_TRUE(buffer->end_of_stream()); | 136 EXPECT_TRUE(buffer->end_of_stream()); |
| 136 *called = true; | 137 *called = true; |
| 137 } | 138 } |
| 138 | 139 |
| 139 static void OnSeekDone_OKExpected(bool* called, PipelineStatus status) { | 140 static void OnSeekDone_OKExpected(bool* called, PipelineStatus status) { |
| 140 EXPECT_EQ(status, PIPELINE_OK); | 141 EXPECT_EQ(status, PIPELINE_OK); |
| 141 *called = true; | 142 *called = true; |
| 142 } | 143 } |
| 143 | 144 |
| 144 static void LogFunc(const std::string& str) { DVLOG(1) << str; } | |
| 145 | |
| 146 class ChunkDemuxerTest : public ::testing::Test { | 145 class ChunkDemuxerTest : public ::testing::Test { |
| 147 protected: | 146 protected: |
| 148 enum CodecsIndex { | 147 enum CodecsIndex { |
| 149 AUDIO, | 148 AUDIO, |
| 150 VIDEO, | 149 VIDEO, |
| 151 MAX_CODECS_INDEX | 150 MAX_CODECS_INDEX |
| 152 }; | 151 }; |
| 153 | 152 |
| 154 // Default cluster to append first for simple tests. | 153 // Default cluster to append first for simple tests. |
| 155 scoped_ptr<Cluster> kDefaultFirstCluster() { | 154 scoped_ptr<Cluster> kDefaultFirstCluster() { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 172 base::Unretained(this)); | 171 base::Unretained(this)); |
| 173 CreateNewDemuxer(); | 172 CreateNewDemuxer(); |
| 174 } | 173 } |
| 175 | 174 |
| 176 void CreateNewDemuxer() { | 175 void CreateNewDemuxer() { |
| 177 base::Closure open_cb = | 176 base::Closure open_cb = |
| 178 base::Bind(&ChunkDemuxerTest::DemuxerOpened, base::Unretained(this)); | 177 base::Bind(&ChunkDemuxerTest::DemuxerOpened, base::Unretained(this)); |
| 179 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = base::Bind( | 178 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = base::Bind( |
| 180 &ChunkDemuxerTest::OnEncryptedMediaInitData, base::Unretained(this)); | 179 &ChunkDemuxerTest::OnEncryptedMediaInitData, base::Unretained(this)); |
| 181 demuxer_.reset(new ChunkDemuxer( | 180 demuxer_.reset(new ChunkDemuxer( |
| 182 open_cb, encrypted_media_init_data_cb, base::Bind(&LogFunc), | 181 open_cb, encrypted_media_init_data_cb, base::Bind(&AddLogEntryForTest), |
| 183 scoped_refptr<MediaLog>(new MediaLog()), true)); | 182 scoped_refptr<MediaLog>(new MediaLog()), true)); |
| 184 } | 183 } |
| 185 | 184 |
| 186 virtual ~ChunkDemuxerTest() { | 185 virtual ~ChunkDemuxerTest() { |
| 187 ShutdownDemuxer(); | 186 ShutdownDemuxer(); |
| 188 } | 187 } |
| 189 | 188 |
| 190 void CreateInitSegment(int stream_flags, | 189 void CreateInitSegment(int stream_flags, |
| 191 bool is_audio_encrypted, | 190 bool is_audio_encrypted, |
| 192 bool is_video_encrypted, | 191 bool is_video_encrypted, |
| (...skipping 3557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3750 TEST_F(ChunkDemuxerTest, CuesBetweenClusters) { | 3749 TEST_F(ChunkDemuxerTest, CuesBetweenClusters) { |
| 3751 ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); | 3750 ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
| 3752 | 3751 |
| 3753 AppendCluster(GenerateCluster(0, 0, 4)); | 3752 AppendCluster(GenerateCluster(0, 0, 4)); |
| 3754 AppendData(kCuesHeader, sizeof(kCuesHeader)); | 3753 AppendData(kCuesHeader, sizeof(kCuesHeader)); |
| 3755 AppendCluster(GenerateCluster(46, 66, 5)); | 3754 AppendCluster(GenerateCluster(46, 66, 5)); |
| 3756 CheckExpectedRanges(kSourceId, "{ [0,115) }"); | 3755 CheckExpectedRanges(kSourceId, "{ [0,115) }"); |
| 3757 } | 3756 } |
| 3758 | 3757 |
| 3759 } // namespace media | 3758 } // namespace media |
| OLD | NEW |