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

Side by Side Diff: services/media/framework_mojo/mojo_consumer.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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/bind.h"
6 #include "base/logging.h"
7 #include "base/message_loop/message_loop.h"
8 #include "services/media/framework_mojo/mojo_consumer.h"
9
10 namespace mojo {
11 namespace media {
12
13 void MojoConsumerMediaConsumer::Flush(const FlushCallback& callback) {
14 MediaConsumerFlush(callback);
15 }
16
17 MojoConsumer::MojoConsumer() {}
18
19 MojoConsumer::~MojoConsumer() {}
20
21 void MojoConsumer::AddBinding(InterfaceRequest<MediaConsumer> consumer) {
22 bindings_.AddBinding(this, consumer.Pass());
23 DCHECK(base::MessageLoop::current());
24 task_runner_ = base::MessageLoop::current()->task_runner();
25 DCHECK(task_runner_);
26 }
27
28 void MojoConsumer::SetPrimeRequestedCallback(
29 const PrimeRequestedCallback& callback) {
30 prime_requested_callback_ = callback;
31 }
32
33 void MojoConsumer::SetFlushRequestedCallback(
34 const FlushRequestedCallback& callback) {
35 flush_requested_callback_ = callback;
36 }
37
38 void MojoConsumer::SetBuffer(ScopedSharedBufferHandle buffer,
39 const SetBufferCallback& callback) {
40 buffer_.InitFromHandle(buffer.Pass());
41 callback.Run();
42 }
43
44 void MojoConsumer::SendPacket(MediaPacketPtr media_packet,
45 const SendPacketCallback& callback) {
46 DCHECK(media_packet);
47 DCHECK(supply_callback_);
48 supply_callback_(
49 PacketImpl::Create(media_packet.Pass(), callback, task_runner_, buffer_));
50 }
51
52 void MojoConsumer::Prime(const PrimeCallback& callback) {
53 if (prime_requested_callback_) {
54 prime_requested_callback_(callback);
55 } else {
56 LOG(WARNING) << "prime requested but no callback registered";
57 callback.Run();
58 }
59 }
60
61 void MojoConsumer::MediaConsumerFlush(const FlushCallback& callback) {
62 if (flush_requested_callback_) {
63 flush_requested_callback_(callback);
64 } else {
65 LOG(WARNING) << "flush requested but no callback registered";
66 callback.Run();
67 }
68 }
69
70 bool MojoConsumer::can_accept_allocator() const {
71 return false;
72 }
73
74 void MojoConsumer::set_allocator(PayloadAllocator* allocator) {
75 LOG(ERROR) << "set_allocator called on MojoConsumer";
76 }
77
78 void MojoConsumer::SetSupplyCallback(const SupplyCallback& supply_callback) {
79 supply_callback_ = supply_callback;
80 }
81
82 void MojoConsumer::SetDownstreamDemand(Demand demand) {}
83
84 MojoConsumer::PacketImpl::PacketImpl(
85 MediaPacketPtr media_packet,
86 const SendPacketCallback& callback,
87 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
88 const MappedSharedBuffer& buffer)
89 : Packet(media_packet->pts,
90 media_packet->end_of_stream,
91 media_packet->payload->length,
92 media_packet->payload->length == 0
93 ? nullptr
94 : buffer.PtrFromOffset(media_packet->payload->offset)),
95 media_packet_(media_packet.Pass()),
96 callback_(callback),
97 task_runner_(task_runner) {}
98
99 MojoConsumer::PacketImpl::~PacketImpl() {}
100
101 // static
102 void MojoConsumer::PacketImpl::RunCallback(const SendPacketCallback& callback) {
103 callback.Run(MediaConsumer::SendResult::CONSUMED);
104 }
105
106 void MojoConsumer::PacketImpl::Release() {
107 task_runner_->PostTask(FROM_HERE, base::Bind(&RunCallback, callback_));
108 delete this;
109 }
110
111 } // namespace media
112 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698