Vignesh Venkatasubramanianthird_party/libwebm: pull from upstreamc33787712 years agoHistory
90 lines · 1.8 KB · C++
RawDownload
// Copyright (c) 2012 The WebM project authors. All Rights Reserved.//// Use of this source code is governed by a BSD-style license// that can be found in the LICENSE file in the root of the source// tree. An additional intellectual property rights grant can be found// in the file PATENTS.  All contributing project authors may// be found in the AUTHORS file in the root of the source tree. #include "mkvwriter.hpp" #ifdef _MSC_VER#include <share.h>  // for _SH_DENYWR#endif #include <new> namespace mkvmuxer { MkvWriter::MkvWriter() : file_(NULL), writer_owns_file_(true) {} MkvWriter::MkvWriter(FILE* fp) : file_(fp), writer_owns_file_(false) {} MkvWriter::~MkvWriter() { Close(); } int32 MkvWriter::Write(const void* buffer, uint32 length) {  if (!file_)    return -1;   if (length == 0)    return 0;   if (buffer == NULL)    return -1;   const size_t bytes_written = fwrite(buffer, 1, length, file_);   return (bytes_written == length) ? 0 : -1;} bool MkvWriter::Open(const char* filename) {  if (filename == NULL)    return false;   if (file_)    return false; #ifdef _MSC_VER  file_ = _fsopen(filename, "wb", _SH_DENYWR);#else  file_ = fopen(filename, "wb");#endif  if (file_ == NULL)    return false;  return true;} void MkvWriter::Close() {  if (file_ && writer_owns_file_) {    fclose(file_);  }  file_ = NULL;} int64 MkvWriter::Position() const {  if (!file_)    return 0; #ifdef _MSC_VER  return _ftelli64(file_);#else  return ftell(file_);#endif} int32 MkvWriter::Position(int64 position) {  if (!file_)    return -1; #ifdef _MSC_VER  return _fseeki64(file_, position, SEEK_SET);#else  return fseek(file_, position, SEEK_SET);#endif} bool MkvWriter::Seekable() const { return true; } void MkvWriter::ElementStartNotify(uint64, int64) {} }  // namespace mkvmuxer

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t