xref: /haiku/src/apps/mediaplayer/supplier/ProxyVideoSupplier.h (revision f27269a67d27a89bc60ff865fa57f8cf30a08bd1)
10fc56ed5SStephan Aßmus /*
2818577b2SStephan Aßmus  * Copyright 2008 Stephan Aßmus <superstippi@gmx.de>
30fc56ed5SStephan Aßmus  * All rights reserved. Distributed under the terms of the MIT licensce.
40fc56ed5SStephan Aßmus  */
50fc56ed5SStephan Aßmus #ifndef PROXY_VIDEO_SUPPLIER_H
60fc56ed5SStephan Aßmus #define PROXY_VIDEO_SUPPLIER_H
70fc56ed5SStephan Aßmus 
84aa9ff58SStephan Aßmus #include <Locker.h>
90fc56ed5SStephan Aßmus 
100fc56ed5SStephan Aßmus #include "VideoSupplier.h"
110fc56ed5SStephan Aßmus 
120fc56ed5SStephan Aßmus 
130fc56ed5SStephan Aßmus class VideoTrackSupplier;
140fc56ed5SStephan Aßmus 
150fc56ed5SStephan Aßmus 
160fc56ed5SStephan Aßmus class ProxyVideoSupplier : public VideoSupplier {
170fc56ed5SStephan Aßmus public:
180fc56ed5SStephan Aßmus 								ProxyVideoSupplier();
190fc56ed5SStephan Aßmus 	virtual						~ProxyVideoSupplier();
200fc56ed5SStephan Aßmus 
21*f27269a6SX512 	virtual	const media_format&	Format() const;
220fc56ed5SStephan Aßmus 	virtual	status_t			FillBuffer(int64 startFrame, void* buffer,
23818577b2SStephan Aßmus 									const media_raw_video_format& format,
24892e4f21SStephan Aßmus 									bool forceGeneration, bool& wasCached);
250fc56ed5SStephan Aßmus 
260fc56ed5SStephan Aßmus 	virtual	void				DeleteCaches();
270fc56ed5SStephan Aßmus 
280fc56ed5SStephan Aßmus 			void				SetSupplier(VideoTrackSupplier* supplier);
290fc56ed5SStephan Aßmus 
300fc56ed5SStephan Aßmus private:
314aa9ff58SStephan Aßmus 			BLocker				fSupplierLock;
324aa9ff58SStephan Aßmus 
330fc56ed5SStephan Aßmus 			VideoTrackSupplier*	fSupplier;
340fc56ed5SStephan Aßmus };
350fc56ed5SStephan Aßmus 
360fc56ed5SStephan Aßmus #endif	// PROXY_VIDEO_SUPPLIER_H
37