OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "media/blink/multibuffer_data_source.h" | 5 #include "media/blink/multibuffer_data_source.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
9 #include "base/location.h" | 11 #include "base/location.h" |
10 #include "base/macros.h" | 12 #include "base/macros.h" |
11 #include "base/single_thread_task_runner.h" | 13 #include "base/single_thread_task_runner.h" |
12 #include "media/base/media_log.h" | 14 #include "media/base/media_log.h" |
13 #include "media/blink/multibuffer_reader.h" | 15 #include "media/blink/multibuffer_reader.h" |
14 #include "net/base/net_errors.h" | 16 #include "net/base/net_errors.h" |
15 | 17 |
16 using blink::WebFrame; | 18 using blink::WebFrame; |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
376 | 378 |
377 if (!reader_) { | 379 if (!reader_) { |
378 CreateResourceLoader(read_op_->position(), kPositionNotSpecified); | 380 CreateResourceLoader(read_op_->position(), kPositionNotSpecified); |
379 } else { | 381 } else { |
380 reader_->Seek(read_op_->position()); | 382 reader_->Seek(read_op_->position()); |
381 } | 383 } |
382 | 384 |
383 int64_t available = reader_->Available(); | 385 int64_t available = reader_->Available(); |
384 if (available < 0) { | 386 if (available < 0) { |
385 // A failure has occured. | 387 // A failure has occured. |
386 ReadOperation::Run(read_op_.Pass(), kReadError); | 388 ReadOperation::Run(std::move(read_op_), kReadError); |
387 return; | 389 return; |
388 } | 390 } |
389 if (available) { | 391 if (available) { |
390 bytes_read = | 392 bytes_read = |
391 static_cast<int>(std::min<int64_t>(available, read_op_->size())); | 393 static_cast<int>(std::min<int64_t>(available, read_op_->size())); |
392 bytes_read = reader_->TryRead(read_op_->data(), bytes_read); | 394 bytes_read = reader_->TryRead(read_op_->data(), bytes_read); |
393 ReadOperation::Run(read_op_.Pass(), bytes_read); | 395 ReadOperation::Run(std::move(read_op_), bytes_read); |
394 } else { | 396 } else { |
395 reader_->Wait(1, base::Bind(&MultibufferDataSource::ReadTask, | 397 reader_->Wait(1, base::Bind(&MultibufferDataSource::ReadTask, |
396 weak_factory_.GetWeakPtr())); | 398 weak_factory_.GetWeakPtr())); |
397 UpdateLoadingState(false); | 399 UpdateLoadingState(false); |
398 } | 400 } |
399 } | 401 } |
400 | 402 |
401 void MultibufferDataSource::StopInternal_Locked() { | 403 void MultibufferDataSource::StopInternal_Locked() { |
402 lock_.AssertAcquired(); | 404 lock_.AssertAcquired(); |
403 if (stop_signal_received_) | 405 if (stop_signal_received_) |
404 return; | 406 return; |
405 | 407 |
406 stop_signal_received_ = true; | 408 stop_signal_received_ = true; |
407 | 409 |
408 // Initialize() isn't part of the DataSource interface so don't call it in | 410 // Initialize() isn't part of the DataSource interface so don't call it in |
409 // response to Stop(). | 411 // response to Stop(). |
410 init_cb_.Reset(); | 412 init_cb_.Reset(); |
411 | 413 |
412 if (read_op_) | 414 if (read_op_) |
413 ReadOperation::Run(read_op_.Pass(), kReadError); | 415 ReadOperation::Run(std::move(read_op_), kReadError); |
414 } | 416 } |
415 | 417 |
416 void MultibufferDataSource::StopLoader() { | 418 void MultibufferDataSource::StopLoader() { |
417 DCHECK(render_task_runner_->BelongsToCurrentThread()); | 419 DCHECK(render_task_runner_->BelongsToCurrentThread()); |
418 reader_.reset(nullptr); | 420 reader_.reset(nullptr); |
419 } | 421 } |
420 | 422 |
421 void MultibufferDataSource::SetBitrateTask(int bitrate) { | 423 void MultibufferDataSource::SetBitrateTask(int bitrate) { |
422 DCHECK(render_task_runner_->BelongsToCurrentThread()); | 424 DCHECK(render_task_runner_->BelongsToCurrentThread()); |
423 DCHECK(reader_.get()); | 425 DCHECK(reader_.get()); |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
563 reader_->SetMaxBuffer(back_buffer, pin_forwards); | 565 reader_->SetMaxBuffer(back_buffer, pin_forwards); |
564 | 566 |
565 if (preload_ == METADATA) { | 567 if (preload_ == METADATA) { |
566 reader_->SetPreload(0, 0); | 568 reader_->SetPreload(0, 0); |
567 } else { | 569 } else { |
568 reader_->SetPreload(preload + kPreloadHighExtra, preload); | 570 reader_->SetPreload(preload + kPreloadHighExtra, preload); |
569 } | 571 } |
570 } | 572 } |
571 | 573 |
572 } // namespace media | 574 } // namespace media |
OLD | NEW |