1 #ifndef _AtmoExternalCaptureInput_h_
2 #define _AtmoExternalCaptureInput_h_
9 # if defined(_ATMO_VLC_PLUGIN_)
10 // need bitmap info header
11 # include <vlc_codecs.h>
15 #if !defined(_ATMO_VLC_PLUGIN_)
17 # include "AtmoWin_h.h"
20 #include "AtmoInput.h"
21 #include "AtmoThread.h"
22 #include "AtmoConfig.h"
23 #include "AtmoDynData.h"
24 #include "AtmoCalculations.h"
27 class CAtmoExternalCaptureInput :
32 #if defined(_ATMO_VLC_PLUGIN_)
33 vlc_cond_t m_WakeupCond;
34 vlc_mutex_t m_WakeupLock;
36 HANDLE m_hWakeupEvent;
39 BITMAPINFOHEADER m_CurrentFrameHeader;
40 void *m_pCurrentFramePixels;
42 virtual DWORD Execute(void);
47 this method is called from the com server AtmoLiveViewControlImpl!
48 or inside videolan from the filter method to start a new processing
50 void DeliverNewSourceDataPaket(BITMAPINFOHEADER *bmpInfoHeader,void *pixelData);
53 CAtmoExternalCaptureInput(CAtmoDynData *pAtmoDynData);
54 virtual ~CAtmoExternalCaptureInput(void);
57 Opens the input-device. Parameters (e.g. the device-name)
58 Returns true if the input-device was opened successfully.
59 input-device can be the GDI surface of screen (windows only)
60 or the videolan filter
62 virtual ATMO_BOOL Open(void);
65 Closes the input-device.
66 Returns true if the input-device was closed successfully.
68 virtual ATMO_BOOL Close(void);
71 this method is called from the AtmoLiveView thread - to get the
72 new color packet (a packet is an RGB triple for each channel)
74 virtual tColorPacket GetColorPacket(void);
77 this method is also called from the AtmoLiveView thread - to
80 virtual void WaitForNextFrame(DWORD timeout);