nouveau_video.h revision ebe7c687ceed4e5ca704b325aac6b91791d394b0
1#ifndef __NOUVEAU_VIDEO_H__
2#define __NOUVEAU_SCREEN_H__
3
4#include "nv17_mpeg.xml.h"
5#include "nv31_mpeg.xml.h"
6
7struct nouveau_video_buffer {
8   struct pipe_video_buffer base;
9   unsigned num_planes;
10   struct pipe_resource     *resources[3];
11   struct pipe_sampler_view *sampler_view_planes[3];
12   struct pipe_sampler_view *sampler_view_components[3];
13   struct pipe_surface      *surfaces[3];
14};
15
16struct nouveau_decoder {
17   struct pipe_video_decoder base;
18   struct nouveau_screen *screen;
19   struct nouveau_grobj *mpeg;
20   struct nouveau_bo *cmd_bo, *data_bo, *fence_bo;
21
22   unsigned *fence_map;
23   unsigned fence_seq;
24
25   unsigned ofs;
26   unsigned *cmds;
27
28   unsigned *data;
29   unsigned data_pos;
30   unsigned picture_structure;
31
32   unsigned past, future, current;
33   unsigned num_surfaces;
34   struct nouveau_video_buffer *surfaces[8];
35};
36
37static INLINE void
38nouveau_vpe_write(struct nouveau_decoder *dec, unsigned data) {
39   dec->cmds[dec->ofs++] = data;
40}
41
42#endif
43