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

Side by Side Diff: services/media/factory_service/media_player_impl.cc

Issue 2094473002: Motown: Don't build out pipelines for streams that don't get rendered. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Remove NullTimelineControlSite placeholder - no longer needed. 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 | services/media/factory_service/media_sink_impl.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 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 "base/logging.h" 5 #include "base/logging.h"
6 #include "mojo/public/cpp/application/connect.h" 6 #include "mojo/public/cpp/application/connect.h"
7 #include "mojo/services/media/common/cpp/timeline.h" 7 #include "mojo/services/media/common/cpp/timeline.h"
8 #include "services/media/factory_service/media_player_impl.h" 8 #include "services/media/factory_service/media_player_impl.h"
9 #include "services/media/framework/parts/reader.h" 9 #include "services/media/framework/parts/reader.h"
10 #include "services/media/framework/util/callback_joiner.h" 10 #include "services/media/framework/util/callback_joiner.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 demux_->Describe([this](mojo::Array<MediaTypePtr> stream_types) { 59 demux_->Describe([this](mojo::Array<MediaTypePtr> stream_types) {
60 // Populate streams_ and enable the streams we want. 60 // Populate streams_ and enable the streams we want.
61 std::shared_ptr<CallbackJoiner> callback_joiner = CallbackJoiner::Create(); 61 std::shared_ptr<CallbackJoiner> callback_joiner = CallbackJoiner::Create();
62 62
63 for (MediaTypePtr& stream_type : stream_types) { 63 for (MediaTypePtr& stream_type : stream_types) {
64 streams_.push_back(std::unique_ptr<Stream>(new Stream())); 64 streams_.push_back(std::unique_ptr<Stream>(new Stream()));
65 Stream& stream = *streams_.back(); 65 Stream& stream = *streams_.back();
66 switch (stream_type->medium) { 66 switch (stream_type->medium) {
67 case MediaTypeMedium::AUDIO: 67 case MediaTypeMedium::AUDIO:
68 stream.renderer_ = audio_renderer_.Pass(); 68 if (audio_renderer_) {
69 PrepareStream(&stream, streams_.size() - 1, stream_type, 69 stream.renderer_ = audio_renderer_.Pass();
70 callback_joiner->NewCallback()); 70 PrepareStream(&stream, streams_.size() - 1, stream_type,
71 callback_joiner->NewCallback());
72 }
71 break; 73 break;
72 case MediaTypeMedium::VIDEO: 74 case MediaTypeMedium::VIDEO:
73 stream.renderer_ = video_renderer_.Pass(); 75 if (video_renderer_) {
74 PrepareStream(&stream, streams_.size() - 1, stream_type, 76 stream.renderer_ = video_renderer_.Pass();
75 callback_joiner->NewCallback()); 77 PrepareStream(&stream, streams_.size() - 1, stream_type,
78 callback_joiner->NewCallback());
79 }
76 break; 80 break;
77 // TODO(dalesat): Enable other stream types. 81 // TODO(dalesat): Enable other stream types.
78 default: 82 default:
79 break; 83 break;
80 } 84 }
81 } 85 }
82 86
83 callback_joiner->WhenJoined([this]() { 87 callback_joiner->WhenJoined([this]() {
84 // The enabled streams are prepared. 88 // The enabled streams are prepared.
85 factory_.reset(); 89 factory_.reset();
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 HandleTimelineControlSiteStatusUpdates(version, status.Pass()); 379 HandleTimelineControlSiteStatusUpdates(version, status.Pass());
376 }); 380 });
377 } 381 }
378 382
379 MediaPlayerImpl::Stream::Stream() {} 383 MediaPlayerImpl::Stream::Stream() {}
380 384
381 MediaPlayerImpl::Stream::~Stream() {} 385 MediaPlayerImpl::Stream::~Stream() {}
382 386
383 } // namespace media 387 } // namespace media
384 } // namespace mojo 388 } // namespace mojo
OLDNEW
« no previous file with comments | « no previous file | services/media/factory_service/media_sink_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698