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 |