Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

RgbDataSrcMpeg2.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Stream_RgbDataSrcMpeg2_h
00002 #define Impala_Core_Stream_RgbDataSrcMpeg2_h
00003 
00004 #include "Core/Stream/RgbDataSrc.h"
00005 #include "Link/Mpeg2/CxRgbDataSrcMpeg2Link.h"
00006 
00007 namespace Impala
00008 {
00009 namespace Core
00010 {
00011 namespace Stream
00012 {
00013 
00014 
00015 class RgbDataSrcMpeg2 : public RgbDataSrc
00016 {
00017 public:
00018 
00019     RgbDataSrcMpeg2(int src, String srcName, bool isEs = false)
00020         : RgbDataSrc(src, srcName)
00021     {
00022         mSrcHandle = 0;
00023         Init(isEs);
00024     }
00025 
00026     virtual
00027     ~RgbDataSrcMpeg2()
00028     {
00029         if (mSrcHandle)
00030             CxMpeg2CloseVideo(mSrcHandle);
00031     }
00032 
00033     virtual bool
00034     Valid() const
00035     {
00036         return (mSrcHandle != 0);
00037     }
00038 
00039     bool
00040     TheEnd()
00041     {
00042         return (CxMpeg2TheEnd(mSrcHandle) != 0);
00043     }
00044 
00045 protected:
00046 
00047     bool
00048     ReadFrameData()
00049     {
00050         mData = CxMpeg2GetFrame(mSrcHandle, FrameNr());
00051         //if (CxMpeg2TheEnd(mSrcHandle))
00052         //    mLastFrame = FrameNr()-1;
00053         return true;
00054     }
00055 
00056 private:
00057 
00058     void
00059     Init(bool isEs)
00060     {
00061         if (!(mSrcHandle = CxMpeg2LoadVideo(mSrcName.c_str(), isEs)))
00062         {
00063             ILOG_ERROR("Unable to CxMpeg2LoadVideo " << mSrcName);
00064             return;
00065         }
00066         mFrameWidth = CxMpeg2GetFrameWidth(mSrcHandle);
00067         mFrameHeight = CxMpeg2GetFrameHeight(mSrcHandle);
00068         mLastFrame = CxMpeg2GetLength(mSrcHandle) - 1;
00069     }
00070 
00071     void* mSrcHandle;
00072 
00073     ILOG_VAR_DEC;
00074 };
00075 
00076 ILOG_VAR_INIT(RgbDataSrcMpeg2, Impala.Core.Stream);
00077 
00078 } // namespace Stream
00079 } // namespace Core
00080 } // namespace Impala
00081 
00082 #endif

Generated on Fri Mar 19 09:31:19 2010 for ImpalaSrc by  doxygen 1.5.1