xref: /haiku/src/apps/mediaplayer/media_node_framework/video/VideoSupplier.h (revision f27269a67d27a89bc60ff865fa57f8cf30a08bd1)
10fc56ed5SStephan Aßmus /*
20fc56ed5SStephan Aßmus  * Copyright 2001-2008 Ingo Weinhold <ingo_weinhold@gmx.de>
30fc56ed5SStephan Aßmus  * Copyright 2001-2008 Stephan Aßmus <superstippi@gmx.de>
40fc56ed5SStephan Aßmus  * All rights reserved. Distributed under the terms of the MIT licensce.
50fc56ed5SStephan Aßmus  */
60fc56ed5SStephan Aßmus #ifndef VIDEO_SUPPLIER_H
70fc56ed5SStephan Aßmus #define VIDEO_SUPPLIER_H
80fc56ed5SStephan Aßmus 
90fc56ed5SStephan Aßmus 
100fc56ed5SStephan Aßmus #include <SupportDefs.h>
11*f27269a6SX512 #include <MediaFormats.h>
120fc56ed5SStephan Aßmus 
130fc56ed5SStephan Aßmus 
14818577b2SStephan Aßmus struct media_raw_video_format;
150fc56ed5SStephan Aßmus 
160fc56ed5SStephan Aßmus 
170fc56ed5SStephan Aßmus class VideoSupplier {
180fc56ed5SStephan Aßmus public:
190fc56ed5SStephan Aßmus 								VideoSupplier();
200fc56ed5SStephan Aßmus 	virtual						~VideoSupplier();
210fc56ed5SStephan Aßmus 
22*f27269a6SX512 	virtual	const media_format&	Format() const = 0;
230fc56ed5SStephan Aßmus 	virtual	status_t			FillBuffer(int64 startFrame, void* buffer,
24818577b2SStephan Aßmus 									const media_raw_video_format& format,
25892e4f21SStephan Aßmus 									bool forceGeneration, bool& wasCached) = 0;
260fc56ed5SStephan Aßmus 
270fc56ed5SStephan Aßmus 	virtual	void				DeleteCaches();
280fc56ed5SStephan Aßmus 
ProcessingLatency()290fc56ed5SStephan Aßmus  	inline	bigtime_t			ProcessingLatency() const
300fc56ed5SStephan Aßmus  									{ return fProcessingLatency; }
310fc56ed5SStephan Aßmus 
320fc56ed5SStephan Aßmus protected:
330fc56ed5SStephan Aßmus 		 	bigtime_t			fProcessingLatency;
340fc56ed5SStephan Aßmus };
350fc56ed5SStephan Aßmus 
360fc56ed5SStephan Aßmus #endif	// VIDEO_SUPPLIER_H
37