annotate xvmc_render.h @ 27894:d06d8e459ae1

Use pthreads for the cache on Cygwin, since _beginthread is not available and the previous CreateThread method would probably leak memory here, too. Also pthreads seems to be the official Cygwin threading API.
author reimar
date Sat, 15 Nov 2008 19:08:50 +0000
parents 4129c8cfa742
children b2e17894b4d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
1 #ifndef MPLAYER_XVMC_RENDER_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
2 #define MPLAYER_XVMC_RENDER_H
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 25544
diff changeset
3
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
4 #include <X11/Xlib.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
5 #include <X11/Xutil.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
6 #include <X11/Xatom.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
7 #include <X11/extensions/Xv.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
8 #include <X11/extensions/Xvlib.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
9 #include <X11/extensions/XvMClib.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
10
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
11
25544
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
12 //the surface should be shown, video driver manipulates this
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
13 #define MP_XVMC_STATE_DISPLAY_PENDING 1
25544
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
14 //the surface is needed for prediction, codec manipulates this
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
15 #define MP_XVMC_STATE_PREDICTION 2
10698
7ab88b24cb81 OSD support, optinal queue, optional use of sleep(), and benchmark mode
iive
parents: 10452
diff changeset
16 //this surface is needed for subpicture rendering
7ab88b24cb81 OSD support, optinal queue, optional use of sleep(), and benchmark mode
iive
parents: 10452
diff changeset
17 #define MP_XVMC_STATE_OSD_SOURCE 4
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
18 // 1337 IDCT MCo
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
19 #define MP_XVMC_RENDER_MAGIC 0x1DC711C0
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
20
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
21 typedef struct{
25544
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
22 //these are not changed by the decoder!
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
23 int magic;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
24
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
25 short * data_blocks;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
26 XvMCMacroBlock * mv_blocks;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
27 int total_number_of_mv_blocks;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
28 int total_number_of_data_blocks;
10452
4eaf6fa120b1 sync to ffmpeg, updates, cleanups
iive
parents: 10361
diff changeset
29 int mc_type;//XVMC_MPEG1/2/4,XVMC_H263 without XVMC_IDCT
25544
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
30 int idct;//Do we use IDCT acceleration?
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
31 int chroma_format;//420,422,444
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
32 int unsigned_intra;//+-128 for intra pictures after clip
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
33 XvMCSurface* p_surface;//pointer to rendered surface, never changed
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
34
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
35 //these are changed by decoder
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
36 //used by XvMCRenderSurface function
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
37 XvMCSurface* p_past_surface;//pointer to the past surface
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
38 XvMCSurface* p_future_surface;//pointer to the future prediction surface
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
39
25544
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
40 unsigned int picture_structure;//top/bottom fields or frame!
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
41 unsigned int flags;//XVMC_SECOND_FIELD - 1'st or 2'd field in the sequence
22812
470cc9dc1b33 sync to lavcodecs version
iive
parents: 10698
diff changeset
42 unsigned int display_flags; //1,2 or 1+2 fields for XvMCPutSurface,
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
43
25544
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
44 //these are internal communication ones
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
45 int state;//0-free, 1 Waiting to Display, 2 Waiting for prediction
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
46 int start_mv_blocks_num;//offset in the array for the current slice, updated by vo
691b830f095e Port typo fixes from FFmpeg.
diego
parents: 22812
diff changeset
47 int filled_mv_blocks_num;//processed mv block in this slice, changed by decoder
22812
470cc9dc1b33 sync to lavcodecs version
iive
parents: 10698
diff changeset
48
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
49 int next_free_data_block_num;//used in add_mv_block, pointer to next free block
22812
470cc9dc1b33 sync to lavcodecs version
iive
parents: 10698
diff changeset
50 //extensions
470cc9dc1b33 sync to lavcodecs version
iive
parents: 10698
diff changeset
51 void * p_osd_target_surface_render;//pointer to the surface where subpicture is rendered
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
52
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
53 } xvmc_render_state_t;
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 25544
diff changeset
54
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
55 #endif /* MPLAYER_XVMC_RENDER_H */