SourceBufferPrivate.h [plain text]
#pragma once
#if ENABLE(MEDIA_SOURCE)
#include "MediaPlayer.h"
#include <wtf/Logger.h>
namespace WebCore {
class MediaSample;
class SourceBufferPrivateClient;
class SourceBufferPrivate : public RefCounted<SourceBufferPrivate> {
public:
virtual ~SourceBufferPrivate() = default;
virtual void setClient(SourceBufferPrivateClient*) = 0;
virtual void append(Vector<unsigned char>&&) = 0;
virtual void abort() = 0;
virtual void resetParserState() = 0;
virtual void removedFromMediaSource() = 0;
virtual MediaPlayer::ReadyState readyState() const = 0;
virtual void setReadyState(MediaPlayer::ReadyState) = 0;
virtual void flush(const AtomString&) { }
virtual void enqueueSample(Ref<MediaSample>&&, const AtomString&) { }
virtual void allSamplesInTrackEnqueued(const AtomString&) { }
virtual bool isReadyForMoreSamples(const AtomString&) { return false; }
virtual void setActive(bool) { }
virtual void notifyClientWhenReadyForMoreSamples(const AtomString&) { }
virtual bool canSetMinimumUpcomingPresentationTime(const AtomString&) const { return false; }
virtual void setMinimumUpcomingPresentationTime(const AtomString&, const MediaTime&) { }
virtual void clearMinimumUpcomingPresentationTime(const AtomString&) { }
virtual bool canSwitchToType(const ContentType&) { return false; }
virtual Vector<String> enqueuedSamplesForTrackID(const AtomString&) { return { }; }
virtual MediaTime minimumUpcomingPresentationTimeForTrackID(const AtomString&) { return MediaTime::invalidTime(); }
virtual void setMaximumQueueDepthForTrackID(const AtomString&, size_t) { }
#if !RELEASE_LOG_DISABLED
virtual const Logger& sourceBufferLogger() const = 0;
virtual const void* sourceBufferLogIdentifier() = 0;
#endif
};
}
#endif