JD2022-TU1/main/extern/libwebm/custom/mkvparser/ebmlelement.hpp

37 lines
No EOL
1,012 B
C++

#ifndef MKVP_EBMLELEMENT_HPP
#define MKVP_EBMLELEMENT_HPP
#include "memory.hpp"
namespace mkvparser
{
class IMkvReader;
class EBMLElement : public mem::AllocBase
{
public:
EBMLElement();
long long Parse(IMkvReader* _reader, long long _pos);
long long GetID() const { return m_id; }
long long GetPos() const { return m_pos; }
long long GetEndPos() const { return m_payloadPos + m_payloadSize; }
long long GetSize() const { return m_payloadSize + m_payloadPos - m_pos; }
long long GetPayloadPos() const { return m_payloadPos; }
long long GetPayloadSize() const { return m_payloadSize; }
private:
void Reset();
private:
long long m_id; // ebml element id
long long m_pos; // start position in the file
long long m_payloadPos; // payload start position
long long m_payloadSize; // payload size
};
} // namespace mkvparser
#endif // MKVP_EBMLELEMENT_HPP