2003-11-14 17:48:57 +01:00
|
|
|
|
|
|
|
#ifndef _XVMC_H
|
|
|
|
#define _XVMC_H
|
2005-04-20 14:25:48 +02:00
|
|
|
#include <X11/extensions/Xv.h>
|
2003-11-14 17:48:57 +01:00
|
|
|
#include "xvdix.h"
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int num_xvimages;
|
|
|
|
int *xvimage_ids;
|
|
|
|
} XvMCImageIDList;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int surface_type_id;
|
|
|
|
int chroma_format;
|
|
|
|
int color_description;
|
|
|
|
unsigned short max_width;
|
|
|
|
unsigned short max_height;
|
|
|
|
unsigned short subpicture_max_width;
|
|
|
|
unsigned short subpicture_max_height;
|
|
|
|
int mc_type;
|
|
|
|
int flags;
|
|
|
|
XvMCImageIDList *compatible_subpictures;
|
|
|
|
} XvMCSurfaceInfoRec, *XvMCSurfaceInfoPtr;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
XID context_id;
|
|
|
|
ScreenPtr pScreen;
|
|
|
|
int adapt_num;
|
|
|
|
int surface_type_id;
|
|
|
|
unsigned short width;
|
|
|
|
unsigned short height;
|
|
|
|
CARD32 flags;
|
|
|
|
int refcnt;
|
|
|
|
pointer port_priv;
|
|
|
|
pointer driver_priv;
|
|
|
|
} XvMCContextRec, *XvMCContextPtr;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
XID surface_id;
|
|
|
|
int surface_type_id;
|
|
|
|
XvMCContextPtr context;
|
|
|
|
pointer driver_priv;
|
|
|
|
} XvMCSurfaceRec, *XvMCSurfacePtr;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
XID subpicture_id;
|
|
|
|
int xvimage_id;
|
|
|
|
unsigned short width;
|
|
|
|
unsigned short height;
|
|
|
|
int num_palette_entries;
|
|
|
|
int entry_bytes;
|
|
|
|
char component_order[4];
|
|
|
|
XvMCContextPtr context;
|
|
|
|
pointer driver_priv;
|
|
|
|
} XvMCSubpictureRec, *XvMCSubpicturePtr;
|
|
|
|
|
|
|
|
typedef int (*XvMCCreateContextProcPtr) (
|
|
|
|
XvPortPtr port,
|
|
|
|
XvMCContextPtr context,
|
|
|
|
int *num_priv,
|
|
|
|
CARD32 **priv
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef void (*XvMCDestroyContextProcPtr) (
|
|
|
|
XvMCContextPtr context
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef int (*XvMCCreateSurfaceProcPtr) (
|
|
|
|
XvMCSurfacePtr surface,
|
|
|
|
int *num_priv,
|
|
|
|
CARD32 **priv
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef void (*XvMCDestroySurfaceProcPtr) (
|
|
|
|
XvMCSurfacePtr surface
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef int (*XvMCCreateSubpictureProcPtr) (
|
|
|
|
XvMCSubpicturePtr subpicture,
|
|
|
|
int *num_priv,
|
|
|
|
CARD32 **priv
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef void (*XvMCDestroySubpictureProcPtr) (
|
|
|
|
XvMCSubpicturePtr subpicture
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
XvAdaptorPtr xv_adaptor;
|
|
|
|
int num_surfaces;
|
|
|
|
XvMCSurfaceInfoPtr *surfaces;
|
|
|
|
int num_subpictures;
|
|
|
|
XvImagePtr *subpictures;
|
|
|
|
XvMCCreateContextProcPtr CreateContext;
|
|
|
|
XvMCDestroyContextProcPtr DestroyContext;
|
|
|
|
XvMCCreateSurfaceProcPtr CreateSurface;
|
|
|
|
XvMCDestroySurfaceProcPtr DestroySurface;
|
|
|
|
XvMCCreateSubpictureProcPtr CreateSubpicture;
|
|
|
|
XvMCDestroySubpictureProcPtr DestroySubpicture;
|
|
|
|
} XvMCAdaptorRec, *XvMCAdaptorPtr;
|
|
|
|
|
Use libtool convenience libraries and better "symbol" table.
All .a libraries were converted to .la, and instead of linking the
Xorg binary with a mix of .a and .la, and adding some libraries more
then once in the command line, etc, now it generates a single libxorg.la
from all the required convenience libraries, and links with a dummy
xorg.c (that should usually be the file with the main function...).
This removes the requirement of some things like libosandcommon and
libinit, that existed to circumvent problems when linking multiple
.a and .la in the final Xorg binary.
The "symbol table" is now generated dynamically, by a shell script,
with an embedded gawk parser that parses cpp output. The new file
sdksyms.sh is generated by hand by analyzing all Makefile.am's and
making it create a sdksyms.c file, that includes all sdk headers that
will add symbols for the Xorg binary. Module headers aren't read, and
a in 2 files it was required to add a "<hash>ifndef XorgLoader" around
declarations shared between the Xorg binary and libextmod. A few
other changes were added to other sdk headers, like preventing
multiple inclusion, or including other headers to satisfy dependencies.
This should be a lot more portable, and better (hopefully properly)
using libtool to generate convenience libraries.
2008-12-07 05:22:19 +01:00
|
|
|
#ifndef XorgLoader
|
Rework symbol visibility for easier maintenance
Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.
This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)
LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.
xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
2008-12-03 08:43:34 +01:00
|
|
|
extern _X_EXPORT void XvMCExtensionInit(void);
|
2003-11-14 17:48:57 +01:00
|
|
|
|
Rework symbol visibility for easier maintenance
Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.
This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)
LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.
xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
2008-12-03 08:43:34 +01:00
|
|
|
extern _X_EXPORT int XvMCScreenInit(ScreenPtr pScreen,
|
|
|
|
int num,
|
|
|
|
XvMCAdaptorPtr adapt);
|
2003-11-14 17:48:57 +01:00
|
|
|
|
Rework symbol visibility for easier maintenance
Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.
This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)
LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.
xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
2008-12-03 08:43:34 +01:00
|
|
|
extern _X_EXPORT XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id);
|
2003-11-25 20:29:01 +01:00
|
|
|
|
Rework symbol visibility for easier maintenance
Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.
This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)
LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.
xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
2008-12-03 08:43:34 +01:00
|
|
|
extern _X_EXPORT int xf86XvMCRegisterDRInfo(ScreenPtr pScreen, char *name,
|
2004-11-13 12:09:23 +01:00
|
|
|
char *busID, int major, int minor,
|
|
|
|
int patchLevel);
|
Use libtool convenience libraries and better "symbol" table.
All .a libraries were converted to .la, and instead of linking the
Xorg binary with a mix of .a and .la, and adding some libraries more
then once in the command line, etc, now it generates a single libxorg.la
from all the required convenience libraries, and links with a dummy
xorg.c (that should usually be the file with the main function...).
This removes the requirement of some things like libosandcommon and
libinit, that existed to circumvent problems when linking multiple
.a and .la in the final Xorg binary.
The "symbol table" is now generated dynamically, by a shell script,
with an embedded gawk parser that parses cpp output. The new file
sdksyms.sh is generated by hand by analyzing all Makefile.am's and
making it create a sdksyms.c file, that includes all sdk headers that
will add symbols for the Xorg binary. Module headers aren't read, and
a in 2 files it was required to add a "<hash>ifndef XorgLoader" around
declarations shared between the Xorg binary and libextmod. A few
other changes were added to other sdk headers, like preventing
multiple inclusion, or including other headers to satisfy dependencies.
This should be a lot more portable, and better (hopefully properly)
using libtool to generate convenience libraries.
2008-12-07 05:22:19 +01:00
|
|
|
#endif
|
2004-11-13 12:09:23 +01:00
|
|
|
|
2003-11-14 17:48:57 +01:00
|
|
|
#endif /* _XVMC_H */
|