OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/webm_encoder.h" | 5 #include "media/webm/chromeos/webm_encoder.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 while (!has_errors_ && (packet = vpx_codec_get_cx_data(&codec, &iter))) { | 150 while (!has_errors_ && (packet = vpx_codec_get_cx_data(&codec, &iter))) { |
151 if (packet->kind == VPX_CODEC_CX_FRAME_PKT) | 151 if (packet->kind == VPX_CODEC_CX_FRAME_PKT) |
152 WriteWebmBlock(packet); | 152 WriteWebmBlock(packet); |
153 } | 153 } |
154 } | 154 } |
155 | 155 |
156 return WriteWebmFooter(); | 156 return WriteWebmFooter(); |
157 } | 157 } |
158 | 158 |
159 bool WebmEncoder::WriteWebmHeader() { | 159 bool WebmEncoder::WriteWebmHeader() { |
160 output_ = file_util::OpenFile(output_path_, "wb"); | 160 output_ = base::OpenFile(output_path_, "wb"); |
161 if (!output_) | 161 if (!output_) |
162 return false; | 162 return false; |
163 | 163 |
164 // Global header. | 164 // Global header. |
165 StartSubElement(EBML); | 165 StartSubElement(EBML); |
166 { | 166 { |
167 Ebml_SerializeUnsigned(&ebml_writer_, EBMLVersion, 1); | 167 Ebml_SerializeUnsigned(&ebml_writer_, EBMLVersion, 1); |
168 Ebml_SerializeUnsigned(&ebml_writer_, EBMLReadVersion, 1); | 168 Ebml_SerializeUnsigned(&ebml_writer_, EBMLReadVersion, 1); |
169 Ebml_SerializeUnsigned(&ebml_writer_, EBMLMaxIDLength, 4); | 169 Ebml_SerializeUnsigned(&ebml_writer_, EBMLMaxIDLength, 4); |
170 Ebml_SerializeUnsigned(&ebml_writer_, EBMLMaxSizeLength, 8); | 170 Ebml_SerializeUnsigned(&ebml_writer_, EBMLMaxSizeLength, 8); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 flags |= 0x08; | 244 flags |= 0x08; |
245 EbmlSerializeHelper(&flags, 1); | 245 EbmlSerializeHelper(&flags, 1); |
246 | 246 |
247 EbmlWrite(packet->data.frame.buf, packet->data.frame.sz); | 247 EbmlWrite(packet->data.frame.buf, packet->data.frame.sz); |
248 } | 248 } |
249 | 249 |
250 bool WebmEncoder::WriteWebmFooter() { | 250 bool WebmEncoder::WriteWebmFooter() { |
251 EndSubElement(); // Cluster | 251 EndSubElement(); // Cluster |
252 EndSubElement(); // Segment | 252 EndSubElement(); // Segment |
253 DCHECK(ebml_sub_elements_.empty()); | 253 DCHECK(ebml_sub_elements_.empty()); |
254 return file_util::CloseFile(output_) && !has_errors_; | 254 return base::CloseFile(output_) && !has_errors_; |
255 } | 255 } |
256 | 256 |
257 void WebmEncoder::StartSubElement(unsigned long class_id) { | 257 void WebmEncoder::StartSubElement(unsigned long class_id) { |
258 Ebml_WriteID(&ebml_writer_, class_id); | 258 Ebml_WriteID(&ebml_writer_, class_id); |
259 ebml_sub_elements_.push(ftell(output_)); | 259 ebml_sub_elements_.push(ftell(output_)); |
260 static const uint64_t kUnknownLen = 0x01FFFFFFFFFFFFFFLLU; | 260 static const uint64_t kUnknownLen = 0x01FFFFFFFFFFFFFFLLU; |
261 EbmlSerializeHelper(&kUnknownLen, 8); | 261 EbmlSerializeHelper(&kUnknownLen, 8); |
262 } | 262 } |
263 | 263 |
264 void WebmEncoder::EndSubElement() { | 264 void WebmEncoder::EndSubElement() { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 case 8: | 312 case 8: |
313 return EbmlSerializeHelper(static_cast<const int64_t*>(buffer), len); | 313 return EbmlSerializeHelper(static_cast<const int64_t*>(buffer), len); |
314 default: | 314 default: |
315 NOTREACHED() << "Invalid EbmlSerialize length: " << len; | 315 NOTREACHED() << "Invalid EbmlSerialize length: " << len; |
316 } | 316 } |
317 } | 317 } |
318 | 318 |
319 } // namespace chromeos | 319 } // namespace chromeos |
320 | 320 |
321 } // namespace media | 321 } // namespace media |
OLD | NEW |