libspark: implement SetColorFormat()

This commit is contained in:
martii
2013-08-11 12:39:20 +02:00
parent 89d1587513
commit 75e5268a3c
2 changed files with 40 additions and 0 deletions

View File

@@ -714,3 +714,32 @@ void cVideo::SetControl(int control, int value) {
proc_put(p, buf, len); proc_put(p, buf, len);
} }
} }
void cVideo::SetColorFormat(COLOR_FORMAT color_format) {
const char *p = NULL;
switch(color_format) {
case COLORFORMAT_RGB:
p = "rgb";
break;
case COLORFORMAT_YUV:
p = "yuv";
break;
case COLORFORMAT_CVBS:
p = "cvbs";
break;
case COLORFORMAT_SVIDEO:
p = "svideo";
break;
case COLORFORMAT_HDMI_RGB:
p = "hdmi_rgb";
break;
case COLORFORMAT_HDMI_YCBCR444:
p = "hdmi_yuv";
break;
case COLORFORMAT_HDMI_YCBCR422:
p = "hdmi_422";
break;
}
if (p)
proc_put("/proc/stb/avs/0/colorformat", p, strlen(p));
}

View File

@@ -17,6 +17,16 @@ typedef enum {
ANALOG_SCART_MASK = 0x10 ANALOG_SCART_MASK = 0x10
} analog_mode_t; } analog_mode_t;
typedef enum {
COLORFORMAT_RGB = 0x10, // keep compatible with analog_mode_t
COLORFORMAT_YUV,
COLORFORMAT_CVBS,
COLORFORMAT_SVIDEO,
COLORFORMAT_HDMI_RGB,
COLORFORMAT_HDMI_YCBCR444,
COLORFORMAT_HDMI_YCBCR422
} COLOR_FORMAT;
typedef enum { typedef enum {
VIDEO_FORMAT_MPEG2 = 0, VIDEO_FORMAT_MPEG2 = 0,
@@ -192,6 +202,7 @@ class cVideo
int StartVBI(unsigned short) { return 0; }; int StartVBI(unsigned short) { return 0; };
int StopVBI(void) { return 0; }; int StopVBI(void) { return 0; };
void SetDemux(cDemux *dmx); void SetDemux(cDemux *dmx);
void SetColorFormat(COLOR_FORMAT color_format);
}; };
#endif #endif