vdr-plugin-femon/video.h

95 lines
2.3 KiB
C
Raw Normal View History

/*
2015-03-07 21:32:58 +01:00
* video.h: Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
*/
2015-03-07 21:32:58 +01:00
#ifndef __FEMON_VIDEO_H
#define __FEMON_VIDEO_H
enum eVideoCodec {
VIDEO_CODEC_INVALID = -1,
VIDEO_CODEC_UNKNOWN,
VIDEO_CODEC_MPEG2,
2017-01-05 16:55:53 +01:00
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;
2009-08-25 19:22:06 +02:00
class cFemonVideoIf {
public:
cFemonVideoIf() {}
virtual ~cFemonVideoIf() {}
// eVideoCodec
2015-03-07 17:22:02 +01:00
virtual void SetVideoCodec(eVideoCodec codecP) = 0;
2009-08-25 19:22:06 +02:00
// eVideoFormat
2015-03-07 17:22:02 +01:00
virtual void SetVideoFormat(eVideoFormat formatP) = 0;
2009-08-25 19:22:06 +02:00
// eVideoScan
2015-03-07 17:22:02 +01:00
virtual void SetVideoScan(eVideoScan scanP) = 0;
2009-08-25 19:22:06 +02:00
// eVideoAspectRatio
2015-03-07 17:22:02 +01:00
virtual void SetVideoAspectRatio(eVideoAspectRatio aspectRatioP) = 0;
2009-08-25 19:22:06 +02:00
// pixels
2015-03-07 17:22:02 +01:00
virtual void SetVideoSize(int widthP, int heightP) = 0;
2009-08-25 19:22:06 +02:00
// Hz
2015-03-07 17:22:02 +01:00
virtual void SetVideoFramerate(double frameRateP) = 0;
2009-08-25 19:22:06 +02:00
// Mbit/s
2015-03-07 17:22:02 +01:00
virtual void SetVideoBitrate(double bitRateP) = 0;
2009-08-25 19:22:06 +02:00
};
2015-03-07 21:32:58 +01:00
#endif //__FEMON_VIDEO_H