Chromium Code Reviews| 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/bind.h" | 5 #include "base/bind.h" |
| 6 #include "media/base/audio_decoder_config.h" | 6 #include "media/base/audio_decoder_config.h" |
| 7 #include "media/base/decoder_buffer.h" | 7 #include "media/base/decoder_buffer.h" |
| 8 #include "media/base/mock_callback.h" | 8 #include "media/base/mock_callback.h" |
| 9 #include "media/base/mock_demuxer_host.h" | 9 #include "media/base/mock_demuxer_host.h" |
| 10 #include "media/base/test_data_util.h" | 10 #include "media/base/test_data_util.h" |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 248 const uint8* start = data; | 248 const uint8* start = data; |
| 249 const uint8* end = data + length; | 249 const uint8* end = data + length; |
| 250 while (start < end) { | 250 while (start < end) { |
| 251 int64 old_buffered_bytes = buffered_bytes_; | 251 int64 old_buffered_bytes = buffered_bytes_; |
| 252 size_t append_size = std::min(piece_size, | 252 size_t append_size = std::min(piece_size, |
| 253 static_cast<size_t>(end - start)); | 253 static_cast<size_t>(end - start)); |
| 254 if (!AppendData(start, append_size)) | 254 if (!AppendData(start, append_size)) |
| 255 return false; | 255 return false; |
| 256 start += append_size; | 256 start += append_size; |
| 257 | 257 |
| 258 EXPECT_GT(buffered_bytes_, old_buffered_bytes); | 258 EXPECT_GE(buffered_bytes_, old_buffered_bytes); |
|
Ami GONE FROM CHROMIUM
2012/06/18 16:18:31
Why the change? Rounding?
acolwell GONE FROM CHROMIUM
2012/06/19 06:12:34
Some of the appends are smaller than an actual fra
| |
| 259 } | 259 } |
| 260 return true; | 260 return true; |
| 261 } | 261 } |
| 262 | 262 |
| 263 bool AppendInitSegment(bool has_audio, bool has_video, | 263 bool AppendInitSegment(bool has_audio, bool has_video, |
| 264 bool video_content_encoded) { | 264 bool video_content_encoded) { |
| 265 return AppendInitSegment(kSourceId, has_audio, has_video, | 265 return AppendInitSegment(kSourceId, has_audio, has_video, |
| 266 video_content_encoded); | 266 video_content_encoded); |
| 267 } | 267 } |
| 268 | 268 |
| 269 bool AppendInitSegment(const std::string& source_id, | 269 bool AppendInitSegment(const std::string& source_id, |
| 270 bool has_audio, bool has_video, | 270 bool has_audio, bool has_video, |
| 271 bool video_content_encoded) { | 271 bool video_content_encoded) { |
| 272 scoped_array<uint8> info_tracks; | 272 scoped_array<uint8> info_tracks; |
| 273 int info_tracks_size = 0; | 273 int info_tracks_size = 0; |
| 274 CreateInitSegment(has_audio, has_video, video_content_encoded, | 274 CreateInitSegment(has_audio, has_video, video_content_encoded, |
| 275 &info_tracks, &info_tracks_size); | 275 &info_tracks, &info_tracks_size); |
| 276 return AppendData(source_id, info_tracks.get(), info_tracks_size); | 276 return AppendData(source_id, info_tracks.get(), info_tracks_size); |
| 277 } | 277 } |
| 278 | 278 |
| 279 void InitDoneCalled(PipelineStatus expected_status, | 279 void InitDoneCalled(PipelineStatus expected_status, |
| 280 PipelineStatus status) { | 280 PipelineStatus status) { |
| 281 EXPECT_EQ(status, expected_status); | 281 EXPECT_EQ(status, expected_status); |
| 282 } | 282 } |
| 283 | 283 |
| 284 PipelineStatusCB CreateInitDoneCB(const base::TimeDelta& expected_duration, | 284 PipelineStatusCB CreateInitDoneCB(const base::TimeDelta& expected_duration, |
| 285 PipelineStatus expected_status) { | 285 PipelineStatus expected_status) { |
| 286 if (expected_status == PIPELINE_OK) | 286 if (expected_status == PIPELINE_OK) { |
| 287 if (expected_duration != kInfiniteDuration()) | |
| 288 EXPECT_CALL(host_, SetTotalBytes(_)); | |
| 287 EXPECT_CALL(host_, SetDuration(expected_duration)); | 289 EXPECT_CALL(host_, SetDuration(expected_duration)); |
| 290 } | |
| 288 | 291 |
| 289 return base::Bind(&ChunkDemuxerTest::InitDoneCalled, | 292 return base::Bind(&ChunkDemuxerTest::InitDoneCalled, |
| 290 base::Unretained(this), | 293 base::Unretained(this), |
| 291 expected_status); | 294 expected_status); |
| 292 } | 295 } |
| 293 | 296 |
| 294 bool InitDemuxer(bool has_audio, bool has_video, | 297 bool InitDemuxer(bool has_audio, bool has_video, |
| 295 bool video_content_encoded) { | 298 bool video_content_encoded) { |
| 296 PipelineStatus expected_status = | 299 PipelineStatus expected_status = |
| 297 (has_audio || has_video) ? PIPELINE_OK : DEMUXER_ERROR_COULD_NOT_OPEN; | 300 (has_audio || has_video) ? PIPELINE_OK : DEMUXER_ERROR_COULD_NOT_OPEN; |
| (...skipping 1318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1616 NewExpectedStatusCB(PIPELINE_OK)); | 1619 NewExpectedStatusCB(PIPELINE_OK)); |
| 1617 | 1620 |
| 1618 // Generate a cluster to fulfill this seek, where audio timecode begins 25ms | 1621 // Generate a cluster to fulfill this seek, where audio timecode begins 25ms |
| 1619 // after the video. | 1622 // after the video. |
| 1620 scoped_ptr<Cluster> middle_cluster(GenerateCluster(5025, 5000, 8)); | 1623 scoped_ptr<Cluster> middle_cluster(GenerateCluster(5025, 5000, 8)); |
| 1621 ASSERT_TRUE(AppendData(middle_cluster->data(), middle_cluster->size())); | 1624 ASSERT_TRUE(AppendData(middle_cluster->data(), middle_cluster->size())); |
| 1622 GenerateExpectedReads(5025, 5000, 8, audio, video); | 1625 GenerateExpectedReads(5025, 5000, 8, audio, video); |
| 1623 } | 1626 } |
| 1624 | 1627 |
| 1625 } // namespace media | 1628 } // namespace media |
| OLD | NEW |