10fc56ed5SStephan Aßmus /* 2*818577b2SStephan 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 210fc56ed5SStephan Aßmus virtual status_t FillBuffer(int64 startFrame, void* buffer, 22*818577b2SStephan Aßmus const media_raw_video_format& format, 230fc56ed5SStephan Aßmus bool& wasCached); 240fc56ed5SStephan Aßmus 250fc56ed5SStephan Aßmus virtual void DeleteCaches(); 260fc56ed5SStephan Aßmus 270fc56ed5SStephan Aßmus void SetSupplier(VideoTrackSupplier* supplier); 280fc56ed5SStephan Aßmus 290fc56ed5SStephan Aßmus private: 304aa9ff58SStephan Aßmus BLocker fSupplierLock; 314aa9ff58SStephan Aßmus 320fc56ed5SStephan Aßmus VideoTrackSupplier* fSupplier; 33*818577b2SStephan Aßmus 34*818577b2SStephan Aßmus void* fCachedFrame; 35*818577b2SStephan Aßmus size_t fCachedFrameSize; 36*818577b2SStephan Aßmus bool fCachedFrameValid; 37*818577b2SStephan Aßmus bool fUseFrameCaching; 380fc56ed5SStephan Aßmus }; 390fc56ed5SStephan Aßmus 400fc56ed5SStephan Aßmus #endif // PROXY_VIDEO_SUPPLIER_H 41