vdr-plugin-femon/femonreceiver.h

78 lines
2.2 KiB
C++

/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id$
*/
#ifndef __FEMONRECEIVER_H
#define __FEMONRECEIVER_H
#include <vdr/thread.h>
#include <vdr/receiver.h>
enum eVideoFormat {
VF_UNKNOWN = 0,
VF_PAL = 1,
VF_NTSC = 2,
};
enum eAspectRatio {
AR_RESERVED = 0,
AR_1_1 = 100,
AR_4_3 = 133,
AR_16_9 = 177,
AR_2_21_1 = 233,
};
#define FR_RESERVED -1
#define FR_FREE -2
class cFemonReceiver : public cReceiver, public cThread {
private:
bool m_Active;
int m_VideoPid;
int m_AudioPid;
int m_VideoPacketCount;
int m_VideoHorizontalSize;
int m_VideoVerticalSize;
int m_VideoAspectRatio;
int m_VideoFormat;
double m_VideoFrameRate;
double m_VideoStreamBitrate;
double m_VideoBitrate;
int m_AudioPacketCount;
double m_AudioStreamBitrate;
double m_AudioBitrate;
int m_AudioSamplingFreq;
int m_AudioMPEGLayer;
void GetVideoInfo(uint8_t *mbuf, int count);
void GetAudioInfo(uint8_t *mbuf, int count);
protected:
virtual void Activate(bool On);
virtual void Receive(uchar *Data, int Length);
virtual void Action(void);
public:
cFemonReceiver(int Ca, int Vpid, int Apid);
virtual ~cFemonReceiver();
int VideoHorizontalSize(void) { return m_VideoHorizontalSize; }; // pixels
int VideoVerticalSize(void) { return m_VideoVerticalSize; }; // pixels
int VideoAspectRatio(void) { return m_VideoAspectRatio; }; // eAspectRatio
int VideoFormat(void) { return m_VideoFormat; }; // eVideoFormat
double VideoFrameRate(void) { return m_VideoFrameRate; }; // Hz
double VideoStreamBitrate(void) { return m_VideoStreamBitrate; }; // Mbit/s
double VideoBitrate(void) { return m_VideoBitrate; }; // Mbit/s
int AudioMPEGLayer(void) { return m_AudioMPEGLayer; }; // layer number
int AudioSamplingFreq(void) { return m_AudioSamplingFreq; }; // Hz
double AudioStreamBitrate(void) { return m_AudioStreamBitrate; }; // kbit/s
double AudioBitrate(void) { return m_AudioBitrate; }; // kbit/s
};
#endif //__FEMONRECEIVER_H