vl: add interlacing capabilities
Let the driver control interlaced or progressive format of video buffers. Signed-off-by: Christian König <deathsimple@vodafone.de>
This commit is contained in:
@@ -837,6 +837,12 @@ nouveau_screen_get_video_param(struct pipe_screen *pscreen,
|
|||||||
return vl_video_buffer_max_size(pscreen);
|
return vl_video_buffer_max_size(pscreen);
|
||||||
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
||||||
return PIPE_FORMAT_NV12;
|
return PIPE_FORMAT_NV12;
|
||||||
|
case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||||
|
return true;
|
||||||
default:
|
default:
|
||||||
debug_printf("unknown video param: %d\n", param);
|
debug_printf("unknown video param: %d\n", param);
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -236,6 +236,12 @@ nvfx_screen_get_video_param(struct pipe_screen *screen,
|
|||||||
return vl_video_buffer_max_size(screen);
|
return vl_video_buffer_max_size(screen);
|
||||||
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
||||||
return PIPE_FORMAT_NV12;
|
return PIPE_FORMAT_NV12;
|
||||||
|
case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||||
|
return true;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -314,6 +314,12 @@ static int r300_get_video_param(struct pipe_screen *screen,
|
|||||||
return vl_video_buffer_max_size(screen);
|
return vl_video_buffer_max_size(screen);
|
||||||
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
||||||
return PIPE_FORMAT_NV12;
|
return PIPE_FORMAT_NV12;
|
||||||
|
case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||||
|
return true;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -535,6 +535,12 @@ static int r600_get_video_param(struct pipe_screen *screen,
|
|||||||
return vl_video_buffer_max_size(screen);
|
return vl_video_buffer_max_size(screen);
|
||||||
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
||||||
return PIPE_FORMAT_NV12;
|
return PIPE_FORMAT_NV12;
|
||||||
|
case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||||
|
return true;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -209,6 +209,12 @@ softpipe_get_video_param(struct pipe_screen *screen,
|
|||||||
return vl_video_buffer_max_size(screen);
|
return vl_video_buffer_max_size(screen);
|
||||||
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
case PIPE_VIDEO_CAP_PREFERED_FORMAT:
|
||||||
return PIPE_FORMAT_NV12;
|
return PIPE_FORMAT_NV12;
|
||||||
|
case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
|
||||||
|
return false;
|
||||||
|
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||||
|
return true;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -51,7 +51,10 @@ enum pipe_video_cap
|
|||||||
PIPE_VIDEO_CAP_NPOT_TEXTURES = 1,
|
PIPE_VIDEO_CAP_NPOT_TEXTURES = 1,
|
||||||
PIPE_VIDEO_CAP_MAX_WIDTH = 2,
|
PIPE_VIDEO_CAP_MAX_WIDTH = 2,
|
||||||
PIPE_VIDEO_CAP_MAX_HEIGHT = 3,
|
PIPE_VIDEO_CAP_MAX_HEIGHT = 3,
|
||||||
PIPE_VIDEO_CAP_PREFERED_FORMAT = 4
|
PIPE_VIDEO_CAP_PREFERED_FORMAT = 4,
|
||||||
|
PIPE_VIDEO_CAP_PREFERS_INTERLACED = 5,
|
||||||
|
PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE = 6,
|
||||||
|
PIPE_VIDEO_CAP_SUPPORTS_INTERLACED = 7
|
||||||
};
|
};
|
||||||
|
|
||||||
enum pipe_video_codec
|
enum pipe_video_codec
|
||||||
|
Reference in New Issue
Block a user