16f03b1f6Smrg#ifndef _XVMCLIBINT_H
26f03b1f6Smrg#define _XVMCLIBINT_H
36f03b1f6Smrg
46f03b1f6Smrg#include <X11/Xlibint.h>
56f03b1f6Smrg#include <X11/extensions/Xvproto.h>
66f03b1f6Smrg#include <X11/extensions/XvMCproto.h>
76f03b1f6Smrg#include <X11/extensions/XvMClib.h>
86f03b1f6Smrg
96f03b1f6Smrg#define XvMCCheckExtension(dpy, i, val) \
106f03b1f6Smrg  XextCheckExtension(dpy, i, xvmc_extension_name, val)
116f03b1f6Smrg
120f57e2e1Smrg/* names in XvMCproto.h don't match the expectation of Xlib's GetReq* macros,
130f57e2e1Smrg   so we have to provide our own implementation */
146f03b1f6Smrg#define XvMCGetReq(name, req) \
150f57e2e1Smrg        req = (xvmc##name##Req *) _XGetRequest(                               \
160f57e2e1Smrg            dpy, (CARD8) info->codes->major_opcode, sizeof(xvmc##name##Req)); \
170f57e2e1Smrg        req->xvmcReqType = xvmc_##name
186f03b1f6Smrg
1998af18c5Smrg_XFUNCPROTOBEGIN
2098af18c5Smrg
2198af18c5SmrgStatus _xvmc_create_context(
220f57e2e1Smrg    Display *           /* dpy */,
230f57e2e1Smrg    XvMCContext *       /* context */,
240f57e2e1Smrg    int *               /* priv_count */,
250f57e2e1Smrg    CARD32 **           /* priv_data */
2698af18c5Smrg);
2798af18c5Smrg
2898af18c5SmrgStatus _xvmc_destroy_context(
290f57e2e1Smrg    Display *           /* dpy */,
300f57e2e1Smrg    XvMCContext *       /* context */
3198af18c5Smrg);
3298af18c5Smrg
330f57e2e1SmrgStatus _xvmc_create_surface(
340f57e2e1Smrg    Display *           /* dpy */,
350f57e2e1Smrg    XvMCContext *       /* context */,
360f57e2e1Smrg    XvMCSurface *       /* surface */,
370f57e2e1Smrg    int *               /* priv_count */,
380f57e2e1Smrg    CARD32 **           /* priv_data */
3998af18c5Smrg);
4098af18c5Smrg
410f57e2e1SmrgStatus _xvmc_destroy_surface(
420f57e2e1Smrg    Display *           /* dpy */,
430f57e2e1Smrg    XvMCSurface *       /* surface */
4498af18c5Smrg);
4598af18c5Smrg
460f57e2e1SmrgStatus _xvmc_create_subpicture(
470f57e2e1Smrg    Display *           /* dpy */,
480f57e2e1Smrg    XvMCContext *       /* context */,
490f57e2e1Smrg    XvMCSubpicture *    /* subpicture */,
500f57e2e1Smrg    int *               /* priv_count */,
510f57e2e1Smrg    CARD32 **           /* priv_data */
5298af18c5Smrg);
5398af18c5Smrg
5498af18c5SmrgStatus _xvmc_destroy_subpicture(
550f57e2e1Smrg    Display *           /* dpy */,
560f57e2e1Smrg    XvMCSubpicture *    /* subpicture */
5798af18c5Smrg);
5898af18c5Smrg
5998af18c5Smrg_XFUNCPROTOEND
6098af18c5Smrg
616f03b1f6Smrg#endif /* XVMCLIBINT_H */
62