| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/logging.h" | 6 #include "base/logging.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "media/mp4/box_definitions.h" | 8 #include "media/mp4/box_definitions.h" |
| 9 #include "media/mp4/rcheck.h" | 9 #include "media/mp4/rcheck.h" |
| 10 #include "media/mp4/track_run_iterator.h" | 10 #include "media/mp4/track_run_iterator.h" |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 moof.tracks[1].header.default_sample_flags = | 244 moof.tracks[1].header.default_sample_flags = |
| 245 kSampleIsDifferenceSampleFlagMask; | 245 kSampleIsDifferenceSampleFlagMask; |
| 246 moof.tracks[1].runs[0].sample_flags.resize(1); | 246 moof.tracks[1].runs[0].sample_flags.resize(1); |
| 247 ASSERT_TRUE(iter_->Init(moof)); | 247 ASSERT_TRUE(iter_->Init(moof)); |
| 248 iter_->AdvanceRun(); | 248 iter_->AdvanceRun(); |
| 249 EXPECT_TRUE(iter_->is_keyframe()); | 249 EXPECT_TRUE(iter_->is_keyframe()); |
| 250 iter_->AdvanceSample(); | 250 iter_->AdvanceSample(); |
| 251 EXPECT_FALSE(iter_->is_keyframe()); | 251 EXPECT_FALSE(iter_->is_keyframe()); |
| 252 } | 252 } |
| 253 | 253 |
| 254 TEST_F(TrackRunIteratorTest, MinDecodeTest) { | |
| 255 iter_.reset(new TrackRunIterator(&moov_, log_cb_)); | |
| 256 MovieFragment moof = CreateFragment(); | |
| 257 moof.tracks[0].decode_time.decode_time = kAudioScale; | |
| 258 ASSERT_TRUE(iter_->Init(moof)); | |
| 259 EXPECT_EQ(TimeDeltaFromRational(moof.tracks[1].decode_time.decode_time, | |
| 260 kVideoScale), | |
| 261 iter_->GetMinDecodeTimestamp()); | |
| 262 } | |
| 263 | |
| 264 TEST_F(TrackRunIteratorTest, ReorderingTest) { | 254 TEST_F(TrackRunIteratorTest, ReorderingTest) { |
| 265 // Test frame reordering and edit list support. The frames have the following | 255 // Test frame reordering and edit list support. The frames have the following |
| 266 // decode timestamps: | 256 // decode timestamps: |
| 267 // | 257 // |
| 268 // 0ms 40ms 120ms 240ms | 258 // 0ms 40ms 120ms 240ms |
| 269 // | 0 | 1 - | 2 - - | | 259 // | 0 | 1 - | 2 - - | |
| 270 // | 260 // |
| 271 // ...and these composition timestamps, after edit list adjustment: | 261 // ...and these composition timestamps, after edit list adjustment: |
| 272 // | 262 // |
| 273 // 0ms 40ms 160ms 240ms | 263 // 0ms 40ms 160ms 240ms |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 EXPECT_EQ(iter_->track_id(), 1u); | 428 EXPECT_EQ(iter_->track_id(), 1u); |
| 439 EXPECT_EQ(iter_->aux_info_offset(), 201); | 429 EXPECT_EQ(iter_->aux_info_offset(), 201); |
| 440 EXPECT_EQ(iter_->sample_offset(), 10000); | 430 EXPECT_EQ(iter_->sample_offset(), 10000); |
| 441 EXPECT_EQ(iter_->GetMaxClearOffset(), 201); | 431 EXPECT_EQ(iter_->GetMaxClearOffset(), 201); |
| 442 EXPECT_TRUE(iter_->CacheAuxInfo(kAuxInfo, arraysize(kAuxInfo))); | 432 EXPECT_TRUE(iter_->CacheAuxInfo(kAuxInfo, arraysize(kAuxInfo))); |
| 443 EXPECT_EQ(iter_->GetMaxClearOffset(), 10000); | 433 EXPECT_EQ(iter_->GetMaxClearOffset(), 10000); |
| 444 } | 434 } |
| 445 | 435 |
| 446 } // namespace mp4 | 436 } // namespace mp4 |
| 447 } // namespace media | 437 } // namespace media |
| OLD | NEW |