InbandMetadataTextTrackPrivateGStreamer.h [plain text]
#pragma once
#if ENABLE(VIDEO) && USE(GSTREAMER)
#include "InbandTextTrackPrivate.h"
namespace WebCore {
class InbandMetadataTextTrackPrivateGStreamer : public InbandTextTrackPrivate {
public:
static Ref<InbandMetadataTextTrackPrivateGStreamer> create(Kind kind, CueFormat cueFormat, const AtomString& id = emptyAtom())
{
return adoptRef(*new InbandMetadataTextTrackPrivateGStreamer(kind, cueFormat, id));
}
~InbandMetadataTextTrackPrivateGStreamer() = default;
Kind kind() const override { return m_kind; }
AtomString id() const override { return m_id; }
AtomString inBandMetadataTrackDispatchType() const override { return m_inBandMetadataTrackDispatchType; }
void setInBandMetadataTrackDispatchType(const AtomString& value) { m_inBandMetadataTrackDispatchType = value; }
void addDataCue(const MediaTime& start, const MediaTime& end, const void* data, unsigned length)
{
ASSERT(cueFormat() == CueFormat::Data);
client()->addDataCue(start, end, data, length);
}
void addGenericCue(InbandGenericCue& data)
{
ASSERT(cueFormat() == CueFormat::Generic);
client()->addGenericCue(data);
}
private:
InbandMetadataTextTrackPrivateGStreamer(Kind kind, CueFormat cueFormat, const AtomString& id)
: InbandTextTrackPrivate(cueFormat)
, m_kind(kind)
, m_id(id)
{
}
Kind m_kind;
AtomString m_id;
AtomString m_inBandMetadataTrackDispatchType;
};
}
#endif // ENABLE(VIDEO) && USE(GSTREAMER)