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

Side by Side Diff: source/libvpx/third_party/libwebm/mkvwriter.cpp

Issue 232133009: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 8 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
OLDNEW
(Empty)
1 // Copyright (c) 2012 The WebM project authors. All Rights Reserved.
2 //
3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the LICENSE file in the root of the source
5 // tree. An additional intellectual property rights grant can be found
6 // in the file PATENTS. All contributing project authors may
7 // be found in the AUTHORS file in the root of the source tree.
8
9 #include "mkvwriter.hpp"
10
11 #ifdef _MSC_VER
12 #include <share.h> // for _SH_DENYWR
13 #endif
14
15 #include <new>
16
17 namespace mkvmuxer {
18
19 MkvWriter::MkvWriter() : file_(NULL), writer_owns_file_(true) {
20 }
21
22 MkvWriter::MkvWriter(FILE* fp): file_(fp), writer_owns_file_(false) {
23 }
24
25 MkvWriter::~MkvWriter() {
26 Close();
27 }
28
29 int32 MkvWriter::Write(const void* buffer, uint32 length) {
30 if (!file_)
31 return -1;
32
33 if (length == 0)
34 return 0;
35
36 if (buffer == NULL)
37 return -1;
38
39 const size_t bytes_written = fwrite(buffer, 1, length, file_);
40
41 return (bytes_written == length) ? 0 : -1;
42 }
43
44 bool MkvWriter::Open(const char* filename) {
45 if (filename == NULL)
46 return false;
47
48 if (file_)
49 return false;
50
51 #ifdef _MSC_VER
52 file_ = _fsopen(filename, "wb", _SH_DENYWR);
53 #else
54 file_ = fopen(filename, "wb");
55 #endif
56 if (file_ == NULL)
57 return false;
58 return true;
59 }
60
61 void MkvWriter::Close() {
62 if (file_ && writer_owns_file_) {
63 fclose(file_);
64 }
65 file_ = NULL;
66 }
67
68 int64 MkvWriter::Position() const {
69 if (!file_)
70 return 0;
71
72 #ifdef _MSC_VER
73 return _ftelli64(file_);
74 #else
75 return ftell(file_);
76 #endif
77 }
78
79 int32 MkvWriter::Position(int64 position) {
80 if (!file_)
81 return -1;
82
83 #ifdef _MSC_VER
84 return _fseeki64(file_, position, SEEK_SET);
85 #else
86 return fseek(file_, position, SEEK_SET);
87 #endif
88 }
89
90 bool MkvWriter::Seekable() const {
91 return true;
92 }
93
94 void MkvWriter::ElementStartNotify(uint64, int64) {
95 }
96
97 } // namespace mkvmuxer
OLDNEW
« no previous file with comments | « source/libvpx/third_party/libwebm/mkvwriter.hpp ('k') | source/libvpx/third_party/libwebm/webmids.hpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698