diff options
Diffstat (limited to 'omxdevice.h')
-rw-r--r-- | omxdevice.h | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/omxdevice.h b/omxdevice.h index affe2a9..52a94a3 100644 --- a/omxdevice.h +++ b/omxdevice.h @@ -10,6 +10,8 @@ #include <vdr/device.h> #include <vdr/thread.h> +#include "types.h" + class cOmx; class cAudioDecoder; @@ -19,23 +21,13 @@ class cOmxDevice : cDevice public: enum eState { - eStop, - eStarting, - ePlay - }; - - enum eVideoCodec { - eMPEG2, - eH264, - eUnknown + eNone, + eStartingVideo, + eAudioOnly, + eVideoOnly, + eAudioVideo }; - static const char* VideoCodecStr(eVideoCodec codec) - { - return (codec == eMPEG2) ? "MPEG2" : - (codec == eH264) ? "H264" : "unknown"; - } - cOmxDevice(void (*onPrimaryDevice)(void)); virtual ~cOmxDevice(); @@ -74,17 +66,26 @@ private: void (*m_onPrimaryDevice)(void); - virtual eVideoCodec GetVideoCodec(const uchar *data, int length); + virtual cVideoCodec::eCodec ParseVideoCodec(const uchar *data, int length); + virtual void SetState(eState state); + virtual inline eState State() { return m_state; } + + inline bool HasVideo() { + return m_state == eStartingVideo || + m_state == eVideoOnly || + m_state == eAudioVideo; + }; + + inline bool HasAudio() { + return m_state == eAudioOnly || + m_state == eAudioVideo; + }; cOmx *m_omx; cAudioDecoder *m_audio; cMutex *m_mutex; eState m_state; - - bool m_audioCodecReady; - bool m_videoCodecReady; - uchar m_audioId; }; |