OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include <cstdlib> | 6 #include <cstdlib> |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 | 312 |
313 parser_.reset(CreateParserWithDefaultDurationsAndOptionalTextTracks( | 313 parser_.reset(CreateParserWithDefaultDurationsAndOptionalTextTracks( |
314 default_audio_duration, default_video_duration)); | 314 default_audio_duration, default_video_duration)); |
315 } | 315 } |
316 | 316 |
317 // Helper that hard-codes some non-varying constructor parameters. | 317 // Helper that hard-codes some non-varying constructor parameters. |
318 WebMClusterParser* CreateParserHelper( | 318 WebMClusterParser* CreateParserHelper( |
319 base::TimeDelta audio_default_duration, | 319 base::TimeDelta audio_default_duration, |
320 base::TimeDelta video_default_duration, | 320 base::TimeDelta video_default_duration, |
321 const WebMTracksParser::TextTracks& text_tracks, | 321 const WebMTracksParser::TextTracks& text_tracks, |
322 const std::set<int64>& ignored_tracks, | 322 const std::set<int64_t>& ignored_tracks, |
323 const std::string& audio_encryption_key_id, | 323 const std::string& audio_encryption_key_id, |
324 const std::string& video_encryption_key_id, | 324 const std::string& video_encryption_key_id, |
325 const AudioCodec audio_codec) { | 325 const AudioCodec audio_codec) { |
326 return new WebMClusterParser( | 326 return new WebMClusterParser( |
327 kTimecodeScale, kAudioTrackNum, audio_default_duration, kVideoTrackNum, | 327 kTimecodeScale, kAudioTrackNum, audio_default_duration, kVideoTrackNum, |
328 video_default_duration, text_tracks, ignored_tracks, | 328 video_default_duration, text_tracks, ignored_tracks, |
329 audio_encryption_key_id, video_encryption_key_id, audio_codec, | 329 audio_encryption_key_id, video_encryption_key_id, audio_codec, |
330 media_log_); | 330 media_log_); |
331 } | 331 } |
332 | 332 |
333 // Create a default version of the parser for test. | 333 // Create a default version of the parser for test. |
334 WebMClusterParser* CreateDefaultParser() { | 334 WebMClusterParser* CreateDefaultParser() { |
335 return CreateParserHelper(kNoTimestamp(), kNoTimestamp(), TextTracks(), | 335 return CreateParserHelper(kNoTimestamp(), kNoTimestamp(), TextTracks(), |
336 std::set<int64>(), std::string(), std::string(), | 336 std::set<int64_t>(), std::string(), std::string(), |
337 kUnknownAudioCodec); | 337 kUnknownAudioCodec); |
338 } | 338 } |
339 | 339 |
340 // Create a parser for test with custom audio and video default durations, and | 340 // Create a parser for test with custom audio and video default durations, and |
341 // optionally custom text tracks. | 341 // optionally custom text tracks. |
342 WebMClusterParser* CreateParserWithDefaultDurationsAndOptionalTextTracks( | 342 WebMClusterParser* CreateParserWithDefaultDurationsAndOptionalTextTracks( |
343 base::TimeDelta audio_default_duration, | 343 base::TimeDelta audio_default_duration, |
344 base::TimeDelta video_default_duration, | 344 base::TimeDelta video_default_duration, |
345 const WebMTracksParser::TextTracks& text_tracks = TextTracks()) { | 345 const WebMTracksParser::TextTracks& text_tracks = TextTracks()) { |
346 return CreateParserHelper(audio_default_duration, video_default_duration, | 346 return CreateParserHelper(audio_default_duration, video_default_duration, |
347 text_tracks, std::set<int64>(), std::string(), | 347 text_tracks, std::set<int64_t>(), std::string(), |
348 std::string(), kUnknownAudioCodec); | 348 std::string(), kUnknownAudioCodec); |
349 } | 349 } |
350 | 350 |
351 // Create a parser for test with custom ignored tracks. | 351 // Create a parser for test with custom ignored tracks. |
352 WebMClusterParser* CreateParserWithIgnoredTracks( | 352 WebMClusterParser* CreateParserWithIgnoredTracks( |
353 std::set<int64>& ignored_tracks) { | 353 std::set<int64_t>& ignored_tracks) { |
354 return CreateParserHelper(kNoTimestamp(), kNoTimestamp(), TextTracks(), | 354 return CreateParserHelper(kNoTimestamp(), kNoTimestamp(), TextTracks(), |
355 ignored_tracks, std::string(), std::string(), | 355 ignored_tracks, std::string(), std::string(), |
356 kUnknownAudioCodec); | 356 kUnknownAudioCodec); |
357 } | 357 } |
358 | 358 |
359 // Create a parser for test with custom encryption key ids and audio codec. | 359 // Create a parser for test with custom encryption key ids and audio codec. |
360 WebMClusterParser* CreateParserWithKeyIdsAndAudioCodec( | 360 WebMClusterParser* CreateParserWithKeyIdsAndAudioCodec( |
361 const std::string& audio_encryption_key_id, | 361 const std::string& audio_encryption_key_id, |
362 const std::string& video_encryption_key_id, | 362 const std::string& video_encryption_key_id, |
363 const AudioCodec audio_codec) { | 363 const AudioCodec audio_codec) { |
364 return CreateParserHelper(kNoTimestamp(), kNoTimestamp(), TextTracks(), | 364 return CreateParserHelper(kNoTimestamp(), kNoTimestamp(), TextTracks(), |
365 std::set<int64>(), audio_encryption_key_id, | 365 std::set<int64_t>(), audio_encryption_key_id, |
366 video_encryption_key_id, audio_codec); | 366 video_encryption_key_id, audio_codec); |
367 } | 367 } |
368 | 368 |
369 scoped_refptr<StrictMock<MockMediaLog>> media_log_; | 369 scoped_refptr<StrictMock<MockMediaLog>> media_log_; |
370 scoped_ptr<WebMClusterParser> parser_; | 370 scoped_ptr<WebMClusterParser> parser_; |
371 | 371 |
372 private: | 372 private: |
373 DISALLOW_COPY_AND_ASSIGN(WebMClusterParserTest); | 373 DISALLOW_COPY_AND_ASSIGN(WebMClusterParserTest); |
374 }; | 374 }; |
375 | 375 |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 }; | 572 }; |
573 int block_count = arraysize(kBlockInfo); | 573 int block_count = arraysize(kBlockInfo); |
574 scoped_ptr<Cluster> cluster(CreateCluster(0, kBlockInfo, block_count)); | 574 scoped_ptr<Cluster> cluster(CreateCluster(0, kBlockInfo, block_count)); |
575 | 575 |
576 int result = parser_->Parse(cluster->data(), cluster->size()); | 576 int result = parser_->Parse(cluster->data(), cluster->size()); |
577 EXPECT_EQ(cluster->size(), result); | 577 EXPECT_EQ(cluster->size(), result); |
578 ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count)); | 578 ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count)); |
579 } | 579 } |
580 | 580 |
581 TEST_F(WebMClusterParserTest, IgnoredTracks) { | 581 TEST_F(WebMClusterParserTest, IgnoredTracks) { |
582 std::set<int64> ignored_tracks; | 582 std::set<int64_t> ignored_tracks; |
583 ignored_tracks.insert(kTextTrackNum); | 583 ignored_tracks.insert(kTextTrackNum); |
584 | 584 |
585 parser_.reset(CreateParserWithIgnoredTracks(ignored_tracks)); | 585 parser_.reset(CreateParserWithIgnoredTracks(ignored_tracks)); |
586 | 586 |
587 const BlockInfo kInputBlockInfo[] = { | 587 const BlockInfo kInputBlockInfo[] = { |
588 {kAudioTrackNum, 0, 23, true, NULL, 0}, | 588 {kAudioTrackNum, 0, 23, true, NULL, 0}, |
589 {kAudioTrackNum, 23, 23, true, NULL, 0}, | 589 {kAudioTrackNum, 23, 23, true, NULL, 0}, |
590 {kVideoTrackNum, 33, 34, true, NULL, 0}, | 590 {kVideoTrackNum, 33, 34, true, NULL, 0}, |
591 {kTextTrackNum, 33, 99, true, NULL, 0}, | 591 {kTextTrackNum, 33, 99, true, NULL, 0}, |
592 {kAudioTrackNum, 46, 23, true, NULL, 0}, | 592 {kAudioTrackNum, 46, 23, true, NULL, 0}, |
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1143 int block_count = arraysize(kBlockInfo); | 1143 int block_count = arraysize(kBlockInfo); |
1144 scoped_ptr<Cluster> cluster(CreateCluster(0, kBlockInfo, block_count)); | 1144 scoped_ptr<Cluster> cluster(CreateCluster(0, kBlockInfo, block_count)); |
1145 int result = parser_->Parse(cluster->data(), cluster->size()); | 1145 int result = parser_->Parse(cluster->data(), cluster->size()); |
1146 EXPECT_EQ(cluster->size(), result); | 1146 EXPECT_EQ(cluster->size(), result); |
1147 | 1147 |
1148 // Will verify that duration of buffer matches that of BlockDuration. | 1148 // Will verify that duration of buffer matches that of BlockDuration. |
1149 ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count)); | 1149 ASSERT_TRUE(VerifyBuffers(parser_, kBlockInfo, block_count)); |
1150 } | 1150 } |
1151 | 1151 |
1152 } // namespace media | 1152 } // namespace media |
OLD | NEW |