winamp/Src/Plugins/Input/in_mkv/MKVInfo.h

26 lines
637 B
C++

#pragma once
#include "../nsmkv/header.h"
#include "../nsmkv/segmentinfo.h"
#include "../nsmkv/tracks.h"
// parses only enough information to use in GetExtendedFileInfo
class MKVInfo
{
public:
MKVInfo();
bool Open(const wchar_t *filename);
int GetLengthMilliseconds();
const char *GetTitle();
int GetBitrate();
bool GetHeight(int &height);
bool GetWidth(int &width);
const nsmkv::Tracks *GetTracks();
private:
uint64_t ReadSegment(nsmkv::MKVReader *reader, uint64_t size);
bool segment_info_found;
bool tracks_found;
nsmkv::Header header;
nsmkv::SegmentInfo segment_info;
nsmkv::Tracks tracks;
uint64_t content_length;
};