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