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

Side by Side Diff: chromecast/media/cma/ipc/media_message.cc

Issue 1553503002: Convert Pass()→std::move() in //chromecast (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chromecast/media/cma/ipc/media_message.h" 5 #include "chromecast/media/cma/ipc/media_message.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <utility>
8 9
9 #include "base/logging.h" 10 #include "base/logging.h"
10 #include "chromecast/media/cma/ipc/media_memory_chunk.h" 11 #include "chromecast/media/cma/ipc/media_memory_chunk.h"
11 12
12 namespace chromecast { 13 namespace chromecast {
13 namespace media { 14 namespace media {
14 15
15 // static 16 // static
16 scoped_ptr<MediaMessage> MediaMessage::CreateDummyMessage(uint32_t type) { 17 scoped_ptr<MediaMessage> MediaMessage::CreateDummyMessage(uint32_t type) {
17 return scoped_ptr<MediaMessage>( 18 return scoped_ptr<MediaMessage>(
(...skipping 10 matching lines...) Expand all
28 // Make the message size a multiple of the alignment 29 // Make the message size a multiple of the alignment
29 // so that if we have proper alignment for array of messages. 30 // so that if we have proper alignment for array of messages.
30 size_t end_alignment = msg_size % ALIGNOF(SerializedMsg); 31 size_t end_alignment = msg_size % ALIGNOF(SerializedMsg);
31 if (end_alignment != 0) 32 if (end_alignment != 0)
32 msg_size += ALIGNOF(SerializedMsg) - end_alignment; 33 msg_size += ALIGNOF(SerializedMsg) - end_alignment;
33 34
34 scoped_ptr<MediaMemoryChunk> memory(memory_allocator.Run(msg_size)); 35 scoped_ptr<MediaMemoryChunk> memory(memory_allocator.Run(msg_size));
35 if (!memory) 36 if (!memory)
36 return scoped_ptr<MediaMessage>(); 37 return scoped_ptr<MediaMessage>();
37 38
38 return scoped_ptr<MediaMessage>(new MediaMessage(type, memory.Pass())); 39 return scoped_ptr<MediaMessage>(new MediaMessage(type, std::move(memory)));
39 } 40 }
40 41
41 // static 42 // static
42 scoped_ptr<MediaMessage> MediaMessage::CreateMessage( 43 scoped_ptr<MediaMessage> MediaMessage::CreateMessage(
43 uint32_t type, 44 uint32_t type,
44 scoped_ptr<MediaMemoryChunk> memory) { 45 scoped_ptr<MediaMemoryChunk> memory) {
45 return scoped_ptr<MediaMessage>(new MediaMessage(type, memory.Pass())); 46 return scoped_ptr<MediaMessage>(new MediaMessage(type, std::move(memory)));
46 } 47 }
47 48
48 // static 49 // static
49 scoped_ptr<MediaMessage> MediaMessage::MapMessage( 50 scoped_ptr<MediaMessage> MediaMessage::MapMessage(
50 scoped_ptr<MediaMemoryChunk> memory) { 51 scoped_ptr<MediaMemoryChunk> memory) {
51 return scoped_ptr<MediaMessage>(new MediaMessage(memory.Pass())); 52 return scoped_ptr<MediaMessage>(new MediaMessage(std::move(memory)));
52 } 53 }
53 54
54 MediaMessage::MediaMessage(uint32_t type, size_t msg_size) 55 MediaMessage::MediaMessage(uint32_t type, size_t msg_size)
55 : is_dummy_msg_(true), 56 : is_dummy_msg_(true),
56 cached_header_(&cached_msg_.header), 57 cached_header_(&cached_msg_.header),
57 msg_(&cached_msg_), 58 msg_(&cached_msg_),
58 msg_read_only_(&cached_msg_), 59 msg_read_only_(&cached_msg_),
59 rd_offset_(0) { 60 rd_offset_(0) {
60 cached_header_->size = msg_size; 61 cached_header_->size = msg_size;
61 cached_header_->type = type; 62 cached_header_->type = type;
62 cached_header_->content_size = 0; 63 cached_header_->content_size = 0;
63 } 64 }
64 65
65 MediaMessage::MediaMessage(uint32_t type, scoped_ptr<MediaMemoryChunk> memory) 66 MediaMessage::MediaMessage(uint32_t type, scoped_ptr<MediaMemoryChunk> memory)
66 : is_dummy_msg_(false), 67 : is_dummy_msg_(false),
67 cached_header_(&cached_msg_.header), 68 cached_header_(&cached_msg_.header),
68 msg_(static_cast<SerializedMsg*>(memory->data())), 69 msg_(static_cast<SerializedMsg*>(memory->data())),
69 msg_read_only_(msg_), 70 msg_read_only_(msg_),
70 mem_(memory.Pass()), 71 mem_(std::move(memory)),
71 rd_offset_(0) { 72 rd_offset_(0) {
72 CHECK(mem_->valid()); 73 CHECK(mem_->valid());
73 CHECK_GE(mem_->size(), minimum_msg_size()); 74 CHECK_GE(mem_->size(), minimum_msg_size());
74 75
75 // Check memory alignment: 76 // Check memory alignment:
76 // needed to cast properly |msg_dst| to a SerializedMsg. 77 // needed to cast properly |msg_dst| to a SerializedMsg.
77 CHECK_EQ( 78 CHECK_EQ(
78 reinterpret_cast<uintptr_t>(mem_->data()) % ALIGNOF(SerializedMsg), 0u); 79 reinterpret_cast<uintptr_t>(mem_->data()) % ALIGNOF(SerializedMsg), 0u);
79 80
80 // Make sure that |mem_->data()| + |mem_->size()| is also aligned correctly. 81 // Make sure that |mem_->data()| + |mem_->size()| is also aligned correctly.
81 // This is needed if we append a second serialized message next to this one. 82 // This is needed if we append a second serialized message next to this one.
82 // The second serialized message must be aligned correctly. 83 // The second serialized message must be aligned correctly.
83 // It is similar to what a compiler is doing for arrays of structures. 84 // It is similar to what a compiler is doing for arrays of structures.
84 CHECK_EQ(mem_->size() % ALIGNOF(SerializedMsg), 0u); 85 CHECK_EQ(mem_->size() % ALIGNOF(SerializedMsg), 0u);
85 86
86 cached_header_->size = mem_->size(); 87 cached_header_->size = mem_->size();
87 cached_header_->type = type; 88 cached_header_->type = type;
88 cached_header_->content_size = 0; 89 cached_header_->content_size = 0;
89 msg_->header = *cached_header_; 90 msg_->header = *cached_header_;
90 } 91 }
91 92
92 MediaMessage::MediaMessage(scoped_ptr<MediaMemoryChunk> memory) 93 MediaMessage::MediaMessage(scoped_ptr<MediaMemoryChunk> memory)
93 : is_dummy_msg_(false), 94 : is_dummy_msg_(false),
94 cached_header_(&cached_msg_.header), 95 cached_header_(&cached_msg_.header),
95 msg_(NULL), 96 msg_(NULL),
96 msg_read_only_(static_cast<SerializedMsg*>(memory->data())), 97 msg_read_only_(static_cast<SerializedMsg*>(memory->data())),
97 mem_(memory.Pass()), 98 mem_(std::move(memory)),
98 rd_offset_(0) { 99 rd_offset_(0) {
99 CHECK(mem_->valid()); 100 CHECK(mem_->valid());
100 101
101 // Check memory alignment. 102 // Check memory alignment.
102 CHECK_EQ( 103 CHECK_EQ(
103 reinterpret_cast<uintptr_t>(mem_->data()) % ALIGNOF(SerializedMsg), 0u); 104 reinterpret_cast<uintptr_t>(mem_->data()) % ALIGNOF(SerializedMsg), 0u);
104 105
105 // Cache the message header which cannot be modified while reading. 106 // Cache the message header which cannot be modified while reading.
106 CHECK_GE(mem_->size(), minimum_msg_size()); 107 CHECK_GE(mem_->size(), minimum_msg_size());
107 *cached_header_ = msg_read_only_->header; 108 *cached_header_ = msg_read_only_->header;
108 CHECK_GE(cached_header_->size, minimum_msg_size()); 109 CHECK_GE(cached_header_->size, minimum_msg_size());
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 rd_offset_ += size; 188 rd_offset_ += size;
188 return rd_ptr; 189 return rd_ptr;
189 } 190 }
190 191
191 const void* MediaMessage::GetBuffer(size_t size) { 192 const void* MediaMessage::GetBuffer(size_t size) {
192 return GetWritableBuffer(size); 193 return GetWritableBuffer(size);
193 } 194 }
194 195
195 } // namespace media 196 } // namespace media
196 } // namespace chromecast 197 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cma/decoder/cast_audio_decoder_linux.cc ('k') | chromecast/media/cma/ipc/media_message_fifo.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698