Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 2138813002: Revert of Do not wait for first video frame to start playing audio in a MediaStream. (patchset #2 i… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2785
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | content/test/data/media/getusermedia.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/webmediaplayer_ms.h" 5 #include "content/renderer/media/webmediaplayer_ms.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); 145 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError);
146 return; 146 return;
147 } 147 }
148 148
149 if (audio_renderer_) { 149 if (audio_renderer_) {
150 audio_renderer_->SetVolume(volume_); 150 audio_renderer_->SetVolume(volume_);
151 audio_renderer_->Start(); 151 audio_renderer_->Start();
152 } 152 }
153 if (video_frame_provider_) 153 if (video_frame_provider_)
154 video_frame_provider_->Start(); 154 video_frame_provider_->Start();
155 if (audio_renderer_) { 155 if (audio_renderer_ && !video_frame_provider_) {
156 // Do not wait for first video frame to start playing 156 // This is audio-only mode.
157 SetReadyState(WebMediaPlayer::ReadyStateHaveMetadata); 157 SetReadyState(WebMediaPlayer::ReadyStateHaveMetadata);
158 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); 158 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
159 } 159 }
160 } 160 }
161 161
162 void WebMediaPlayerMS::play() { 162 void WebMediaPlayerMS::play() {
163 DVLOG(1) << __FUNCTION__; 163 DVLOG(1) << __FUNCTION__;
164 DCHECK(thread_checker_.CalledOnValidThread()); 164 DCHECK(thread_checker_.CalledOnValidThread());
165 165
166 media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PLAY)); 166 media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PLAY));
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 if (frame->metadata()->GetTimeTicks(media::VideoFrameMetadata::REFERENCE_TIME, 481 if (frame->metadata()->GetTimeTicks(media::VideoFrameMetadata::REFERENCE_TIME,
482 &render_time)) { 482 &render_time)) {
483 TRACE_EVENT1("webrtc", "WebMediaPlayerMS::OnFrameAvailable", 483 TRACE_EVENT1("webrtc", "WebMediaPlayerMS::OnFrameAvailable",
484 "Ideal Render Instant", render_time.ToInternalValue()); 484 "Ideal Render Instant", render_time.ToInternalValue());
485 } else { 485 } else {
486 TRACE_EVENT0("webrtc", "WebMediaPlayerMS::OnFrameAvailable"); 486 TRACE_EVENT0("webrtc", "WebMediaPlayerMS::OnFrameAvailable");
487 } 487 }
488 488
489 if (!received_first_frame_) { 489 if (!received_first_frame_) {
490 received_first_frame_ = true; 490 received_first_frame_ = true;
491 if (getReadyState() < WebMediaPlayer::ReadyStateHaveEnoughData) { 491 SetReadyState(WebMediaPlayer::ReadyStateHaveMetadata);
492 SetReadyState(WebMediaPlayer::ReadyStateHaveMetadata); 492 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
493 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
494 }
495 493
496 if (video_frame_provider_.get()) { 494 if (video_frame_provider_.get()) {
497 video_weblayer_.reset(new cc_blink::WebLayerImpl( 495 video_weblayer_.reset(new cc_blink::WebLayerImpl(
498 cc::VideoLayer::Create(compositor_.get(), media::VIDEO_ROTATION_0))); 496 cc::VideoLayer::Create(compositor_.get(), media::VIDEO_ROTATION_0)));
499 video_weblayer_->layer()->SetContentsOpaque(false); 497 video_weblayer_->layer()->SetContentsOpaque(false);
500 video_weblayer_->SetContentsOpaqueIsFixed(true); 498 video_weblayer_->SetContentsOpaqueIsFixed(true);
501 get_client()->setWebLayer(video_weblayer_.get()); 499 get_client()->setWebLayer(video_weblayer_.get());
502 } 500 }
503 } 501 }
504 502
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 void WebMediaPlayerMS::ResetCanvasCache() { 536 void WebMediaPlayerMS::ResetCanvasCache() {
539 DCHECK(thread_checker_.CalledOnValidThread()); 537 DCHECK(thread_checker_.CalledOnValidThread());
540 video_renderer_.ResetCache(); 538 video_renderer_.ResetCache();
541 } 539 }
542 540
543 void WebMediaPlayerMS::TriggerResize() { 541 void WebMediaPlayerMS::TriggerResize() {
544 get_client()->sizeChanged(); 542 get_client()->sizeChanged();
545 } 543 }
546 544
547 } // namespace content 545 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/test/data/media/getusermedia.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698