annotate xvmc_render.h @ 15533:ddf15d233d58

Do not switch to audio tracks whose codec private data differs from the main audio track's as this will most likely result in messed up audio output. Patch by Michael Behrisch <list () behrisch ! de>
author mosu
date Sat, 21 May 2005 06:50:08 +0000
parents 7ab88b24cb81
children 470cc9dc1b33
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
10698
7ab88b24cb81 OSD support, optinal queue, optional use of sleep(), and benchmark mode
iive
parents: 10452
diff changeset
30 int reserved1[12];//future extenstions (e.g. gmc,qpel)
7ab88b24cb81 OSD support, optinal queue, optional use of sleep(), and benchmark mode
iive
parents: 10452
diff changeset
31 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
32 XvMCSurface* p_surface;//pointer to rendered surface, never changed
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
33
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
34 //these are changed by decoder
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
35 //used by XvMCRenderSurface function
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
36 XvMCSurface* p_past_surface;//pointer to the past surface
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
37 XvMCSurface* p_future_surface;//pointer to the future prediction surface
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
38
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
39 unsigned int picture_structure;//top/bottom fields or frame !
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
40 unsigned int flags;//XVMC_SECOND_FIELD - 1'st or 2'd field in the sequence
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
41 unsigned int display_flags; //1,2 or 1+2 fields for XvMCPutSurface,
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
42
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
43 //these are internal communication one
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
44 int state;//0-free,1 Waiting to Display,2 Waiting for prediction
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
45 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
46 int filled_mv_blocks_num;//processed mv block in this slice,change by decoder
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
47
9f97e3bd0e04 XVideo Motion Compensation common structures
iive
parents:
diff changeset
48 int next_free_data_block_num;//used in add_mv_block, pointer to next free block
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;