diff options
author | Zhenyu Wang <zhenyu.z.wang@intel.com> | 2008-06-23 15:49:29 +0800 |
---|---|---|
committer | Zhenyu Wang <zhenyu.z.wang@intel.com> | 2008-06-28 19:15:57 +0800 |
commit | 7a705081788bf957409e17baa5f189241589057c (patch) | |
tree | 29cbdaaf993cac1255c93ec78061bcef2288a8e7 | |
parent | 0283d22f510ba47dfdac2806a58e46649c26580b (diff) |
xvmc: formalize surface type definition
We should also carefully select surface type id.
-rw-r--r-- | src/i830_hwmc.h | 7 | ||||
-rw-r--r-- | src/i915_hwmc.c | 4 | ||||
-rw-r--r-- | src/xvmc/i915_xvmc.c | 5 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/i830_hwmc.h b/src/i830_hwmc.h index 6920e016..4db9aea6 100644 --- a/src/i830_hwmc.h +++ b/src/i830_hwmc.h @@ -47,6 +47,13 @@ #define XVMC_I945_MPEG2_VLD 0x04 #define XVMC_I965_MPEG2_VLD 0x08 +/* supported surface types */ +enum { + SURFACE_TYPE_MPEG2_MPML = FOURCC_XVMC, /* mpeg2 MP@ML */ + SURFACE_TYPE_MPEG1_MPML, /* mpeg1 MP@ML */ + SURFACE_TYPE_MAX +}; + /* common header for context private */ struct hwmc_buffer { diff --git a/src/i915_hwmc.c b/src/i915_hwmc.c index 50e11068..973cabf8 100644 --- a/src/i915_hwmc.c +++ b/src/i915_hwmc.c @@ -111,7 +111,7 @@ static XF86MCImageIDList yv12_subpicture_list = static XF86MCSurfaceInfoRec i915_YV12_mpg2_surface = { - FOURCC_YV12, + SURFACE_TYPE_MPEG2_MPML, XVMC_CHROMA_FORMAT_420, 0, 720, @@ -127,7 +127,7 @@ static XF86MCSurfaceInfoRec i915_YV12_mpg2_surface = static XF86MCSurfaceInfoRec i915_YV12_mpg1_surface = { - FOURCC_YV12, + SURFACE_TYPE_MPEG1_MPML, XVMC_CHROMA_FORMAT_420, 0, 720, diff --git a/src/xvmc/i915_xvmc.c b/src/xvmc/i915_xvmc.c index 519de5a3..bd31de44 100644 --- a/src/xvmc/i915_xvmc.c +++ b/src/xvmc/i915_xvmc.c @@ -1850,9 +1850,8 @@ static int i915_xvmc_mc_render_surface(Display *display, XvMCContext *context, if (!(privTarget = target_surface->privData)) return XvMCBadSurface; - /* Test For YV12 Surface */ - if (context->surface_type_id != FOURCC_YV12) { - XVMC_ERR("HWMC only possible on YV12 Surfaces."); + if (context->surface_type_id >= SURFACE_TYPE_MAX) { + XVMC_ERR("Unsupprted surface_type_id %d.", context->surface_type_id); return BadValue; } |