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

Side by Side Diff: services/media/framework_mojo/mojo_producer.cc

Issue 1814553002: Motown: Improvements to packet definition (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Added a comment. Created 4 years, 9 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/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "services/media/framework_mojo/mojo_producer.h" 9 #include "services/media/framework_mojo/mojo_producer.h"
10 10
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 { 49 {
50 base::AutoLock lock(lock_); 50 base::AutoLock lock(lock_);
51 max_pushes_outstanding_ = 0; 51 max_pushes_outstanding_ = 0;
52 } 52 }
53 53
54 DCHECK(demand_callback_); 54 DCHECK(demand_callback_);
55 demand_callback_(Demand::kNegative); 55 demand_callback_(Demand::kNegative);
56 56
57 DCHECK(consumer_.is_bound()); 57 DCHECK(consumer_.is_bound());
58 consumer_->Flush(callback); 58 consumer_->Flush(callback);
59 first_presentation_time_since_flush_ = Packet::kUnknownPresentationTime; 59 first_pts_since_flush_ = Packet::kUnknownPts;
60 end_of_stream_= false; 60 end_of_stream_= false;
61 } 61 }
62 62
63 void MojoProducer::SetStatusCallback( 63 void MojoProducer::SetStatusCallback(
64 const StatusCallback& callback) { 64 const StatusCallback& callback) {
65 status_callback_ = callback; 65 status_callback_ = callback;
66 } 66 }
67 67
68 int64_t MojoProducer::GetFirstPresentationTimeSinceFlush() { 68 int64_t MojoProducer::GetFirstPtsSinceFlush() {
69 return first_presentation_time_since_flush_; 69 return first_pts_since_flush_;
70 } 70 }
71 71
72 PayloadAllocator* MojoProducer::allocator() { 72 PayloadAllocator* MojoProducer::allocator() {
73 return &mojo_allocator_; 73 return &mojo_allocator_;
74 } 74 }
75 75
76 void MojoProducer::SetDemandCallback(const DemandCallback& demand_callback) { 76 void MojoProducer::SetDemandCallback(const DemandCallback& demand_callback) {
77 demand_callback_ = demand_callback; 77 demand_callback_ = demand_callback;
78 } 78 }
79 79
80 Demand MojoProducer::SupplyPacket(PacketPtr packet) { 80 Demand MojoProducer::SupplyPacket(PacketPtr packet) {
81 DCHECK(packet); 81 DCHECK(packet);
82 82
83 if (first_presentation_time_since_flush_ == 83 if (first_pts_since_flush_ == Packet::kUnknownPts) {
84 Packet::kUnknownPresentationTime) { 84 first_pts_since_flush_ = packet->pts();
85 first_presentation_time_since_flush_ = packet->presentation_time();
86 } 85 }
87 86
88 // If we're no longer connected, throw the packet away. 87 // If we're no longer connected, throw the packet away.
89 if (!consumer_.is_bound()) { 88 if (!consumer_.is_bound()) {
90 SetState(MediaState::UNPREPARED); 89 SetState(MediaState::UNPREPARED);
91 // TODO(dalesat): More shutdown? 90 // TODO(dalesat): More shutdown?
92 return Demand::kNegative; 91 return Demand::kNegative;
93 } 92 }
94 93
95 Demand demand; 94 Demand demand;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 MediaPacketPtr MojoProducer::CreateMediaPacket( 184 MediaPacketPtr MojoProducer::CreateMediaPacket(
186 const PacketPtr& packet) { 185 const PacketPtr& packet) {
187 DCHECK(packet); 186 DCHECK(packet);
188 187
189 MediaPacketRegionPtr region = MediaPacketRegion::New(); 188 MediaPacketRegionPtr region = MediaPacketRegion::New();
190 region->offset = packet->size() == 0 ? 0 : 189 region->offset = packet->size() == 0 ? 0 :
191 mojo_allocator_.OffsetFromPtr(packet->payload()); 190 mojo_allocator_.OffsetFromPtr(packet->payload());
192 region->length = packet->size(); 191 region->length = packet->size();
193 192
194 MediaPacketPtr media_packet = MediaPacket::New(); 193 MediaPacketPtr media_packet = MediaPacket::New();
195 media_packet->pts = packet->presentation_time(); 194 media_packet->pts = packet->pts();
196 media_packet->duration = packet->duration();
197 media_packet->end_of_stream = packet->end_of_stream(); 195 media_packet->end_of_stream = packet->end_of_stream();
198 media_packet->payload = region.Pass(); 196 media_packet->payload = region.Pass();
199 197
200 return media_packet.Pass(); 198 return media_packet.Pass();
201 } 199 }
202 200
203 } // namespace media 201 } // namespace media
204 } // namespace mojo 202 } // namespace mojo
OLDNEW
« no previous file with comments | « services/media/framework_mojo/mojo_producer.h ('k') | services/media/framework_mojo/mojo_pull_mode_producer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698