diff options
Diffstat (limited to 'nx-X11/lib/XvMC/hw/via/viaXvMCPriv.h')
-rw-r--r-- | nx-X11/lib/XvMC/hw/via/viaXvMCPriv.h | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/nx-X11/lib/XvMC/hw/via/viaXvMCPriv.h b/nx-X11/lib/XvMC/hw/via/viaXvMCPriv.h deleted file mode 100644 index de4976a25..000000000 --- a/nx-X11/lib/XvMC/hw/via/viaXvMCPriv.h +++ /dev/null @@ -1,198 +0,0 @@ -/***************************************************************************** - * VIA Unichrome XvMC extension client lib. - * - * Copyright (c) 2004 Thomas Hellström. All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#ifndef _VIAXVMCPRIV_H -#define _VIAXVMCPRIV_H 1 - -#include <X11/Xlibint.h> -#include <X11/extensions/XvMC.h> -#include <X11/extensions/XvMClib.h> -#include <stdlib.h> -#include <X11/Xutil.h> -#include <X11/extensions/vldXvMC.h> -#include "via_xvmc.h" - -typedef struct{ - int x; - int y; - int w; - int h; -} XvMCRegion; - - -extern Status _xvmc_create_context(Display *dpy, XvMCContext *context, - int *priv_count, uint **priv_data); -extern Status _xvmc_destroy_context(Display *dpy, XvMCContext *context); -extern Status _xvmc_create_surface(Display *dpy, XvMCContext *context, - XvMCSurface *surface, int *priv_count, - uint **priv_data); -extern Status _xvmc_destroy_surface(Display *dpy, XvMCSurface *surface); -extern Status _xvmc_create_subpicture(Display *dpy, XvMCContext *context, - XvMCSubpicture *subpicture, - int *priv_count, uint **priv_data); -extern Status _xvmc_destroy_subpicture(Display *dpy, - XvMCSubpicture *subpicture); - -#define VIA_SUBPIC_PALETTE_SIZE 16 /*Number of colors in subpicture palette*/ -#define VIA_CBUFFERSIZE 4096 /*Hardware command buffer size*/ -#define VIA_MAX_BUFS 2 /*Number of YUV buffers per surface*/ -#define VIA_MAX_RENDSURF 3 /*Maximum numbers of surfaces per context - that can answer RENDERING to a rendering - query*/ - -typedef enum{ - context_drawHash, - context_lowLevel, - context_mutex, - context_sAreaMap, - context_fbMap, - context_mmioMap, - context_drmContext, - context_fd, - context_driConnection, - context_context, - context_none -} ContextRes; - - -typedef struct{ - unsigned ctxNo; /* XvMC private context reference number */ - pthread_mutex_t ctxMutex; /* Mutex for multi-threading. Not used */ - drm_context_t drmcontext; /* The drm context */ - drm_handle_t fbOffset; /* Handle to drm frame-buffer area */ - drm_handle_t mmioOffset; /* Handle to drm mmio area */ - drm_handle_t sAreaOffset; /* Handle to drm shared memory area */ - unsigned fbSize; /* Size of drm frame-buffer area */ - unsigned mmioSize; /* Size of drm mmio area */ - unsigned sAreaSize; /* Size of drm shared memory area */ - unsigned sAreaPrivOffset; /* Offset in sarea to private part */ - drmAddress fbAddress; /* Virtual address of frame buffer area */ - drmAddress mmioAddress; /* Virtual address of mmio area */ - drmAddress sAreaAddress; /* Virtual address of shared memory area */ - char busIdString[21]; /* Busid of video card */ - unsigned yStride; /* Y stride of surfaces in this context */ - int fd; /* FD for connection to drm module */ - unsigned char intra_quantiser_matrix[64]; - unsigned char non_intra_quantiser_matrix[64]; - unsigned char chroma_intra_quantiser_matrix[64]; - unsigned char chroma_non_intra_quantiser_matrix[64]; - unsigned rendSurf[VIA_MAX_RENDSURF]; /* Which surfaces answer rendering to - a rendering query */ - int decoderOn; /* Decoder switched on ? */ - int intraLoaded; /* Intra quantiser matrix loaded in - decoder? */ - int nonIntraLoaded; /* Non-Intra quantiser matrix loaded - in decoder */ - int chromaIntraLoaded; - int chromaNonIntraLoaded; - int haveDecoder; /* Does this context own decoder? */ - int attribChanged; /* Attributes have changed and need to - be uploaded to Xv at next frame - display */ - drmLockPtr hwLock; /* Virtual address Pointer to the - heavyweight drm hardware lock */ - unsigned xvMCPort; /* XvMC private port. Corresponds to - an Xv port, but not by number */ - ViaXvMCAttrHolder attrib; /* This contexts attributes and their - values */ - XvAttribute attribDesc[VIA_NUM_XVMC_ATTRIBUTES]; /* Attribute decriptions */ - int useAGP; /* Use the AGP ringbuffer to upload data to the chip */ - void *xl; /* Lowlevel context. Opaque to us. */ - int haveXv; /* Have I initialized the Xv - connection for this surface? */ - XvImage *xvImage; /* Fake Xv Image used for command - buffer transport to the X server */ - GC gc; /* X GC needed for displaying */ - Drawable draw; /* Drawable to undisplay from */ - XvPortID port; /* Xv Port ID when displaying */ - int lastSrfDisplaying; - ContextRes resources; - CARD32 timeStamp; - CARD32 videoTimeStamp; - XID id; - unsigned screen; - unsigned depth; - unsigned stride; - XVisualInfo visualInfo; - void *drawHash; - CARD32 chipId; - XvMCRegion sRegion; - XvMCRegion dRegion; -}ViaXvMCContext; - -typedef struct{ - pthread_mutex_t subMutex; /* Currently not used. */ - unsigned srfNo; /* XvMC private surface number */ - unsigned offset; /* Offset into frame-buffer area */ - unsigned stride; /* Storage stride */ - unsigned width; /* Width */ - unsigned height; /* Height */ - CARD32 palette[VIA_SUBPIC_PALETTE_SIZE]; /* YUV Palette */ - ViaXvMCContext *privContext; /* Pointer to context private data */ - int ia44; /* IA44 or AI44 format */ - int needsSync; - CARD32 timeStamp; -}ViaXvMCSubPicture; - - -typedef struct{ - pthread_mutex_t srfMutex; /* For multithreading. Not used. */ - pthread_cond_t bufferAvailable; /* For multithreading. Not used. */ - unsigned srfNo; /* XvMC private surface numbers */ - unsigned numBuffers; /* Number of picture buffers */ - unsigned curBuf; /* Which is the current buffer? */ - unsigned offsets[VIA_MAX_BUFS]; /* Offsets of picture buffers - into the frame-buffer area */ - unsigned yStride; /* Stride of YUV420 Y component. */ - unsigned width; /* Dimensions */ - unsigned height; - int progressiveSequence; /* Mpeg progressive picture? Hmm? */ - ViaXvMCContext *privContext; /* XvMC context private part. */ - ViaXvMCSubPicture *privSubPic; /* Subpicture to be blended when - displaying. NULL if none. */ - int needsSync; - int syncMode; - CARD32 timeStamp; - int topFieldFirst; -}ViaXvMCSurface; - -/* - * Take and release the global drm hardware lock. - */ - -#define HW_LOCK(ctx) \ - DRM_LOCK((ctx)->fd,(ctx)->hwLock,(ctx)->drmcontext,0) -#define HW_UNLOCK(ctx) \ - DRM_UNLOCK((ctx)->fd,(ctx->hwLock),(ctx)->drmcontext) - -/* - * Low-level Mpeg functions in viaLowLevel.c - */ - -#define VIABLIT_TRANSCOPY 0 -#define VIABLIT_COPY 1 -#define VIABLIT_FILL 2 - - -#endif |