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

Side by Side Diff: media/webm/cluster_builder.cc

Issue 9015015: Take advantage of the new Pass() machinery on scoped_ptr{,_malloc}. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 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 | Annotate | Revision Log
« no previous file with comments | « media/webm/cluster_builder.h ('k') | media/webm/webm_cluster_parser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "media/webm/cluster_builder.h" 5 #include "media/webm/cluster_builder.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "media/base/data_buffer.h" 8 #include "media/base/data_buffer.h"
9 9
10 namespace media { 10 namespace media {
(...skipping 13 matching lines...) Expand all
24 static const uint8 kSimpleBlockHeader[] = { 24 static const uint8 kSimpleBlockHeader[] = {
25 0xA3, // SimpleBlock ID 25 0xA3, // SimpleBlock ID
26 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // SimpleBlock(size = 0) 26 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // SimpleBlock(size = 0)
27 }; 27 };
28 28
29 const int kSimpleBlockHeaderSize = sizeof(kSimpleBlockHeader); 29 const int kSimpleBlockHeaderSize = sizeof(kSimpleBlockHeader);
30 const int kSimpleBlockSizeOffset = 1; 30 const int kSimpleBlockSizeOffset = 1;
31 31
32 const int kInitialBufferSize = 32768; 32 const int kInitialBufferSize = 32768;
33 33
34 Cluster::Cluster(const uint8* data, int size) : data_(data), size_(size) {} 34 Cluster::Cluster(scoped_array<uint8> data, int size)
35 : data_(data.Pass()), size_(size) {}
35 Cluster::~Cluster() {} 36 Cluster::~Cluster() {}
36 37
37 ClusterBuilder::ClusterBuilder() { Reset(); } 38 ClusterBuilder::ClusterBuilder() { Reset(); }
38 ClusterBuilder::~ClusterBuilder() {} 39 ClusterBuilder::~ClusterBuilder() {}
39 40
40 void ClusterBuilder::SetClusterTimecode(int64 cluster_timecode) { 41 void ClusterBuilder::SetClusterTimecode(int64 cluster_timecode) {
41 DCHECK_EQ(cluster_timecode_, -1); 42 DCHECK_EQ(cluster_timecode_, -1);
42 43
43 cluster_timecode_ = cluster_timecode; 44 cluster_timecode_ = cluster_timecode;
44 45
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 78
78 buf[0] = 0x80 | (track_num & 0x7F); 79 buf[0] = 0x80 | (track_num & 0x7F);
79 buf[1] = (timecode_delta >> 8) & 0xff; 80 buf[1] = (timecode_delta >> 8) & 0xff;
80 buf[2] = timecode_delta & 0xff; 81 buf[2] = timecode_delta & 0xff;
81 buf[3] = flags & 0xff; 82 buf[3] = flags & 0xff;
82 memcpy(buf + 4, data, size); 83 memcpy(buf + 4, data, size);
83 84
84 bytes_used_ += bytes_needed; 85 bytes_used_ += bytes_needed;
85 } 86 }
86 87
87 Cluster* ClusterBuilder::Finish() { 88 scoped_ptr<Cluster> ClusterBuilder::Finish() {
88 DCHECK_NE(cluster_timecode_, -1); 89 DCHECK_NE(cluster_timecode_, -1);
89 90
90 UpdateUInt64(kClusterSizeOffset, bytes_used_ - (kClusterSizeOffset + 8)); 91 UpdateUInt64(kClusterSizeOffset, bytes_used_ - (kClusterSizeOffset + 8));
91 92
92 scoped_ptr<Cluster> ret(new Cluster(buffer_.release(), bytes_used_)); 93 scoped_ptr<Cluster> ret(new Cluster(buffer_.Pass(), bytes_used_));
93 Reset(); 94 Reset();
94 return ret.release(); 95 return ret.Pass();
95 } 96 }
96 97
97 void ClusterBuilder::Reset() { 98 void ClusterBuilder::Reset() {
98 buffer_size_ = kInitialBufferSize; 99 buffer_size_ = kInitialBufferSize;
99 buffer_.reset(new uint8[buffer_size_]); 100 buffer_.reset(new uint8[buffer_size_]);
100 memcpy(buffer_.get(), kClusterHeader, kClusterHeaderSize); 101 memcpy(buffer_.get(), kClusterHeader, kClusterHeaderSize);
101 bytes_used_ = kClusterHeaderSize; 102 bytes_used_ = kClusterHeaderSize;
102 cluster_timecode_ = -1; 103 cluster_timecode_ = -1;
103 } 104 }
104 105
(...skipping 15 matching lines...) Expand all
120 uint8* buf = buffer_.get() + offset; 121 uint8* buf = buffer_.get() + offset;
121 122
122 // Fill the last 7 bytes of size field in big-endian order. 123 // Fill the last 7 bytes of size field in big-endian order.
123 for (int i = 7; i > 0; i--) { 124 for (int i = 7; i > 0; i--) {
124 buf[i] = value & 0xff; 125 buf[i] = value & 0xff;
125 value >>= 8; 126 value >>= 8;
126 } 127 }
127 } 128 }
128 129
129 } // namespace media 130 } // namespace media
OLDNEW
« no previous file with comments | « media/webm/cluster_builder.h ('k') | media/webm/webm_cluster_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698