mirror of
https://github.com/mpv-player/mpv
synced 2025-02-20 06:46:55 +00:00
video_eq support - applied brightness/contrast patch by Brian J. Murrell
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5015 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
bf5be677e2
commit
879062aac0
@ -29,6 +29,42 @@ static void draw_alpha(int x0,int y0, int w,int h, unsigned char* src, unsigned
|
||||
}
|
||||
}
|
||||
|
||||
static int mga_set_video_eq( const vidix_video_eq_t *info)
|
||||
{
|
||||
|
||||
uint32_t luma;
|
||||
float factor = 256.0 / 2000;
|
||||
|
||||
luma = ((int)(info->brightness * factor) << 16) +
|
||||
((int)(info->contrast * factor) & 0xFFFF);
|
||||
if (ioctl(f,MGA_VID_SET_LUMA,luma)) {
|
||||
perror("Error in mga_vid_config ioctl()");
|
||||
printf("Could not set luma values in the kernel module!\n");
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int mga_get_video_eq( vidix_video_eq_t *info)
|
||||
{
|
||||
|
||||
uint32_t luma;
|
||||
float factor = 2000.0 / 256;
|
||||
|
||||
if (ioctl(f,MGA_VID_GET_LUMA,&luma)) {
|
||||
perror("Error in mga_vid_config ioctl()");
|
||||
printf("Could not get luma values from the kernel module!\n");
|
||||
return -1;
|
||||
}
|
||||
info->brightness = (luma >> 16) * factor;
|
||||
info->cap |= VEQ_CAP_BRIGHTNESS;
|
||||
|
||||
info->contrast = (luma & 0xFFFF) * factor;
|
||||
info->cap |= VEQ_CAP_CONTRAST;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//static void
|
||||
//write_slice_g200(uint8_t *y,uint8_t *cr, uint8_t *cb,uint32_t slice_num)
|
||||
@ -230,9 +266,18 @@ query_format(uint32_t format)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void query_vaa(vo_vaa_t *vaa)
|
||||
{
|
||||
memset(vaa,0,sizeof(vo_vaa_t));
|
||||
vaa->get_video_eq = mga_get_video_eq;
|
||||
vaa->set_video_eq = mga_set_video_eq;
|
||||
}
|
||||
static uint32_t control(uint32_t request, void *data, ...)
|
||||
{
|
||||
switch (request) {
|
||||
case VOCTRL_QUERY_VAA:
|
||||
query_vaa((vo_vaa_t*)data);
|
||||
return VO_TRUE;
|
||||
case VOCTRL_QUERY_FORMAT:
|
||||
return query_format(*((uint32_t*)data));
|
||||
case VOCTRL_GET_IMAGE:
|
||||
|
Loading…
Reference in New Issue
Block a user