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