00001 #ifndef IMAGE_GSTREAMERINPUT_H 00002 #define IMAGE_GSTREAMERINPUT_H 00003 00004 #include "mimasconfig.h" 00005 00006 #if defined(HAVE_SYS_SEM_H) && defined(HAVE_SYS_SHM_H) 00007 00008 #include "image_input.h" 00009 00010 namespace mimas { 00011 00024 template< typename T > 00025 class image_gstreamerinput: public image_input< T > 00026 { 00027 public: 00034 image_gstreamerinput( int _shmkey, int _semkey ) throw(mimasexception); 00036 virtual ~image_gstreamerinput(void); 00041 virtual void read( image< T > &image ) throw (mimasexception); 00042 protected: 00044 int semkey; 00046 int shmkey; 00048 int semid; 00050 int shmid; 00052 void *shmem; 00053 }; 00054 00055 template< typename T, typename U > 00056 inline image_gstreamerinput< T > &operator>> 00057 ( image_gstreamerinput< T > &input, image< U > &im ) 00058 { 00059 if ( typeid( T ) == typeid( U ) ) 00060 input.read( im ); 00061 else { 00062 image< T > temp; 00063 input.read( temp ); 00064 im = image< U >( temp ); 00065 }; 00066 return input; 00067 } 00068 00070 00072 00073 }; 00074 00075 #include "image_gstreamerinput.tcc" 00076 00077 #endif 00078 00079 #endif 00080