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

Side by Side Diff: chromecast/browser/media/cast_renderer.cc

Issue 2348603002: [chromecast] Track MediaPipelineBackend used by CastRenderer. (Closed)
Patch Set: DISALLOW_COPY_AND_ASSIGN Created 4 years, 3 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chromecast/browser/media/cast_renderer.h" 5 #include "chromecast/browser/media/cast_renderer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/single_thread_task_runner.h" 8 #include "base/single_thread_task_runner.h"
9 #include "chromecast/base/task_runner_impl.h" 9 #include "chromecast/base/task_runner_impl.h"
10 #include "chromecast/browser/media/video_resolution_policy.h" 10 #include "chromecast/browser/media/video_resolution_policy.h"
(...skipping 17 matching lines...) Expand all
28 namespace { 28 namespace {
29 // Maximum difference between audio frame PTS and video frame PTS 29 // Maximum difference between audio frame PTS and video frame PTS
30 // for frames read from the DemuxerStream. 30 // for frames read from the DemuxerStream.
31 const base::TimeDelta kMaxDeltaFetcher(base::TimeDelta::FromMilliseconds(2000)); 31 const base::TimeDelta kMaxDeltaFetcher(base::TimeDelta::FromMilliseconds(2000));
32 } // namespace 32 } // namespace
33 33
34 CastRenderer::CastRenderer( 34 CastRenderer::CastRenderer(
35 const CreateMediaPipelineBackendCB& create_backend_cb, 35 const CreateMediaPipelineBackendCB& create_backend_cb,
36 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, 36 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
37 const std::string& audio_device_id, 37 const std::string& audio_device_id,
38 VideoResolutionPolicy* video_resolution_policy) 38 VideoResolutionPolicy* video_resolution_policy,
39 MediaResourceTracker* media_resource_tracker)
39 : create_backend_cb_(create_backend_cb), 40 : create_backend_cb_(create_backend_cb),
40 task_runner_(task_runner), 41 task_runner_(task_runner),
41 audio_device_id_(audio_device_id), 42 audio_device_id_(audio_device_id),
42 video_resolution_policy_(video_resolution_policy), 43 video_resolution_policy_(video_resolution_policy),
44 media_resource_tracker_(media_resource_tracker),
43 client_(nullptr), 45 client_(nullptr),
44 cast_cdm_context_(nullptr), 46 cast_cdm_context_(nullptr),
45 media_task_runner_factory_( 47 media_task_runner_factory_(
46 new BalancedMediaTaskRunnerFactory(kMaxDeltaFetcher)), 48 new BalancedMediaTaskRunnerFactory(kMaxDeltaFetcher)),
47 weak_factory_(this) { 49 weak_factory_(this) {
48 CMALOG(kLogControl) << __FUNCTION__ << ": " << this; 50 CMALOG(kLogControl) << __FUNCTION__ << ": " << this;
49 51
50 if (video_resolution_policy_) 52 if (video_resolution_policy_)
51 video_resolution_policy_->AddObserver(this); 53 video_resolution_policy_->AddObserver(this);
52 } 54 }
53 55
54 CastRenderer::~CastRenderer() { 56 CastRenderer::~CastRenderer() {
55 CMALOG(kLogControl) << __FUNCTION__ << ": " << this; 57 CMALOG(kLogControl) << __FUNCTION__ << ": " << this;
56 DCHECK(task_runner_->BelongsToCurrentThread()); 58 DCHECK(task_runner_->BelongsToCurrentThread());
57 59
58 if (video_resolution_policy_) 60 if (video_resolution_policy_)
59 video_resolution_policy_->RemoveObserver(this); 61 video_resolution_policy_->RemoveObserver(this);
60 } 62 }
61 63
62 void CastRenderer::Initialize( 64 void CastRenderer::Initialize(
63 ::media::DemuxerStreamProvider* demuxer_stream_provider, 65 ::media::DemuxerStreamProvider* demuxer_stream_provider,
64 ::media::RendererClient* client, 66 ::media::RendererClient* client,
65 const ::media::PipelineStatusCB& init_cb) { 67 const ::media::PipelineStatusCB& init_cb) {
66 CMALOG(kLogControl) << __FUNCTION__ << ": " << this; 68 CMALOG(kLogControl) << __FUNCTION__ << ": " << this;
67 DCHECK(task_runner_->BelongsToCurrentThread()); 69 DCHECK(task_runner_->BelongsToCurrentThread());
68 70
69 // Create pipeline backend. 71 // Create pipeline backend.
72 media_resource_usage_.reset(
73 new MediaResourceTracker::ScopedUsage(media_resource_tracker_));
70 backend_task_runner_.reset(new TaskRunnerImpl()); 74 backend_task_runner_.reset(new TaskRunnerImpl());
71 // TODO(erickung): crbug.com/443956. Need to provide right LoadType. 75 // TODO(erickung): crbug.com/443956. Need to provide right LoadType.
72 LoadType load_type = kLoadTypeMediaSource; 76 LoadType load_type = kLoadTypeMediaSource;
73 MediaPipelineDeviceParams::MediaSyncType sync_type = 77 MediaPipelineDeviceParams::MediaSyncType sync_type =
74 (load_type == kLoadTypeMediaStream) 78 (load_type == kLoadTypeMediaStream)
75 ? MediaPipelineDeviceParams::kModeIgnorePts 79 ? MediaPipelineDeviceParams::kModeIgnorePts
76 : MediaPipelineDeviceParams::kModeSyncPts; 80 : MediaPipelineDeviceParams::kModeSyncPts;
77 MediaPipelineDeviceParams params(sync_type, backend_task_runner_.get()); 81 MediaPipelineDeviceParams params(sync_type, backend_task_runner_.get());
78 std::unique_ptr<MediaPipelineBackend> backend = 82 std::unique_ptr<MediaPipelineBackend> backend =
79 create_backend_cb_.Run(params, audio_device_id_); 83 create_backend_cb_.Run(params, audio_device_id_);
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 } 268 }
265 269
266 void CastRenderer::OnVideoOpacityChange(bool opaque) { 270 void CastRenderer::OnVideoOpacityChange(bool opaque) {
267 DCHECK(task_runner_->BelongsToCurrentThread()); 271 DCHECK(task_runner_->BelongsToCurrentThread());
268 DCHECK(opaque); 272 DCHECK(opaque);
269 client_->OnVideoOpacityChange(opaque); 273 client_->OnVideoOpacityChange(opaque);
270 } 274 }
271 275
272 } // namespace media 276 } // namespace media
273 } // namespace chromecast 277 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/media/cast_renderer.h ('k') | chromecast/media/base/media_resource_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698