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

Side by Side Diff: media/blink/webmediaplayer_impl.cc

Issue 1273943002: media: Make GpuMemoryBuffers VideoFrame copies asynchronous. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address reveman's and dalecurtis' comments. Disable GMB VideoFrames. Created 5 years, 4 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 | « media/blink/webmediaplayer_impl.h ('k') | media/blink/webmediaplayer_params.h » ('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 "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 10
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 base::WeakPtr<WebMediaPlayerDelegate> delegate, 109 base::WeakPtr<WebMediaPlayerDelegate> delegate,
110 scoped_ptr<RendererFactory> renderer_factory, 110 scoped_ptr<RendererFactory> renderer_factory,
111 CdmFactory* cdm_factory, 111 CdmFactory* cdm_factory,
112 const WebMediaPlayerParams& params) 112 const WebMediaPlayerParams& params)
113 : frame_(frame), 113 : frame_(frame),
114 network_state_(WebMediaPlayer::NetworkStateEmpty), 114 network_state_(WebMediaPlayer::NetworkStateEmpty),
115 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), 115 ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
116 preload_(BufferedDataSource::AUTO), 116 preload_(BufferedDataSource::AUTO),
117 main_task_runner_(base::ThreadTaskRunnerHandle::Get()), 117 main_task_runner_(base::ThreadTaskRunnerHandle::Get()),
118 media_task_runner_(params.media_task_runner()), 118 media_task_runner_(params.media_task_runner()),
119 worker_task_runner_(params.worker_task_runner()),
119 media_log_(params.media_log()), 120 media_log_(params.media_log()),
120 pipeline_(media_task_runner_, media_log_.get()), 121 pipeline_(media_task_runner_, media_log_.get()),
121 load_type_(LoadTypeURL), 122 load_type_(LoadTypeURL),
122 opaque_(false), 123 opaque_(false),
123 playback_rate_(0.0), 124 playback_rate_(0.0),
124 paused_(true), 125 paused_(true),
125 seeking_(false), 126 seeking_(false),
126 ended_(false), 127 ended_(false),
127 pending_seek_(false), 128 pending_seek_(false),
128 should_notify_time_changed_(false), 129 should_notify_time_changed_(false),
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 chunk_demuxer_ = new ChunkDemuxer( 935 chunk_demuxer_ = new ChunkDemuxer(
935 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), 936 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened),
936 encrypted_media_init_data_cb, media_log_, true); 937 encrypted_media_init_data_cb, media_log_, true);
937 demuxer_.reset(chunk_demuxer_); 938 demuxer_.reset(chunk_demuxer_);
938 } 939 }
939 940
940 // ... and we're ready to go! 941 // ... and we're ready to go!
941 seeking_ = true; 942 seeking_ = true;
942 943
943 pipeline_.Start( 944 pipeline_.Start(
944 demuxer_.get(), 945 demuxer_.get(), renderer_factory_->CreateRenderer(
945 renderer_factory_->CreateRenderer( 946 media_task_runner_, worker_task_runner_,
946 media_task_runner_, audio_source_provider_.get(), compositor_), 947 audio_source_provider_.get(), compositor_),
947 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), 948 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded),
948 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError), 949 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError),
949 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked, false), 950 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked, false),
950 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata), 951 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata),
951 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged), 952 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged),
952 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged), 953 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged),
953 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack), 954 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack),
954 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey)); 955 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey));
955 } 956 }
956 957
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 1053
1053 // pause() may be called after playback has ended and the HTMLMediaElement 1054 // pause() may be called after playback has ended and the HTMLMediaElement
1054 // requires that currentTime() == duration() after ending. We want to ensure 1055 // requires that currentTime() == duration() after ending. We want to ensure
1055 // |paused_time_| matches currentTime() in this case or a future seek() may 1056 // |paused_time_| matches currentTime() in this case or a future seek() may
1056 // incorrectly discard what it thinks is a seek to the existing time. 1057 // incorrectly discard what it thinks is a seek to the existing time.
1057 paused_time_ = 1058 paused_time_ =
1058 ended_ ? pipeline_.GetMediaDuration() : pipeline_.GetMediaTime(); 1059 ended_ ? pipeline_.GetMediaDuration() : pipeline_.GetMediaTime();
1059 } 1060 }
1060 1061
1061 } // namespace media 1062 } // namespace media
OLDNEW
« no previous file with comments | « media/blink/webmediaplayer_impl.h ('k') | media/blink/webmediaplayer_params.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698