annotate xvmc_render.h @ 6047:2f9c17454842 libavcodec

Add option for user to scale the amount of dynamic range compression which is applied by the audio decoder, and use that option in the AC3 decoder.
author jbr
date Thu, 20 Dec 2007 00:55:08 +0000
parents 1d83e9c34641
children c4a4495715dd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5270
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
1 /*
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
2 * Copyright (C) 2003 Ivan Kalvachev
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
3 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
4 * This file is part of FFmpeg.
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
5 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
8 * License as published by the Free Software Foundation; either
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
10 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
14 * Lesser General Public License for more details.
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
15 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
19 */
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5223
diff changeset
20
5830
1d83e9c34641 Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 5270
diff changeset
21 #ifndef FFMPEG_XVMC_RENDER_H
1d83e9c34641 Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 5270
diff changeset
22 #define FFMPEG_XVMC_RENDER_H
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 4738
diff changeset
23
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
24 #include <X11/Xlib.h>
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
25 #include <X11/Xutil.h>
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
26 #include <X11/Xatom.h>
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
27 #include <X11/extensions/Xv.h>
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
28 #include <X11/extensions/Xvlib.h>
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
29 #include <X11/extensions/XvMClib.h>
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
30
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
31
5223
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
32 //the surface should be shown, video driver manipulates this
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
33 #define MP_XVMC_STATE_DISPLAY_PENDING 1
5223
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
34 //the surface is needed for prediction, codec manipulates this
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
35 #define MP_XVMC_STATE_PREDICTION 2
4738
7bec6dd03317 get rid of unused entries in the middle of xvmc_render struct,
iive
parents: 4524
diff changeset
36 //this surface is needed for subpicture rendering
7bec6dd03317 get rid of unused entries in the middle of xvmc_render struct,
iive
parents: 4524
diff changeset
37 #define MP_XVMC_STATE_OSD_SOURCE 4
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
38 // 1337 IDCT MCo
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
39 #define MP_XVMC_RENDER_MAGIC 0x1DC711C0
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
40
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
41 typedef struct{
5223
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
42 //these are not changed by the decoder!
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
43 int magic;
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
44
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
45 short * data_blocks;
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
46 XvMCMacroBlock * mv_blocks;
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
47 int total_number_of_mv_blocks;
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
48 int total_number_of_data_blocks;
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
49 int mc_type;//XVMC_MPEG1/2/4,XVMC_H263 without XVMC_IDCT
5223
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
50 int idct;//Do we use IDCT acceleration?
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
51 int chroma_format;//420,422,444
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
52 int unsigned_intra;//+-128 for intra pictures after clip
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
53 XvMCSurface* p_surface;//pointer to rendered surface, never changed
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
54
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
55 //these are changed by decoder
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
56 //used by XvMCRenderSurface function
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
57 XvMCSurface* p_past_surface;//pointer to the past surface
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
58 XvMCSurface* p_future_surface;//pointer to the future prediction surface
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
59
5223
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
60 unsigned int picture_structure;//top/bottom fields or frame!
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
61 unsigned int flags;//XVMC_SECOND_FIELD - 1'st or 2'd field in the sequence
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
62 unsigned int display_flags; //1,2 or 1+2 fields for XvMCPutSurface,
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
63
5223
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
64 //these are internal communication ones
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
65 int state;//0-free, 1 Waiting to Display, 2 Waiting for prediction
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
66 int start_mv_blocks_num;//offset in the array for the current slice, updated by vo
348b04f6e933 spelling/grammar
diego
parents: 5169
diff changeset
67 int filled_mv_blocks_num;//processed mv block in this slice, changed by decoder
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
68
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
69 int next_free_data_block_num;//used in add_mv_block, pointer to next free block
4738
7bec6dd03317 get rid of unused entries in the middle of xvmc_render struct,
iive
parents: 4524
diff changeset
70 //extensions
7bec6dd03317 get rid of unused entries in the middle of xvmc_render struct,
iive
parents: 4524
diff changeset
71 void * p_osd_target_surface_render;//pointer to the surface where subpicture is rendered
4524
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
72
722e3199c56e Move xvmc_render.h to libavcodec where it belongs. Blessed by Ivan.
diego
parents:
diff changeset
73 } xvmc_render_state_t;
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 4738
diff changeset
74
5830
1d83e9c34641 Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 5270
diff changeset
75 #endif /* FFMPEG_XVMC_RENDER_H */