SourceBufferPrivateClient.h [plain text]
#ifndef SourceBufferPrivateClient_h
#define SourceBufferPrivateClient_h
#if ENABLE(MEDIA_SOURCE)
#include <wtf/MediaTime.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
namespace WebCore {
class SourceBufferPrivate;
class AudioTrackPrivate;
class VideoTrackPrivate;
class InbandTextTrackPrivate;
class MediaSample;
class MediaDescription;
class SourceBufferPrivateClient {
public:
virtual ~SourceBufferPrivateClient() { }
virtual void sourceBufferPrivateDidEndStream(SourceBufferPrivate*, const WTF::AtomicString&) = 0;
struct InitializationSegment {
MediaTime duration;
struct AudioTrackInformation {
RefPtr<MediaDescription> description;
RefPtr<AudioTrackPrivate> track;
};
Vector<AudioTrackInformation> audioTracks;
struct VideoTrackInformation {
RefPtr<MediaDescription> description;
RefPtr<VideoTrackPrivate> track;
};
Vector<VideoTrackInformation> videoTracks;
struct TextTrackInformation {
RefPtr<MediaDescription> description;
RefPtr<InbandTextTrackPrivate> track;
};
Vector<TextTrackInformation> textTracks;
};
virtual void sourceBufferPrivateDidReceiveInitializationSegment(SourceBufferPrivate*, const InitializationSegment&) = 0;
virtual void sourceBufferPrivateDidReceiveSample(SourceBufferPrivate*, PassRefPtr<MediaSample>) = 0;
virtual bool sourceBufferPrivateHasAudio(const SourceBufferPrivate*) const = 0;
virtual bool sourceBufferPrivateHasVideo(const SourceBufferPrivate*) const = 0;
virtual void sourceBufferPrivateDidBecomeReadyForMoreSamples(SourceBufferPrivate*, AtomicString trackID) = 0;
virtual MediaTime sourceBufferPrivateFastSeekTimeForMediaTime(SourceBufferPrivate*, const MediaTime& time, const MediaTime&, const MediaTime&) { return time; }
virtual void sourceBufferPrivateSeekToTime(SourceBufferPrivate*, const MediaTime&) { };
enum AppendResult {
AppendSucceeded,
ReadStreamFailed,
ParsingFailed,
};
virtual void sourceBufferPrivateAppendComplete(SourceBufferPrivate*, AppendResult) = 0;
virtual void sourceBufferPrivateDidReceiveRenderingError(SourceBufferPrivate*, int errocCode) = 0;
};
}
#endif // ENABLE(MEDIA_SOURCE)
#endif