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

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

Issue 2097953002: Motown: Rename MediaProducer/Consumer to MediaPacketProducer/Consumer (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Renamed MojoConsumer and MojoProducer 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_decoder_impl.h" 6 #include "services/media/factory_service/media_decoder_impl.h"
7 #include "services/media/framework_mojo/mojo_type_conversions.h" 7 #include "services/media/framework_mojo/mojo_type_conversions.h"
8 8
9 namespace mojo { 9 namespace mojo {
10 namespace media { 10 namespace media {
11 11
12 // static 12 // static
13 std::shared_ptr<MediaDecoderImpl> MediaDecoderImpl::Create( 13 std::shared_ptr<MediaDecoderImpl> MediaDecoderImpl::Create(
14 MediaTypePtr input_media_type, 14 MediaTypePtr input_media_type,
15 InterfaceRequest<MediaTypeConverter> request, 15 InterfaceRequest<MediaTypeConverter> request,
16 MediaFactoryService* owner) { 16 MediaFactoryService* owner) {
17 return std::shared_ptr<MediaDecoderImpl>( 17 return std::shared_ptr<MediaDecoderImpl>(
18 new MediaDecoderImpl(input_media_type.Pass(), request.Pass(), owner)); 18 new MediaDecoderImpl(input_media_type.Pass(), request.Pass(), owner));
19 } 19 }
20 20
21 MediaDecoderImpl::MediaDecoderImpl(MediaTypePtr input_media_type, 21 MediaDecoderImpl::MediaDecoderImpl(MediaTypePtr input_media_type,
22 InterfaceRequest<MediaTypeConverter> request, 22 InterfaceRequest<MediaTypeConverter> request,
23 MediaFactoryService* owner) 23 MediaFactoryService* owner)
24 : MediaFactoryService::Product<MediaTypeConverter>(this, 24 : MediaFactoryService::Product<MediaTypeConverter>(this,
25 request.Pass(), 25 request.Pass(),
26 owner), 26 owner),
27 consumer_(MojoConsumer::Create()), 27 consumer_(MojoPacketConsumer::Create()),
28 producer_(MojoProducer::Create()) { 28 producer_(MojoPacketProducer::Create()) {
29 DCHECK(input_media_type); 29 DCHECK(input_media_type);
30 30
31 std::unique_ptr<StreamType> input_stream_type = 31 std::unique_ptr<StreamType> input_stream_type =
32 input_media_type.To<std::unique_ptr<StreamType>>(); 32 input_media_type.To<std::unique_ptr<StreamType>>();
33 33
34 if (Decoder::Create(*input_stream_type, &decoder_) != Result::kOk) { 34 if (Decoder::Create(*input_stream_type, &decoder_) != Result::kOk) {
35 LOG(WARNING) << "Couldn't find decoder for stream type"; 35 LOG(WARNING) << "Couldn't find decoder for stream type";
36 UnbindAndReleaseFromOwner(); 36 UnbindAndReleaseFromOwner();
37 return; 37 return;
38 } 38 }
39 39
40 PartRef consumer_ref = graph_.Add(consumer_); 40 PartRef consumer_ref = graph_.Add(consumer_);
41 PartRef decoder_ref = graph_.Add(decoder_); 41 PartRef decoder_ref = graph_.Add(decoder_);
42 PartRef producer_ref = graph_.Add(producer_); 42 PartRef producer_ref = graph_.Add(producer_);
43 43
44 graph_.ConnectParts(consumer_ref, decoder_ref); 44 graph_.ConnectParts(consumer_ref, decoder_ref);
45 graph_.ConnectParts(decoder_ref, producer_ref); 45 graph_.ConnectParts(decoder_ref, producer_ref);
46 46
47 consumer_->SetPrimeRequestedCallback( 47 consumer_->SetPrimeRequestedCallback(
48 [this](const MediaConsumer::PrimeCallback& callback) { 48 [this](const MediaPacketConsumer::PrimeCallback& callback) {
49 DCHECK(producer_); 49 DCHECK(producer_);
50 producer_->PrimeConnection(callback); 50 producer_->PrimeConnection(callback);
51 }); 51 });
52 consumer_->SetFlushRequestedCallback( 52 consumer_->SetFlushRequestedCallback(
53 [this, consumer_ref](const MediaConsumer::FlushCallback& callback) { 53 [this, consumer_ref](const MediaPacketConsumer::FlushCallback& callback) {
54 DCHECK(producer_); 54 DCHECK(producer_);
55 graph_.FlushOutput(consumer_ref.output()); 55 graph_.FlushOutput(consumer_ref.output());
56 producer_->FlushConnection(callback); 56 producer_->FlushConnection(callback);
57 }); 57 });
58 58
59 graph_.Prepare(); 59 graph_.Prepare();
60 } 60 }
61 61
62 MediaDecoderImpl::~MediaDecoderImpl() {} 62 MediaDecoderImpl::~MediaDecoderImpl() {}
63 63
64 void MediaDecoderImpl::GetOutputType(const GetOutputTypeCallback& callback) { 64 void MediaDecoderImpl::GetOutputType(const GetOutputTypeCallback& callback) {
65 DCHECK(decoder_); 65 DCHECK(decoder_);
66 callback.Run(MediaType::From(decoder_->output_stream_type())); 66 callback.Run(MediaType::From(decoder_->output_stream_type()));
67 } 67 }
68 68
69 void MediaDecoderImpl::GetConsumer( 69 void MediaDecoderImpl::GetPacketConsumer(
70 mojo::InterfaceRequest<MediaConsumer> consumer) { 70 mojo::InterfaceRequest<MediaPacketConsumer> consumer) {
71 consumer_->AddBinding(consumer.Pass()); 71 consumer_->AddBinding(consumer.Pass());
72 } 72 }
73 73
74 void MediaDecoderImpl::GetProducer( 74 void MediaDecoderImpl::GetPacketProducer(
75 mojo::InterfaceRequest<MediaProducer> producer) { 75 mojo::InterfaceRequest<MediaPacketProducer> producer) {
76 producer_->AddBinding(producer.Pass()); 76 producer_->AddBinding(producer.Pass());
77 } 77 }
78 78
79 } // namespace media 79 } // namespace media
80 } // namespace mojo 80 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698