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