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

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

Issue 2097953002: Motown: Rename MediaProducer/Consumer to MediaPacketProducer/Consumer (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Fixed #ifndef guards 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
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 "services/media/factory_service/media_sink_impl.h" 6 #include "services/media/factory_service/media_sink_impl.h"
7 #include "services/media/framework/util/conversion_pipeline_builder.h" 7 #include "services/media/framework/util/conversion_pipeline_builder.h"
8 #include "services/media/framework_mojo/mojo_type_conversions.h" 8 #include "services/media/framework_mojo/mojo_type_conversions.h"
9 9
10 namespace mojo { 10 namespace mojo {
11 namespace media { 11 namespace media {
12 12
13 // static 13 // static
14 std::shared_ptr<MediaSinkImpl> MediaSinkImpl::Create( 14 std::shared_ptr<MediaSinkImpl> MediaSinkImpl::Create(
15 InterfaceHandle<MediaRenderer> renderer, 15 InterfaceHandle<MediaRenderer> renderer,
16 MediaTypePtr media_type, 16 MediaTypePtr media_type,
17 InterfaceRequest<MediaSink> request, 17 InterfaceRequest<MediaSink> request,
18 MediaFactoryService* owner) { 18 MediaFactoryService* owner) {
19 return std::shared_ptr<MediaSinkImpl>(new MediaSinkImpl( 19 return std::shared_ptr<MediaSinkImpl>(new MediaSinkImpl(
20 renderer.Pass(), media_type.Pass(), request.Pass(), owner)); 20 renderer.Pass(), media_type.Pass(), request.Pass(), owner));
21 } 21 }
22 22
23 MediaSinkImpl::MediaSinkImpl(InterfaceHandle<MediaRenderer> renderer, 23 MediaSinkImpl::MediaSinkImpl(InterfaceHandle<MediaRenderer> renderer,
24 MediaTypePtr media_type, 24 MediaTypePtr media_type,
25 InterfaceRequest<MediaSink> request, 25 InterfaceRequest<MediaSink> request,
26 MediaFactoryService* owner) 26 MediaFactoryService* owner)
27 : MediaFactoryService::Product<MediaSink>(this, request.Pass(), owner), 27 : MediaFactoryService::Product<MediaSink>(this, request.Pass(), owner),
28 consumer_(MojoConsumer::Create()), 28 consumer_(MojoPacketConsumer::Create()),
29 producer_(MojoProducer::Create()), 29 producer_(MojoPacketProducer::Create()),
30 renderer_(MediaRendererPtr::Create(renderer.Pass())) { 30 renderer_(MediaRendererPtr::Create(renderer.Pass())) {
31 DCHECK(renderer_); 31 DCHECK(renderer_);
32 DCHECK(media_type); 32 DCHECK(media_type);
33 33
34 PartRef consumer_ref = graph_.Add(consumer_); 34 PartRef consumer_ref = graph_.Add(consumer_);
35 PartRef producer_ref = graph_.Add(producer_); 35 PartRef producer_ref = graph_.Add(producer_);
36 36
37 consumer_->SetPrimeRequestedCallback( 37 consumer_->SetPrimeRequestedCallback(
38 [this](const MediaConsumer::PrimeCallback& callback) { 38 [this](const MediaPacketConsumer::PrimeCallback& callback) {
39 ready_.When([this, callback]() { 39 ready_.When([this, callback]() {
40 DCHECK(producer_); 40 DCHECK(producer_);
41 producer_->PrimeConnection(callback); 41 producer_->PrimeConnection(callback);
42 }); 42 });
43 }); 43 });
44 consumer_->SetFlushRequestedCallback( 44 consumer_->SetFlushRequestedCallback(
45 [this, consumer_ref](const MediaConsumer::FlushCallback& callback) { 45 [this, consumer_ref](const MediaPacketConsumer::FlushCallback& callback) {
46 ready_.When([this, consumer_ref, callback]() { 46 ready_.When([this, consumer_ref, callback]() {
47 DCHECK(producer_); 47 DCHECK(producer_);
48 graph_.FlushOutput(consumer_ref.output()); 48 graph_.FlushOutput(consumer_ref.output());
49 producer_->FlushConnection(callback); 49 producer_->FlushConnection(callback);
50 }); 50 });
51 }); 51 });
52 52
53 // TODO(dalesat): Once we have c++14, get rid of this shared pointer hack. 53 // TODO(dalesat): Once we have c++14, get rid of this shared pointer hack.
54 input_stream_type_ = media_type.To<std::unique_ptr<StreamType>>(); 54 input_stream_type_ = media_type.To<std::unique_ptr<StreamType>>();
55 55
(...skipping 13 matching lines...) Expand all
69 if (!result) { 69 if (!result) {
70 // Failed to build conversion pipeline. 70 // Failed to build conversion pipeline.
71 LOG(WARNING) << "failed to build conversion pipeline"; 71 LOG(WARNING) << "failed to build conversion pipeline";
72 // TODO(dalesat): Add problem reporting. 72 // TODO(dalesat): Add problem reporting.
73 return; 73 return;
74 } 74 }
75 75
76 graph_.ConnectOutputToPart(out, producer_ref); 76 graph_.ConnectOutputToPart(out, producer_ref);
77 77
78 renderer_->SetMediaType(MediaType::From(std::move(producer_stream_type))); 78 renderer_->SetMediaType(MediaType::From(std::move(producer_stream_type)));
79 MediaConsumerPtr consumer; 79 MediaPacketConsumerPtr consumer;
80 renderer_->GetConsumer(GetProxy(&consumer)); 80 renderer_->GetPacketConsumer(GetProxy(&consumer));
81 producer_->Connect(consumer.Pass(), [this]() { 81 producer_->Connect(consumer.Pass(), [this]() {
82 graph_.Prepare(); 82 graph_.Prepare();
83 ready_.Occur(); 83 ready_.Occur();
84 }); 84 });
85 }); 85 });
86 } 86 }
87 87
88 MediaSinkImpl::~MediaSinkImpl() {} 88 MediaSinkImpl::~MediaSinkImpl() {}
89 89
90 void MediaSinkImpl::GetConsumer(InterfaceRequest<MediaConsumer> consumer) { 90 void MediaSinkImpl::GetPacketConsumer(
91 InterfaceRequest<MediaPacketConsumer> consumer) {
91 consumer_->AddBinding(consumer.Pass()); 92 consumer_->AddBinding(consumer.Pass());
92 } 93 }
93 94
94 void MediaSinkImpl::GetTimelineControlPoint( 95 void MediaSinkImpl::GetTimelineControlPoint(
95 InterfaceRequest<MediaTimelineControlPoint> req) { 96 InterfaceRequest<MediaTimelineControlPoint> req) {
96 DCHECK(renderer_); 97 DCHECK(renderer_);
97 renderer_->GetTimelineControlPoint(req.Pass()); 98 renderer_->GetTimelineControlPoint(req.Pass());
98 } 99 }
99 100
100 } // namespace media 101 } // namespace media
101 } // namespace mojo 102 } // namespace mojo
OLDNEW
« no previous file with comments | « services/media/factory_service/media_sink_impl.h ('k') | services/media/factory_service/media_source_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698