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/webmediaplayer_impl.h" | 5 #include "media/blink/webmediaplayer_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <limits> | 9 #include <limits> |
10 #include <string> | 10 #include <string> |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
570 | 570 |
571 return pipeline_metadata_.has_video; | 571 return pipeline_metadata_.has_video; |
572 } | 572 } |
573 | 573 |
574 bool WebMediaPlayerImpl::hasAudio() const { | 574 bool WebMediaPlayerImpl::hasAudio() const { |
575 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 575 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
576 | 576 |
577 return pipeline_metadata_.has_audio; | 577 return pipeline_metadata_.has_audio; |
578 } | 578 } |
579 | 579 |
580 void WebMediaPlayerImpl::enabledAudioTracksChanged( | |
581 const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) { | |
582 DCHECK(main_task_runner_->BelongsToCurrentThread()); | |
583 CHECK(demuxer_.get()); | |
584 | |
585 // TODO(servolk): Implement disabling/enabling audio streams. | |
586 } | |
587 | |
588 void WebMediaPlayerImpl::selectedVideoTrackChanged( | |
589 blink::WebMediaPlayer::TrackId* selectedTrackId) { | |
590 DCHECK(main_task_runner_->BelongsToCurrentThread()); | |
591 CHECK(demuxer_.get()); | |
592 | |
593 // TODO(servolk): Implement disabling/enabling video stream. | |
594 } | |
595 | |
580 blink::WebSize WebMediaPlayerImpl::naturalSize() const { | 596 blink::WebSize WebMediaPlayerImpl::naturalSize() const { |
581 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 597 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
582 | 598 |
583 return blink::WebSize(pipeline_metadata_.natural_size); | 599 return blink::WebSize(pipeline_metadata_.natural_size); |
584 } | 600 } |
585 | 601 |
586 bool WebMediaPlayerImpl::paused() const { | 602 bool WebMediaPlayerImpl::paused() const { |
587 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 603 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
588 | 604 |
589 #if defined(OS_ANDROID) // WMPI_CAST | 605 #if defined(OS_ANDROID) // WMPI_CAST |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
834 } | 850 } |
835 | 851 |
836 void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated( | 852 void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated( |
837 std::unique_ptr<MediaTracks> tracks) { | 853 std::unique_ptr<MediaTracks> tracks) { |
838 // For MSE/chunk_demuxer case the media track updates are handled by | 854 // For MSE/chunk_demuxer case the media track updates are handled by |
839 // WebSourceBufferImpl. | 855 // WebSourceBufferImpl. |
840 DCHECK(demuxer_.get()); | 856 DCHECK(demuxer_.get()); |
841 DCHECK(!chunk_demuxer_); | 857 DCHECK(!chunk_demuxer_); |
842 | 858 |
843 // Report the media track information to blink. | 859 // Report the media track information to blink. |
860 std::vector<blink::WebMediaPlayer::TrackId> blinkTrackIds; | |
844 for (const auto& track : tracks->tracks()) { | 861 for (const auto& track : tracks->tracks()) { |
845 if (track->type() == MediaTrack::Audio) { | 862 if (track->type() == MediaTrack::Audio) { |
846 auto track_id = client_->addAudioTrack( | 863 auto track_id = client_->addAudioTrack( |
847 blink::WebString::fromUTF8(track->id()), | 864 blink::WebString::fromUTF8(track->id()), |
848 blink::WebMediaPlayerClient::AudioTrackKindMain, | 865 blink::WebMediaPlayerClient::AudioTrackKindMain, |
849 blink::WebString::fromUTF8(track->label()), | 866 blink::WebString::fromUTF8(track->label()), |
850 blink::WebString::fromUTF8(track->language()), | 867 blink::WebString::fromUTF8(track->language()), |
851 /*enabled*/ true); | 868 /*enabled*/ true); |
852 (void)track_id; | 869 blinkTrackIds.push_back(track_id); |
853 } else if (track->type() == MediaTrack::Video) { | 870 } else if (track->type() == MediaTrack::Video) { |
854 auto track_id = client_->addVideoTrack( | 871 auto track_id = client_->addVideoTrack( |
855 blink::WebString::fromUTF8(track->id()), | 872 blink::WebString::fromUTF8(track->id()), |
856 blink::WebMediaPlayerClient::VideoTrackKindMain, | 873 blink::WebMediaPlayerClient::VideoTrackKindMain, |
857 blink::WebString::fromUTF8(track->label()), | 874 blink::WebString::fromUTF8(track->label()), |
858 blink::WebString::fromUTF8(track->language()), | 875 blink::WebString::fromUTF8(track->language()), |
859 /*selected*/ true); | 876 /*selected*/ true); |
860 (void)track_id; | 877 blinkTrackIds.push_back(track_id); |
861 } else { | 878 } else { |
862 // Text tracks are not supported through this code path yet. | 879 // Text tracks are not supported through this code path yet. |
863 NOTREACHED(); | 880 NOTREACHED(); |
864 } | 881 } |
865 } | 882 } |
883 | |
884 demuxer_->OnTrackIdsAssigned(*tracks.get(), blinkTrackIds); | |
xhwang
2016/06/03 18:52:45
It looks really odd that we create the track in ch
servolk
2016/06/03 20:06:45
Thanks, good point. Blink has had separate bytestr
chcunningham
2016/06/03 20:42:49
I'm also looking for away to let Chromium decide t
servolk
2016/06/03 20:57:10
Yes, multiple bytestream track ids might map to th
servolk
2016/06/03 23:35:36
Well, completely removing WebMediaPlayer::TrackId
servolk
2016/06/06 17:42:56
Update: I though about it some more over the weeke
| |
866 } | 885 } |
867 | 886 |
868 void WebMediaPlayerImpl::SetCdm(const CdmAttachedCB& cdm_attached_cb, | 887 void WebMediaPlayerImpl::SetCdm(const CdmAttachedCB& cdm_attached_cb, |
869 CdmContext* cdm_context) { | 888 CdmContext* cdm_context) { |
870 if (!cdm_context) { | 889 if (!cdm_context) { |
871 cdm_attached_cb.Run(false); | 890 cdm_attached_cb.Run(false); |
872 return; | 891 return; |
873 } | 892 } |
874 | 893 |
875 // If CDM initialization succeeded, tell the pipeline about it. | 894 // If CDM initialization succeeded, tell the pipeline about it. |
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1610 << ", Video: " << stats.video_memory_usage << ", DataSource: " | 1629 << ", Video: " << stats.video_memory_usage << ", DataSource: " |
1611 << (data_source_ ? data_source_->GetMemoryUsage() : 0) | 1630 << (data_source_ ? data_source_->GetMemoryUsage() : 0) |
1612 << ", Demuxer: " << demuxer_memory_usage; | 1631 << ", Demuxer: " << demuxer_memory_usage; |
1613 | 1632 |
1614 const int64_t delta = current_memory_usage - last_reported_memory_usage_; | 1633 const int64_t delta = current_memory_usage - last_reported_memory_usage_; |
1615 last_reported_memory_usage_ = current_memory_usage; | 1634 last_reported_memory_usage_ = current_memory_usage; |
1616 adjust_allocated_memory_cb_.Run(delta); | 1635 adjust_allocated_memory_cb_.Run(delta); |
1617 } | 1636 } |
1618 | 1637 |
1619 } // namespace media | 1638 } // namespace media |
OLD | NEW |