vdr-plugin-femon/video.h

95 lines
2.3 KiB
C++

/*
* video.h: Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
*/
#ifndef __FEMON_VIDEO_H
#define __FEMON_VIDEO_H
enum eVideoCodec {
VIDEO_CODEC_INVALID = -1,
VIDEO_CODEC_UNKNOWN,
VIDEO_CODEC_MPEG2,
VIDEO_CODEC_H264,
VIDEO_CODEC_H265
};
enum eVideoFormat {
VIDEO_FORMAT_INVALID = -1,
VIDEO_FORMAT_UNKNOWN,
VIDEO_FORMAT_RESERVED,
VIDEO_FORMAT_COMPONENT,
VIDEO_FORMAT_PAL,
VIDEO_FORMAT_NTSC,
VIDEO_FORMAT_SECAM,
VIDEO_FORMAT_MAC
};
enum eVideoScan {
VIDEO_SCAN_INVALID = -1,
VIDEO_SCAN_UNKNOWN,
VIDEO_SCAN_RESERVED,
VIDEO_SCAN_INTERLACED,
VIDEO_SCAN_PROGRESSIVE
};
enum eVideoAspectRatio {
VIDEO_ASPECT_RATIO_INVALID = -1,
VIDEO_ASPECT_RATIO_RESERVED,
VIDEO_ASPECT_RATIO_EXTENDED,
VIDEO_ASPECT_RATIO_1_1,
VIDEO_ASPECT_RATIO_4_3,
VIDEO_ASPECT_RATIO_16_9,
VIDEO_ASPECT_RATIO_2_21_1,
VIDEO_ASPECT_RATIO_12_11,
VIDEO_ASPECT_RATIO_10_11,
VIDEO_ASPECT_RATIO_16_11,
VIDEO_ASPECT_RATIO_40_33,
VIDEO_ASPECT_RATIO_24_11,
VIDEO_ASPECT_RATIO_20_11,
VIDEO_ASPECT_RATIO_32_11,
VIDEO_ASPECT_RATIO_80_33,
VIDEO_ASPECT_RATIO_18_11,
VIDEO_ASPECT_RATIO_15_11,
VIDEO_ASPECT_RATIO_64_33,
VIDEO_ASPECT_RATIO_160_99,
VIDEO_ASPECT_RATIO_3_2,
VIDEO_ASPECT_RATIO_2_1
};
typedef struct video_info {
eVideoCodec codec; // enum
eVideoFormat format; // enum
eVideoScan scan; // enum
eVideoAspectRatio aspectRatio; // enum
int width; // pixels
int height; // pixels
double frameRate; // Hz
double bitrate; // bit/s
} video_info_t;
class cFemonVideoIf {
public:
cFemonVideoIf() {}
virtual ~cFemonVideoIf() {}
// eVideoCodec
virtual void SetVideoCodec(eVideoCodec codecP) = 0;
// eVideoFormat
virtual void SetVideoFormat(eVideoFormat formatP) = 0;
// eVideoScan
virtual void SetVideoScan(eVideoScan scanP) = 0;
// eVideoAspectRatio
virtual void SetVideoAspectRatio(eVideoAspectRatio aspectRatioP) = 0;
// pixels
virtual void SetVideoSize(int widthP, int heightP) = 0;
// Hz
virtual void SetVideoFramerate(double frameRateP) = 0;
// Mbit/s
virtual void SetVideoBitrate(double bitRateP) = 0;
};
#endif //__FEMON_VIDEO_H