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

57 lines
No EOL
1.2 KiB
C++

#ifndef MKVP_CUES_HPP
#define MKVP_CUES_HPP
#include "memory.hpp"
#include "cuepoint.hpp"
#include "ebmlelement.hpp"
#include <vector>
namespace mkvparser
{
class Track;
class BlockEntry;
class Cues : public mem::AllocBase
{
friend class Segment;
Cues(Segment*, const EBMLElement&);
~Cues();
Cues(const Cues&);
Cues& operator=(const Cues&);
public:
bool Find( //lower bound of time_ns
long long time_ns,
const Track*,
const CuePoint*&,
const CuePoint::TrackPosition*&) const;
const CuePoint* GetFirst() const;
const CuePoint* GetLast() const;
const CuePoint* GetNext(const CuePoint*) const;
const BlockEntry* GetBlock(
const CuePoint*,
const CuePoint::TrackPosition*) const;
bool LoadCuePoint();
long GetCount() const;
bool DoneParsing() const;
const EBMLElement& GetEBMLElement() const { return m_elemInfo; }
private:
Segment* const m_pSegment;
EBMLElement m_elemInfo;
typedef std::vector<CuePoint*, mem::StlAllocator<CuePoint*> > CuePointVect_t;
CuePointVect_t m_cue_points;
long long m_pos;
};
} // namespace mkvparser
#endif // MKVP_CUES_HPP