InbandMetadataTextTrackPrivateAVF.h [plain text]
#ifndef InbandMetadataTextTrackPrivateAVF_h
#define InbandMetadataTextTrackPrivateAVF_h
#if ENABLE(VIDEO) && USE(AVFOUNDATION)
#include "InbandTextTrackPrivate.h"
namespace WebCore {
#if ENABLE(DATACUE_VALUE)
class IncompleteMetaDataCue {
public:
IncompleteMetaDataCue(double time, PassRefPtr<SerializedPlatformRepresentation> cueData)
: m_cueData(cueData)
, m_startTime(time)
{
}
~IncompleteMetaDataCue() { }
RefPtr<SerializedPlatformRepresentation> cueData() const { return m_cueData; }
double startTime() const { return m_startTime; }
private:
RefPtr<SerializedPlatformRepresentation> m_cueData;
double m_startTime;
};
#endif
class InbandMetadataTextTrackPrivateAVF : public InbandTextTrackPrivate {
public:
static PassRefPtr<InbandMetadataTextTrackPrivateAVF> create(Kind, CueFormat, const AtomicString& id = emptyAtom);
~InbandMetadataTextTrackPrivateAVF();
virtual Kind kind() const override { return m_kind; }
virtual AtomicString id() const override { return m_id; }
virtual AtomicString inBandMetadataTrackDispatchType() const override { return m_inBandMetadataTrackDispatchType; }
void setInBandMetadataTrackDispatchType(const AtomicString& value) { m_inBandMetadataTrackDispatchType = value; }
#if ENABLE(DATACUE_VALUE)
void addDataCue(double start, double end, PassRefPtr<SerializedPlatformRepresentation>, const String&);
void updatePendingCueEndTimes(double);
#endif
void flushPartialCues();
private:
InbandMetadataTextTrackPrivateAVF(Kind, CueFormat, const AtomicString&);
Kind m_kind;
AtomicString m_id;
AtomicString m_inBandMetadataTrackDispatchType;
double m_currentCueStartTime;
#if ENABLE(DATACUE_VALUE)
Vector<IncompleteMetaDataCue*> m_incompleteCues;
#endif
};
}
#endif // ENABLE(VIDEO) && USE(AVFOUNDATION)
#endif // InbandMetadataTextTrackPrivateAVF_h