You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
// Copyright (c) 2010 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. |
|
|
|
#ifndef MKVREADER_HPP |
|
#define MKVREADER_HPP |
|
|
|
#include "mkvparser.hpp" |
|
#include <cstdio> |
|
|
|
namespace mkvparser { |
|
|
|
class MkvReader : public IMkvReader { |
|
public: |
|
MkvReader(); |
|
explicit MkvReader(FILE* fp); |
|
virtual ~MkvReader(); |
|
|
|
int Open(const char*); |
|
void Close(); |
|
|
|
virtual int Read(long long position, long length, unsigned char* buffer); |
|
virtual int Length(long long* total, long long* available); |
|
|
|
private: |
|
MkvReader(const MkvReader&); |
|
MkvReader& operator=(const MkvReader&); |
|
|
|
// Determines the size of the file. This is called either by the constructor |
|
// or by the Open function depending on file ownership. Returns true on |
|
// success. |
|
bool GetFileSize(); |
|
|
|
long long m_length; |
|
FILE* m_file; |
|
bool reader_owns_file_; |
|
}; |
|
|
|
} // end namespace mkvparser |
|
|
|
#endif // MKVREADER_HPP
|
|
|