1/*
2 * Copyright 2007, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Stephan A��mus <superstippi@gmx.de>
7 */
8#ifndef VIDEO_TRACK_SUPPLIER_H
9#define VIDEO_TRACK_SUPPLIER_H
10
11
12#include <MediaDefs.h>
13#include <MediaFormats.h>
14
15class VideoTrackSupplier {
16public:
17								VideoTrackSupplier();
18	virtual						~VideoTrackSupplier();
19
20	virtual	const media_format&	Format() const = 0;
21	virtual	status_t			GetEncodedFormat(media_format* format)
22									const = 0;
23	virtual	status_t			GetCodecInfo(media_codec_info* info) const = 0;
24	virtual	status_t			ReadFrame(void* buffer,
25									bigtime_t* performanceTime,
26									const media_raw_video_format& format,
27									bool& wasCached) = 0;
28	virtual	status_t			FindKeyFrameForFrame(int64* frame) = 0;
29	virtual	status_t			SeekToTime(bigtime_t* performanceTime) = 0;
30	virtual	status_t			SeekToFrame(int64* frame) = 0;
31
32	virtual	bigtime_t			Position() const = 0;
33	virtual	bigtime_t			Duration() const = 0;
34	virtual	int64				CurrentFrame() const = 0;
35
36	virtual	int32				TrackIndex() const = 0;
37};
38
39#endif // VIDEO_TRACK_SUPPLIER_H
40