annotate xvmc_render.h @ 25026:afead6ecb8ba

Remove the pause filter and the cmd queue hack, to know the mplayer going to pause by checking mpctx directly. If there's any video update before the pause then capture the frame or fallback to use last captured frame as pausing frame.
author ulion
date Thu, 15 Nov 2007 01:07:56 +0000
parents 470cc9dc1b33
children 691b830f095e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
1 #include <X11/Xlib.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
2 #include <X11/Xutil.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
3 #include <X11/Xatom.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
4 #include <X11/extensions/Xv.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
5 #include <X11/extensions/Xvlib.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
6 #include <X11/extensions/XvMClib.h>
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
7
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
8
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
9 //the surface should be shown, video driver manipulate this
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
10 #define MP_XVMC_STATE_DISPLAY_PENDING 1
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
11 //the surface is needed for prediction, codec manipulate this
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
12 #define MP_XVMC_STATE_PREDICTION 2
10698
7ab88b24cb81 OSD support, optinal queue, optional use of sleep(), and benchmark mode
iive
parents: 10452
diff changeset
13 //this surface is needed for subpicture rendering
7ab88b24cb81 OSD support, optinal queue, optional use of sleep(), and benchmark mode
iive
parents: 10452
diff changeset
14 #define MP_XVMC_STATE_OSD_SOURCE 4
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
15 // 1337 IDCT MCo
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
16 #define MP_XVMC_RENDER_MAGIC 0x1DC711C0
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
17
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
18 typedef struct{
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
19 //these are not changed by decoder!
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
20 int magic;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
21
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
22 short * data_blocks;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
23 XvMCMacroBlock * mv_blocks;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
24 int total_number_of_mv_blocks;
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
25 int total_number_of_data_blocks;
10452
4eaf6fa120b1 sync to ffmpeg, updates, cleanups
iive
parents: 10361
diff changeset
26 int mc_type;//XVMC_MPEG1/2/4,XVMC_H263 without XVMC_IDCT
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
27 int idct;//does we use IDCT acceleration?
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
28 int chroma_format;//420,422,444
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
29 int unsigned_intra;//+-128 for intra pictures after clip
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
30 XvMCSurface* p_surface;//pointer to rendered surface, never changed
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
31
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
32 //these are changed by decoder
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
33 //used by XvMCRenderSurface function
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
34 XvMCSurface* p_past_surface;//pointer to the past surface
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
35 XvMCSurface* p_future_surface;//pointer to the future prediction surface
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
36
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
37 unsigned int picture_structure;//top/bottom fields or frame !
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
38 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
39 unsigned int display_flags; //1,2 or 1+2 fields for XvMCPutSurface,
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
40
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
41 //these are internal communication one
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
42 int state;//0-free,1 Waiting to Display,2 Waiting for prediction
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
43 int start_mv_blocks_num;//offset in the array for the current slice,updated by vo
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
44 int filled_mv_blocks_num;//processed mv block in this slice,change by decoder
22812
470cc9dc1b33 sync to lavcodecs version
iive
parents: 10698
diff changeset
45
10361
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
46 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
47 //extensions
470cc9dc1b33 sync to lavcodecs version
iive
parents: 10698
diff changeset
48 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
49
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
50 } xvmc_render_state_t;