2008-11-09 12:43:27 +01:00
|
|
|
/*
|
2015-03-07 21:32:58 +01:00
|
|
|
* video.h: Frontend Status Monitor plugin for the Video Disk Recorder
|
2008-11-09 12:43:27 +01:00
|
|
|
*
|
|
|
|
* 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
|
2008-11-09 12:43:27 +01:00
|
|
|
|
|
|
|
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
|
2008-11-09 12:43:27 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
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
|
2009-09-04 07:44:33 +02:00
|
|
|
double bitrate; // bit/s
|
2008-11-09 12:43:27 +01:00
|
|
|
} 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
|