Merge branch 'gallium-polygon-stipple'
[mesa.git] / src / gallium / drivers / nouveau / nouveau_video.c
1
2 #include "vl/vl_decoder.h"
3 #include "vl/vl_video_buffer.h"
4
5 #include "nouveau/nouveau_screen.h"
6 #include "nouveau/nouveau_context.h"
7
8 static int
9 nouveau_screen_get_video_param(struct pipe_screen *pscreen,
10 enum pipe_video_profile profile,
11 enum pipe_video_cap param)
12 {
13 switch (param) {
14 case PIPE_VIDEO_CAP_SUPPORTED:
15 return vl_profile_supported(pscreen, profile);
16 case PIPE_VIDEO_CAP_NPOT_TEXTURES:
17 return 1;
18 case PIPE_VIDEO_CAP_MAX_WIDTH:
19 case PIPE_VIDEO_CAP_MAX_HEIGHT:
20 return vl_video_buffer_max_size(pscreen);
21 default:
22 debug_printf("unknown video param: %d\n", param);
23 return 0;
24 }
25 }
26
27 void
28 nouveau_screen_init_vdec(struct nouveau_screen *screen)
29 {
30 screen->base.get_video_param = nouveau_screen_get_video_param;
31 screen->base.is_video_format_supported = vl_video_buffer_is_format_supported;
32 }
33
34 void
35 nouveau_context_init_vdec(struct nouveau_context *nv)
36 {
37 nv->pipe.create_video_decoder = vl_create_decoder;
38 nv->pipe.create_video_buffer = vl_video_buffer_create;
39 }