| 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 "content/renderer/media/android/media_source_delegate.h" | 5 #include "content/renderer/media/android/media_source_delegate.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 const scoped_refptr<media::MediaLog> media_log) | 50 const scoped_refptr<media::MediaLog> media_log) |
| 51 : demuxer_client_(demuxer_client), | 51 : demuxer_client_(demuxer_client), |
| 52 demuxer_client_id_(demuxer_client_id), | 52 demuxer_client_id_(demuxer_client_id), |
| 53 media_log_(media_log), | 53 media_log_(media_log), |
| 54 is_demuxer_ready_(false), | 54 is_demuxer_ready_(false), |
| 55 audio_stream_(NULL), | 55 audio_stream_(NULL), |
| 56 video_stream_(NULL), | 56 video_stream_(NULL), |
| 57 seeking_(false), | 57 seeking_(false), |
| 58 is_video_encrypted_(false), | 58 is_video_encrypted_(false), |
| 59 doing_browser_seek_(false), | 59 doing_browser_seek_(false), |
| 60 browser_seek_time_(media::kNoTimestamp()), | 60 browser_seek_time_(media::kNoTimestamp), |
| 61 expecting_regular_seek_(false), | 61 expecting_regular_seek_(false), |
| 62 access_unit_size_(0), | 62 access_unit_size_(0), |
| 63 main_task_runner_(base::ThreadTaskRunnerHandle::Get()), | 63 main_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| 64 media_task_runner_(media_task_runner), | 64 media_task_runner_(media_task_runner), |
| 65 main_weak_factory_(this), | 65 main_weak_factory_(this), |
| 66 media_weak_factory_(this) { | 66 media_weak_factory_(this) { |
| 67 main_weak_this_ = main_weak_factory_.GetWeakPtr(); | 67 main_weak_this_ = main_weak_factory_.GetWeakPtr(); |
| 68 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 68 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 69 } | 69 } |
| 70 | 70 |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 doing_browser_seek_ = false; | 286 doing_browser_seek_ = false; |
| 287 demuxer_client_->DemuxerSeekDone(demuxer_client_id_, seek_time); | 287 demuxer_client_->DemuxerSeekDone(demuxer_client_id_, seek_time); |
| 288 return; | 288 return; |
| 289 } | 289 } |
| 290 | 290 |
| 291 if (doing_browser_seek_) { | 291 if (doing_browser_seek_) { |
| 292 internal_seek_time = FindBufferedBrowserSeekTime_Locked(seek_time); | 292 internal_seek_time = FindBufferedBrowserSeekTime_Locked(seek_time); |
| 293 browser_seek_time_ = internal_seek_time; | 293 browser_seek_time_ = internal_seek_time; |
| 294 } else { | 294 } else { |
| 295 expecting_regular_seek_ = false; | 295 expecting_regular_seek_ = false; |
| 296 browser_seek_time_ = media::kNoTimestamp(); | 296 browser_seek_time_ = media::kNoTimestamp; |
| 297 } | 297 } |
| 298 } | 298 } |
| 299 | 299 |
| 300 // Prepare |chunk_demuxer_| for browser seek. | 300 // Prepare |chunk_demuxer_| for browser seek. |
| 301 if (is_browser_seek) { | 301 if (is_browser_seek) { |
| 302 chunk_demuxer_->CancelPendingSeek(internal_seek_time); | 302 chunk_demuxer_->CancelPendingSeek(internal_seek_time); |
| 303 chunk_demuxer_->StartWaitingForSeek(internal_seek_time); | 303 chunk_demuxer_->StartWaitingForSeek(internal_seek_time); |
| 304 } | 304 } |
| 305 | 305 |
| 306 SeekInternal(internal_seek_time); | 306 SeekInternal(internal_seek_time); |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 if (demuxer_client_) | 694 if (demuxer_client_) |
| 695 demuxer_client_->DemuxerReady(demuxer_client_id_, *configs); | 695 demuxer_client_->DemuxerReady(demuxer_client_id_, *configs); |
| 696 | 696 |
| 697 base::AutoLock auto_lock(is_video_encrypted_lock_); | 697 base::AutoLock auto_lock(is_video_encrypted_lock_); |
| 698 is_video_encrypted_ = configs->is_video_encrypted; | 698 is_video_encrypted_ = configs->is_video_encrypted; |
| 699 } | 699 } |
| 700 | 700 |
| 701 base::TimeDelta MediaSourceDelegate::GetDuration() const { | 701 base::TimeDelta MediaSourceDelegate::GetDuration() const { |
| 702 DCHECK(media_task_runner_->BelongsToCurrentThread()); | 702 DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| 703 if (!chunk_demuxer_) | 703 if (!chunk_demuxer_) |
| 704 return media::kNoTimestamp(); | 704 return media::kNoTimestamp; |
| 705 | 705 |
| 706 double duration = chunk_demuxer_->GetDuration(); | 706 double duration = chunk_demuxer_->GetDuration(); |
| 707 if (duration == std::numeric_limits<double>::infinity()) | 707 if (duration == std::numeric_limits<double>::infinity()) |
| 708 return media::kInfiniteDuration(); | 708 return media::kInfiniteDuration; |
| 709 | 709 |
| 710 return base::TimeDelta::FromSecondsD(duration); | 710 return base::TimeDelta::FromSecondsD(duration); |
| 711 } | 711 } |
| 712 | 712 |
| 713 void MediaSourceDelegate::OnDemuxerOpened() { | 713 void MediaSourceDelegate::OnDemuxerOpened() { |
| 714 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 714 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 715 if (media_source_opened_cb_.is_null()) | 715 if (media_source_opened_cb_.is_null()) |
| 716 return; | 716 return; |
| 717 | 717 |
| 718 media_source_opened_cb_.Run( | 718 media_source_opened_cb_.Run( |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 configs->video_codec = config.codec(); | 802 configs->video_codec = config.codec(); |
| 803 configs->video_size = config.natural_size(); | 803 configs->video_size = config.natural_size(); |
| 804 configs->is_video_encrypted = config.is_encrypted(); | 804 configs->is_video_encrypted = config.is_encrypted(); |
| 805 configs->video_extra_data = config.extra_data(); | 805 configs->video_extra_data = config.extra_data(); |
| 806 return true; | 806 return true; |
| 807 } | 807 } |
| 808 return false; | 808 return false; |
| 809 } | 809 } |
| 810 | 810 |
| 811 } // namespace content | 811 } // namespace content |
| OLD | NEW |