MockMediaSourcePrivate.h [plain text]
#ifndef MockMediaSourcePrivate_h
#define MockMediaSourcePrivate_h
#if ENABLE(MEDIA_SOURCE)
#include "MediaSourcePrivate.h"
#include <wtf/MediaTime.h>
namespace WebCore {
class MockMediaPlayerMediaSource;
class MockSourceBufferPrivate;
class TimeRanges;
class MockMediaSourcePrivate final : public MediaSourcePrivate {
public:
static RefPtr<MockMediaSourcePrivate> create(MockMediaPlayerMediaSource*, MediaSourcePrivateClient*);
virtual ~MockMediaSourcePrivate();
const Vector<MockSourceBufferPrivate*>& activeSourceBuffers() const { return m_activeSourceBuffers; }
bool hasAudio() const;
bool hasVideo() const;
double duration();
std::unique_ptr<PlatformTimeRanges> buffered();
MockMediaPlayerMediaSource* player() const { return m_player; }
void seekToTime(const MediaTime&);
MediaTime seekToTime(const MediaTime&, const MediaTime& negativeThreshold, const MediaTime& positiveThreshold);
unsigned long totalVideoFrames() const { return m_totalVideoFrames; }
unsigned long droppedVideoFrames() const { return m_droppedVideoFrames; }
unsigned long corruptedVideoFrames() const { return m_corruptedVideoFrames; }
double totalFrameDelay() const { return m_totalFrameDelay; }
void incrementTotalVideoFrames() { ++m_totalVideoFrames; }
void incrementDroppedFrames() { ++m_droppedVideoFrames; }
void incrementCorruptedFrames() { ++m_corruptedVideoFrames; }
void incrementTotalFrameDelayBy(double delay) { m_totalFrameDelay += delay; }
private:
MockMediaSourcePrivate(MockMediaPlayerMediaSource*, MediaSourcePrivateClient*);
virtual AddStatus addSourceBuffer(const ContentType&, RefPtr<SourceBufferPrivate>&) override;
virtual void durationChanged() override;
virtual void markEndOfStream(EndOfStreamStatus) override;
virtual void unmarkEndOfStream() override;
virtual MediaPlayer::ReadyState readyState() const override;
virtual void setReadyState(MediaPlayer::ReadyState) override;
virtual void waitForSeekCompleted() override;
virtual void seekCompleted() override;
void sourceBufferPrivateDidChangeActiveState(MockSourceBufferPrivate*, bool active);
void removeSourceBuffer(SourceBufferPrivate*);
friend class MockSourceBufferPrivate;
MockMediaPlayerMediaSource* m_player;
RefPtr<MediaSourcePrivateClient> m_client;
Vector<RefPtr<MockSourceBufferPrivate>> m_sourceBuffers;
Vector<MockSourceBufferPrivate*> m_activeSourceBuffers;
bool m_isEnded;
unsigned long m_totalVideoFrames;
unsigned long m_droppedVideoFrames;
unsigned long m_corruptedVideoFrames;
double m_totalFrameDelay;
};
}
#endif // ENABLE(MEDIA_SOURCE)
#endif // MockMediaSourcePrivate_h