From 449727ea312e180e967e60fc01edc045b1987243 Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Thu, 23 Jan 2014 17:41:02 +0100 Subject: [PATCH] libs: re-indent all source code related to VA utilities. --- gst-libs/gst/vaapi/gstvaapiutils.c | 560 ++++---- gst-libs/gst/vaapi/gstvaapiutils.h | 61 +- gst-libs/gst/vaapi/gstvaapiutils_glx.c | 1220 ++++++++--------- gst-libs/gst/vaapi/gstvaapiutils_glx.h | 159 +-- gst-libs/gst/vaapi/gstvaapiutils_h264.c | 2 +- gst-libs/gst/vaapi/gstvaapiutils_h264.h | 3 +- gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h | 5 +- gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h | 3 +- gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h | 3 +- gst-libs/gst/vaapi/gstvaapiutils_x11.c | 156 +-- gst-libs/gst/vaapi/gstvaapiutils_x11.h | 18 +- 11 files changed, 1069 insertions(+), 1121 deletions(-) diff --git a/gst-libs/gst/vaapi/gstvaapiutils.c b/gst-libs/gst/vaapi/gstvaapiutils.c index a74da40468..10bc606e77 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils.c +++ b/gst-libs/gst/vaapi/gstvaapiutils.c @@ -47,182 +47,187 @@ /* Check VA status for success or print out an error */ gboolean -vaapi_check_status(VAStatus status, const char *msg) +vaapi_check_status (VAStatus status, const gchar * msg) { - if (status != VA_STATUS_SUCCESS) { - GST_DEBUG("%s: %s", msg, vaErrorStr(status)); - return FALSE; - } - return TRUE; + if (status != VA_STATUS_SUCCESS) { + GST_DEBUG ("%s: %s", msg, vaErrorStr (status)); + return FALSE; + } + return TRUE; } /* Maps VA buffer */ -void * -vaapi_map_buffer(VADisplay dpy, VABufferID buf_id) +gpointer +vaapi_map_buffer (VADisplay dpy, VABufferID buf_id) { - VAStatus status; - void *data = NULL; + VAStatus status; + gpointer data = NULL; - status = vaMapBuffer(dpy, buf_id, &data); - if (!vaapi_check_status(status, "vaMapBuffer()")) - return NULL; - return data; + status = vaMapBuffer (dpy, buf_id, &data); + if (!vaapi_check_status (status, "vaMapBuffer()")) + return NULL; + return data; } /* Unmaps VA buffer */ void -vaapi_unmap_buffer(VADisplay dpy, VABufferID buf_id, void **pbuf) +vaapi_unmap_buffer (VADisplay dpy, VABufferID buf_id, gpointer * pbuf) { - VAStatus status; + VAStatus status; - if (pbuf) - *pbuf = NULL; + if (pbuf) + *pbuf = NULL; - status = vaUnmapBuffer(dpy, buf_id); - if (!vaapi_check_status(status, "vaUnmapBuffer()")) - return; + status = vaUnmapBuffer (dpy, buf_id); + if (!vaapi_check_status (status, "vaUnmapBuffer()")) + return; } /* Creates and maps VA buffer */ gboolean -vaapi_create_buffer( - VADisplay dpy, - VAContextID ctx, - int type, - unsigned int size, - gconstpointer buf, - VABufferID *buf_id_ptr, - gpointer *mapped_data -) +vaapi_create_buffer (VADisplay dpy, VAContextID ctx, int type, guint size, + gconstpointer buf, VABufferID * buf_id_ptr, gpointer * mapped_data) { - VABufferID buf_id; - VAStatus status; - gpointer data = (gpointer)buf; + VABufferID buf_id; + VAStatus status; + gpointer data = (gpointer) buf; - status = vaCreateBuffer(dpy, ctx, type, size, 1, data, &buf_id); - if (!vaapi_check_status(status, "vaCreateBuffer()")) - return FALSE; + status = vaCreateBuffer (dpy, ctx, type, size, 1, data, &buf_id); + if (!vaapi_check_status (status, "vaCreateBuffer()")) + return FALSE; - if (mapped_data) { - data = vaapi_map_buffer(dpy, buf_id); - if (!data) - goto error; - *mapped_data = data; - } + if (mapped_data) { + data = vaapi_map_buffer (dpy, buf_id); + if (!data) + goto error; + *mapped_data = data; + } - *buf_id_ptr = buf_id; - return TRUE; + *buf_id_ptr = buf_id; + return TRUE; error: - vaapi_destroy_buffer(dpy, &buf_id); - return FALSE; + vaapi_destroy_buffer (dpy, &buf_id); + return FALSE; } /* Destroy VA buffer */ void -vaapi_destroy_buffer(VADisplay dpy, VABufferID *buf_id_ptr) +vaapi_destroy_buffer (VADisplay dpy, VABufferID * buf_id_ptr) { - if (!buf_id_ptr || *buf_id_ptr == VA_INVALID_ID) - return; + if (!buf_id_ptr || *buf_id_ptr == VA_INVALID_ID) + return; - vaDestroyBuffer(dpy, *buf_id_ptr); - *buf_id_ptr = VA_INVALID_ID; + vaDestroyBuffer (dpy, *buf_id_ptr); + *buf_id_ptr = VA_INVALID_ID; } /* Return a string representation of a VAProfile */ -const char *string_of_VAProfile(VAProfile profile) +const gchar * +string_of_VAProfile (VAProfile profile) { - switch (profile) { + switch (profile) { #define MAP(profile) \ STRCASEP(VAProfile, profile) - MAP(MPEG2Simple); - MAP(MPEG2Main); - MAP(MPEG4Simple); - MAP(MPEG4AdvancedSimple); - MAP(MPEG4Main); + MAP (MPEG2Simple); + MAP (MPEG2Main); + MAP (MPEG4Simple); + MAP (MPEG4AdvancedSimple); + MAP (MPEG4Main); #if VA_CHECK_VERSION(0,32,0) - MAP(JPEGBaseline); - MAP(H263Baseline); - MAP(H264ConstrainedBaseline); + MAP (JPEGBaseline); + MAP (H263Baseline); + MAP (H264ConstrainedBaseline); #endif - MAP(H264Baseline); - MAP(H264Main); - MAP(H264High); - MAP(VC1Simple); - MAP(VC1Main); - MAP(VC1Advanced); + MAP (H264Baseline); + MAP (H264Main); + MAP (H264High); + MAP (VC1Simple); + MAP (VC1Main); + MAP (VC1Advanced); #undef MAP - default: break; - } - return ""; + default: + break; + } + return ""; } /* Return a string representation of a VAEntrypoint */ -const char *string_of_VAEntrypoint(VAEntrypoint entrypoint) +const gchar * +string_of_VAEntrypoint (VAEntrypoint entrypoint) { - switch (entrypoint) { + switch (entrypoint) { #define MAP(entrypoint) \ STRCASEP(VAEntrypoint, entrypoint) - MAP(VLD); - MAP(IZZ); - MAP(IDCT); - MAP(MoComp); - MAP(Deblocking); + MAP (VLD); + MAP (IZZ); + MAP (IDCT); + MAP (MoComp); + MAP (Deblocking); #undef MAP - default: break; - } - return ""; + default: + break; + } + return ""; } /* Return a string representation of a VADisplayAttributeType */ -const char * -string_of_VADisplayAttributeType(VADisplayAttribType attribute_type) +const gchar * +string_of_VADisplayAttributeType (VADisplayAttribType attribute_type) { - switch (attribute_type) { + switch (attribute_type) { #define MAP(attribute_type) \ STRCASEP(VADisplayAttrib, attribute_type) - MAP(Brightness); - MAP(Contrast); - MAP(Hue); - MAP(Saturation); - MAP(BackgroundColor); + MAP (Brightness); + MAP (Contrast); + MAP (Hue); + MAP (Saturation); + MAP (BackgroundColor); #if !VA_CHECK_VERSION(0,34,0) - MAP(DirectSurface); + MAP (DirectSurface); #endif - MAP(Rotation); - MAP(OutofLoopDeblock); + MAP (Rotation); + MAP (OutofLoopDeblock); #if VA_CHECK_VERSION(0,31,1) && !VA_CHECK_VERSION(0,34,0) - MAP(BLEBlackMode); - MAP(BLEWhiteMode); - MAP(BlueStretch); - MAP(SkinColorCorrection); + MAP (BLEBlackMode); + MAP (BLEWhiteMode); + MAP (BlueStretch); + MAP (SkinColorCorrection); #endif - MAP(CSCMatrix); - MAP(BlendColor); - MAP(OverlayAutoPaintColorKey); - MAP(OverlayColorKey); - MAP(RenderMode); - MAP(RenderDevice); - MAP(RenderRect); + MAP (CSCMatrix); + MAP (BlendColor); + MAP (OverlayAutoPaintColorKey); + MAP (OverlayColorKey); + MAP (RenderMode); + MAP (RenderDevice); + MAP (RenderRect); #undef MAP - default: break; - } - return ""; + default: + break; + } + return ""; } -const char * -string_of_VARateControl(guint rate_control) +const gchar * +string_of_VARateControl (guint rate_control) { - switch (rate_control) { - case VA_RC_NONE: return "None"; - case VA_RC_CQP: return "CQP"; - case VA_RC_CBR: return "CBR"; - case VA_RC_VCM: return "VCM"; - case VA_RC_VBR: return "VBR"; - case VA_RC_VBR_CONSTRAINED: return "VBR-Constrained"; - default: break; - } - return ""; + switch (rate_control) { + case VA_RC_NONE: + return "None"; + case VA_RC_CQP: + return "CQP"; + case VA_RC_CBR: + return "CBR"; + case VA_RC_VCM: + return "VCM"; + case VA_RC_VBR: + return "VBR"; + case VA_RC_VBR_CONSTRAINED: + return "VBR-Constrained"; + default: + break; + } + return ""; } /** @@ -233,39 +238,39 @@ string_of_VARateControl(guint rate_control) * vaCreateSurfaces(). */ guint -from_GstVaapiChromaType(guint chroma_type) +from_GstVaapiChromaType (guint chroma_type) { - guint format; + guint format; - switch (chroma_type) { + switch (chroma_type) { case GST_VAAPI_CHROMA_TYPE_YUV420: - format = VA_RT_FORMAT_YUV420; - break; + format = VA_RT_FORMAT_YUV420; + break; case GST_VAAPI_CHROMA_TYPE_YUV422: - format = VA_RT_FORMAT_YUV422; - break; + format = VA_RT_FORMAT_YUV422; + break; case GST_VAAPI_CHROMA_TYPE_YUV444: - format = VA_RT_FORMAT_YUV444; - break; + format = VA_RT_FORMAT_YUV444; + break; #if VA_CHECK_VERSION(0,34,0) case GST_VAAPI_CHROMA_TYPE_YUV411: - format = VA_RT_FORMAT_YUV411; - break; + format = VA_RT_FORMAT_YUV411; + break; case GST_VAAPI_CHROMA_TYPE_YUV400: - format = VA_RT_FORMAT_YUV400; - break; + format = VA_RT_FORMAT_YUV400; + break; case GST_VAAPI_CHROMA_TYPE_RGB32: - format = VA_RT_FORMAT_RGB32; - break; + format = VA_RT_FORMAT_RGB32; + break; case GST_VAAPI_CHROMA_TYPE_RGB16: - format = VA_RT_FORMAT_RGB16; - break; + format = VA_RT_FORMAT_RGB16; + break; #endif default: - format = 0; - break; - } - return format; + format = 0; + break; + } + return format; } /** @@ -276,17 +281,17 @@ from_GstVaapiChromaType(guint chroma_type) * vaAssociateSubpicture(). */ guint -from_GstVaapiSubpictureFlags(guint flags) +from_GstVaapiSubpictureFlags (guint flags) { - guint va_flags = 0; + guint va_flags = 0; - if (flags & GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA) - va_flags |= VA_SUBPICTURE_GLOBAL_ALPHA; + if (flags & GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA) + va_flags |= VA_SUBPICTURE_GLOBAL_ALPHA; #ifdef VA_SUBPICTURE_PREMULTIPLIED_ALPHA - if (flags & GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA) - flags |= VA_SUBPICTURE_PREMULTIPLIED_ALPHA; + if (flags & GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA) + flags |= VA_SUBPICTURE_PREMULTIPLIED_ALPHA; #endif - return va_flags; + return va_flags; } /** @@ -299,17 +304,17 @@ from_GstVaapiSubpictureFlags(guint flags) * Return value: the #GstVaapiSubpictureFlags flags */ guint -to_GstVaapiSubpictureFlags(guint va_flags) +to_GstVaapiSubpictureFlags (guint va_flags) { - guint flags = 0; + guint flags = 0; - if (va_flags & VA_SUBPICTURE_GLOBAL_ALPHA) - flags |= GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA; + if (va_flags & VA_SUBPICTURE_GLOBAL_ALPHA) + flags |= GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA; #ifdef VA_SUBPICTURE_PREMULTIPLIED_ALPHA - if (va_flags & VA_SUBPICTURE_PREMULTIPLIED_ALPHA) - flags |= GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA; + if (va_flags & VA_SUBPICTURE_PREMULTIPLIED_ALPHA) + flags |= GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA; #endif - return flags; + return flags; } /** @@ -321,17 +326,17 @@ to_GstVaapiSubpictureFlags(guint va_flags) * Return value: the #GstVaapiSubpictureFlags flags */ guint -from_GstVideoOverlayFormatFlags(guint ovl_flags) +from_GstVideoOverlayFormatFlags (guint ovl_flags) { - guint flags = 0; + guint flags = 0; #ifdef HAVE_GST_VIDEO_OVERLAY_HWCAPS - if (ovl_flags & GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA) - flags |= GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA; - if (ovl_flags & GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA) - flags |= GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA; + if (ovl_flags & GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA) + flags |= GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA; + if (ovl_flags & GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA) + flags |= GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA; #endif - return flags; + return flags; } /** @@ -343,17 +348,17 @@ from_GstVideoOverlayFormatFlags(guint ovl_flags) * Return value: the #GstVideoOverlayFormatFlags flags */ guint -to_GstVideoOverlayFormatFlags(guint flags) +to_GstVideoOverlayFormatFlags (guint flags) { - guint ovl_flags = 0; + guint ovl_flags = 0; #ifdef HAVE_GST_VIDEO_OVERLAY_HWCAPS - if (flags & GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA) - ovl_flags |= GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA; - if (flags & GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA) - ovl_flags |= GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA; + if (flags & GST_VAAPI_SUBPICTURE_FLAG_PREMULTIPLIED_ALPHA) + ovl_flags |= GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA; + if (flags & GST_VAAPI_SUBPICTURE_FLAG_GLOBAL_ALPHA) + ovl_flags |= GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA; #endif - return ovl_flags; + return ovl_flags; } /** @@ -364,45 +369,45 @@ to_GstVideoOverlayFormatFlags(guint flags) * vaPutSurface(). */ guint -from_GstVaapiSurfaceRenderFlags(guint flags) +from_GstVaapiSurfaceRenderFlags (guint flags) { - guint va_fields, va_csc; + guint va_fields, va_csc; - /* Picture structure */ - switch (flags & GST_VAAPI_PICTURE_STRUCTURE_MASK) { + /* Picture structure */ + switch (flags & GST_VAAPI_PICTURE_STRUCTURE_MASK) { case GST_VAAPI_PICTURE_STRUCTURE_TOP_FIELD: - va_fields = VA_TOP_FIELD; - break; + va_fields = VA_TOP_FIELD; + break; case GST_VAAPI_PICTURE_STRUCTURE_BOTTOM_FIELD: - va_fields = VA_BOTTOM_FIELD; - break; + va_fields = VA_BOTTOM_FIELD; + break; default: - va_fields = VA_FRAME_PICTURE; - break; - } + va_fields = VA_FRAME_PICTURE; + break; + } - /* Color standard */ - switch (flags & GST_VAAPI_COLOR_STANDARD_MASK) { + /* Color standard */ + switch (flags & GST_VAAPI_COLOR_STANDARD_MASK) { #ifdef VA_SRC_BT601 case GST_VAAPI_COLOR_STANDARD_ITUR_BT_601: - va_csc = VA_SRC_BT601; - break; + va_csc = VA_SRC_BT601; + break; #endif #ifdef VA_SRC_BT709 case GST_VAAPI_COLOR_STANDARD_ITUR_BT_709: - va_csc = VA_SRC_BT709; - break; + va_csc = VA_SRC_BT709; + break; #endif #ifdef VA_SRC_SMPTE_240 case GST_VAAPI_COLOR_STANDARD_SMPTE_240M: - va_csc = VA_SRC_SMPTE_240; - break; + va_csc = VA_SRC_SMPTE_240; + break; #endif default: - va_csc = 0; - break; - } - return va_fields|va_csc; + va_csc = 0; + break; + } + return va_fields | va_csc; } /** @@ -415,132 +420,151 @@ from_GstVaapiSurfaceRenderFlags(guint flags) * Return value: the #GstVaapiSurfaceStatus flags */ guint -to_GstVaapiSurfaceStatus(guint va_flags) +to_GstVaapiSurfaceStatus (guint va_flags) { - guint flags; - const guint va_flags_mask = (VASurfaceReady| - VASurfaceRendering| - VASurfaceDisplaying); + guint flags; + const guint va_flags_mask = (VASurfaceReady | + VASurfaceRendering | VASurfaceDisplaying); - /* Check for core status */ - switch (va_flags & va_flags_mask) { + /* Check for core status */ + switch (va_flags & va_flags_mask) { case VASurfaceReady: - flags = GST_VAAPI_SURFACE_STATUS_IDLE; - break; + flags = GST_VAAPI_SURFACE_STATUS_IDLE; + break; case VASurfaceRendering: - flags = GST_VAAPI_SURFACE_STATUS_RENDERING; - break; + flags = GST_VAAPI_SURFACE_STATUS_RENDERING; + break; case VASurfaceDisplaying: - flags = GST_VAAPI_SURFACE_STATUS_DISPLAYING; - break; + flags = GST_VAAPI_SURFACE_STATUS_DISPLAYING; + break; default: - flags = 0; - break; - } + flags = 0; + break; + } - /* Check for encoder status */ + /* Check for encoder status */ #if VA_CHECK_VERSION(0,30,0) - if (va_flags & VASurfaceSkipped) - flags |= GST_VAAPI_SURFACE_STATUS_SKIPPED; + if (va_flags & VASurfaceSkipped) + flags |= GST_VAAPI_SURFACE_STATUS_SKIPPED; #endif - return flags; + return flags; } /* Translate GstVaapiRotation value to VA-API rotation value */ guint -from_GstVaapiRotation(guint value) +from_GstVaapiRotation (guint value) { - switch (value) { - case GST_VAAPI_ROTATION_0: return VA_ROTATION_NONE; - case GST_VAAPI_ROTATION_90: return VA_ROTATION_90; - case GST_VAAPI_ROTATION_180: return VA_ROTATION_180; - case GST_VAAPI_ROTATION_270: return VA_ROTATION_270; - } - GST_ERROR("unsupported GstVaapiRotation value %d", value); - return VA_ROTATION_NONE; + switch (value) { + case GST_VAAPI_ROTATION_0: + return VA_ROTATION_NONE; + case GST_VAAPI_ROTATION_90: + return VA_ROTATION_90; + case GST_VAAPI_ROTATION_180: + return VA_ROTATION_180; + case GST_VAAPI_ROTATION_270: + return VA_ROTATION_270; + } + GST_ERROR ("unsupported GstVaapiRotation value %d", value); + return VA_ROTATION_NONE; } /* Translate VA-API rotation value to GstVaapiRotation value */ guint -to_GstVaapiRotation(guint value) +to_GstVaapiRotation (guint value) { - switch (value) { - case VA_ROTATION_NONE: return GST_VAAPI_ROTATION_0; - case VA_ROTATION_90: return GST_VAAPI_ROTATION_90; - case VA_ROTATION_180: return GST_VAAPI_ROTATION_180; - case VA_ROTATION_270: return GST_VAAPI_ROTATION_270; - } - GST_ERROR("unsupported VA-API rotation value %d", value); - return GST_VAAPI_ROTATION_0; + switch (value) { + case VA_ROTATION_NONE: + return GST_VAAPI_ROTATION_0; + case VA_ROTATION_90: + return GST_VAAPI_ROTATION_90; + case VA_ROTATION_180: + return GST_VAAPI_ROTATION_180; + case VA_ROTATION_270: + return GST_VAAPI_ROTATION_270; + } + GST_ERROR ("unsupported VA-API rotation value %d", value); + return GST_VAAPI_ROTATION_0; } guint -from_GstVaapiRateControl(guint value) +from_GstVaapiRateControl (guint value) { - switch (value) { - case GST_VAAPI_RATECONTROL_NONE: return VA_RC_NONE; - case GST_VAAPI_RATECONTROL_CQP: return VA_RC_CQP; - case GST_VAAPI_RATECONTROL_CBR: return VA_RC_CBR; - case GST_VAAPI_RATECONTROL_VCM: return VA_RC_VCM; - case GST_VAAPI_RATECONTROL_VBR: return VA_RC_VBR; - case GST_VAAPI_RATECONTROL_VBR_CONSTRAINED: return VA_RC_VBR_CONSTRAINED; - } - GST_ERROR("unsupported GstVaapiRateControl value %u", value); - return VA_RC_NONE; + switch (value) { + case GST_VAAPI_RATECONTROL_NONE: + return VA_RC_NONE; + case GST_VAAPI_RATECONTROL_CQP: + return VA_RC_CQP; + case GST_VAAPI_RATECONTROL_CBR: + return VA_RC_CBR; + case GST_VAAPI_RATECONTROL_VCM: + return VA_RC_VCM; + case GST_VAAPI_RATECONTROL_VBR: + return VA_RC_VBR; + case GST_VAAPI_RATECONTROL_VBR_CONSTRAINED: + return VA_RC_VBR_CONSTRAINED; + } + GST_ERROR ("unsupported GstVaapiRateControl value %u", value); + return VA_RC_NONE; } guint -to_GstVaapiRateControl(guint value) +to_GstVaapiRateControl (guint value) { - switch (value) { - case VA_RC_NONE: return GST_VAAPI_RATECONTROL_NONE; - case VA_RC_CQP: return GST_VAAPI_RATECONTROL_CQP; - case VA_RC_CBR: return GST_VAAPI_RATECONTROL_CBR; - case VA_RC_VCM: return GST_VAAPI_RATECONTROL_VCM; - case VA_RC_VBR: return GST_VAAPI_RATECONTROL_VBR; - case VA_RC_VBR_CONSTRAINED: return GST_VAAPI_RATECONTROL_VBR_CONSTRAINED; - } - GST_ERROR("unsupported VA-API Rate Control value %u", value); - return GST_VAAPI_RATECONTROL_NONE; + switch (value) { + case VA_RC_NONE: + return GST_VAAPI_RATECONTROL_NONE; + case VA_RC_CQP: + return GST_VAAPI_RATECONTROL_CQP; + case VA_RC_CBR: + return GST_VAAPI_RATECONTROL_CBR; + case VA_RC_VCM: + return GST_VAAPI_RATECONTROL_VCM; + case VA_RC_VBR: + return GST_VAAPI_RATECONTROL_VBR; + case VA_RC_VBR_CONSTRAINED: + return GST_VAAPI_RATECONTROL_VBR_CONSTRAINED; + } + GST_ERROR ("unsupported VA-API Rate Control value %u", value); + return GST_VAAPI_RATECONTROL_NONE; } /* VPP: translate GstVaapiDeinterlaceMethod to VA deinterlacing algorithm */ guint -from_GstVaapiDeinterlaceMethod(guint value) +from_GstVaapiDeinterlaceMethod (guint value) { - switch (value) { + switch (value) { case GST_VAAPI_DEINTERLACE_METHOD_NONE: - return 0; + return 0; #if USE_VA_VPP case GST_VAAPI_DEINTERLACE_METHOD_BOB: - return VAProcDeinterlacingBob; + return VAProcDeinterlacingBob; case GST_VAAPI_DEINTERLACE_METHOD_WEAVE: - return VAProcDeinterlacingWeave; + return VAProcDeinterlacingWeave; case GST_VAAPI_DEINTERLACE_METHOD_MOTION_ADAPTIVE: - return VAProcDeinterlacingMotionAdaptive; + return VAProcDeinterlacingMotionAdaptive; case GST_VAAPI_DEINTERLACE_METHOD_MOTION_COMPENSATED: - return VAProcDeinterlacingMotionCompensated; + return VAProcDeinterlacingMotionCompensated; #endif - } - GST_ERROR("unsupported GstVaapiDeinterlaceMethod value %d", value); - return 0; + } + GST_ERROR ("unsupported GstVaapiDeinterlaceMethod value %d", value); + return 0; } /* VPP: translate GstVaapiDeinterlaceFlags into VA deinterlacing flags */ guint -from_GstVaapiDeinterlaceFlags(guint flags) +from_GstVaapiDeinterlaceFlags (guint flags) { - guint va_flags = 0; + guint va_flags = 0; #if USE_VA_VPP - if (!(flags & GST_VAAPI_DEINTERLACE_FLAG_TFF)) - va_flags |= VA_DEINTERLACING_BOTTOM_FIELD_FIRST; + if (!(flags & GST_VAAPI_DEINTERLACE_FLAG_TFF)) + va_flags |= VA_DEINTERLACING_BOTTOM_FIELD_FIRST; - if (flags & GST_VAAPI_DEINTERLACE_FLAG_ONEFIELD) - va_flags |= VA_DEINTERLACING_ONE_FIELD; + if (flags & GST_VAAPI_DEINTERLACE_FLAG_ONEFIELD) + va_flags |= VA_DEINTERLACING_ONE_FIELD; - if (!(flags & GST_VAAPI_DEINTERLACE_FLAG_TOPFIELD)) - va_flags |= VA_DEINTERLACING_BOTTOM_FIELD; + if (!(flags & GST_VAAPI_DEINTERLACE_FLAG_TOPFIELD)) + va_flags |= VA_DEINTERLACING_BOTTOM_FIELD; #endif - return va_flags; + return va_flags; } diff --git a/gst-libs/gst/vaapi/gstvaapiutils.h b/gst-libs/gst/vaapi/gstvaapiutils.h index 9fcab47146..fb5b1e49c1 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils.h +++ b/gst-libs/gst/vaapi/gstvaapiutils.h @@ -33,103 +33,98 @@ /** Check VA status for success or print out an error */ G_GNUC_INTERNAL gboolean -vaapi_check_status(VAStatus status, const char *msg); +vaapi_check_status (VAStatus status, const gchar *msg); /** Maps VA buffer */ G_GNUC_INTERNAL -void * -vaapi_map_buffer(VADisplay dpy, VABufferID buf_id); +gpointer +vaapi_map_buffer (VADisplay dpy, VABufferID buf_id); /** Unmaps VA buffer */ G_GNUC_INTERNAL void -vaapi_unmap_buffer(VADisplay dpy, VABufferID buf_id, void **pbuf); +vaapi_unmap_buffer (VADisplay dpy, VABufferID buf_id, void **pbuf); /** Creates and maps VA buffer */ G_GNUC_INTERNAL gboolean -vaapi_create_buffer( - VADisplay dpy, - VAContextID ctx, - int type, - unsigned int size, - gconstpointer data, - VABufferID *buf_id, - gpointer *mapped_data -); +vaapi_create_buffer (VADisplay dpy, VAContextID ctx, int type, guint size, + gconstpointer data, VABufferID * buf_id, gpointer * mapped_data); /** Destroy VA buffer */ G_GNUC_INTERNAL void -vaapi_destroy_buffer(VADisplay dpy, VABufferID *buf_id); +vaapi_destroy_buffer (VADisplay dpy, VABufferID * buf_id); /** Return a string representation of a VAProfile */ G_GNUC_INTERNAL -const char *string_of_VAProfile(VAProfile profile); +const gchar * +string_of_VAProfile (VAProfile profile); /** Return a string representation of a VAEntrypoint */ G_GNUC_INTERNAL -const char *string_of_VAEntrypoint(VAEntrypoint entrypoint); +const gchar * +string_of_VAEntrypoint (VAEntrypoint entrypoint); /* Return a string representation of a VADisplayAttributeType */ G_GNUC_INTERNAL -const char * -string_of_VADisplayAttributeType(VADisplayAttribType attribute_type); +const gchar * +string_of_VADisplayAttributeType (VADisplayAttribType attribute_type); G_GNUC_INTERNAL -const char * -string_of_VARateControl(guint rate_control); +const gchar * +string_of_VARateControl (guint rate_control); G_GNUC_INTERNAL guint -from_GstVaapiChromaType(guint chroma_type); +from_GstVaapiChromaType (guint chroma_type); G_GNUC_INTERNAL guint -from_GstVaapiSubpictureFlags(guint flags); +from_GstVaapiSubpictureFlags (guint flags); G_GNUC_INTERNAL guint -to_GstVaapiSubpictureFlags(guint va_flags); +to_GstVaapiSubpictureFlags (guint va_flags); G_GNUC_INTERNAL guint -from_GstVideoOverlayFormatFlags(guint ovl_flags); +from_GstVideoOverlayFormatFlags (guint ovl_flags); G_GNUC_INTERNAL guint -to_GstVideoOverlayFormatFlags(guint flags); +to_GstVideoOverlayFormatFlags (guint flags); G_GNUC_INTERNAL guint -from_GstVaapiSurfaceRenderFlags(guint flags); +from_GstVaapiSurfaceRenderFlags (guint flags); G_GNUC_INTERNAL guint -to_GstVaapiSurfaceStatus(guint va_flags); +to_GstVaapiSurfaceStatus (guint va_flags); G_GNUC_INTERNAL guint -from_GstVaapiRotation(guint value); +from_GstVaapiRotation (guint value); G_GNUC_INTERNAL guint -to_GstVaapiRotation(guint value); +to_GstVaapiRotation (guint value); G_GNUC_INTERNAL guint -from_GstVaapiRateControl(guint value); +from_GstVaapiRateControl (guint value); G_GNUC_INTERNAL guint -to_GstVaapiRateControl(guint value); +to_GstVaapiRateControl (guint value); G_GNUC_INTERNAL guint -from_GstVaapiDeinterlaceMethod(guint value); +from_GstVaapiDeinterlaceMethod (guint value); G_GNUC_INTERNAL guint -from_GstVaapiDeinterlaceFlags(guint flags); +from_GstVaapiDeinterlaceFlags (guint flags); #endif /* GST_VAAPI_UTILS_H */ diff --git a/gst-libs/gst/vaapi/gstvaapiutils_glx.c b/gst-libs/gst/vaapi/gstvaapiutils_glx.c index c47c9aaf66..b21cb6c961 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_glx.c +++ b/gst-libs/gst/vaapi/gstvaapiutils_glx.c @@ -22,7 +22,7 @@ * Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE 1 /* RTLD_DEFAULT */ +#define _GNU_SOURCE 1 /* RTLD_DEFAULT */ #include "sysdeps.h" #include #include @@ -35,23 +35,23 @@ /** Lookup for substring NAME in string EXT using SEP as separators */ static gboolean -find_string(const char *name, const char *ext, const char *sep) +find_string (const gchar *name, const gchar *ext, const gchar *sep) { - const char *end; - int name_len, n; + const gchar *end; + int name_len, n; - if (!name || !ext) - return FALSE; - - end = ext + strlen(ext); - name_len = strlen(name); - while (ext < end) { - n = strcspn(ext, sep); - if (n == name_len && strncmp(name, ext, n) == 0) - return TRUE; - ext += (n + 1); - } + if (!name || !ext) return FALSE; + + end = ext + strlen (ext); + name_len = strlen (name); + while (ext < end) { + n = strcspn (ext, sep); + if (n == name_len && strncmp (name, ext, n) == 0) + return TRUE; + ext += (n + 1); + } + return FALSE; } /** @@ -62,27 +62,28 @@ find_string(const char *name, const char *ext, const char *sep) * * Return error: the static string representing the OpenGL @error */ -const char * -gl_get_error_string(GLenum error) +const gchar * +gl_get_error_string (GLenum error) { - switch (error) { + switch (error) { #define MAP(id, str) \ case id: return str " (" #id ")" - MAP(GL_NO_ERROR, "no error"); - MAP(GL_INVALID_ENUM, "invalid enumerant"); - MAP(GL_INVALID_VALUE, "invalid value"); - MAP(GL_INVALID_OPERATION, "invalid operation"); - MAP(GL_STACK_OVERFLOW, "stack overflow"); - MAP(GL_STACK_UNDERFLOW, "stack underflow"); - MAP(GL_OUT_OF_MEMORY, "out of memory"); + MAP (GL_NO_ERROR, "no error"); + MAP (GL_INVALID_ENUM, "invalid enumerant"); + MAP (GL_INVALID_VALUE, "invalid value"); + MAP (GL_INVALID_OPERATION, "invalid operation"); + MAP (GL_STACK_OVERFLOW, "stack overflow"); + MAP (GL_STACK_UNDERFLOW, "stack underflow"); + MAP (GL_OUT_OF_MEMORY, "out of memory"); #ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT - MAP(GL_INVALID_FRAMEBUFFER_OPERATION_EXT, - "invalid framebuffer operation"); + MAP (GL_INVALID_FRAMEBUFFER_OPERATION_EXT, + "invalid framebuffer operation"); #endif #undef MAP - default: break; - }; - return ""; + default: + break; + }; + return ""; } /** @@ -92,10 +93,9 @@ gl_get_error_string(GLenum error) * clear up the pending errors prior to calling gl_check_error(). */ void -gl_purge_errors(void) +gl_purge_errors (void) { - while (glGetError() != GL_NO_ERROR) - ; /* nothing */ + while (glGetError () != GL_NO_ERROR); /* nothing */ } /** @@ -106,16 +106,16 @@ gl_purge_errors(void) * Return value: %TRUE if an error was encountered */ gboolean -gl_check_error(void) +gl_check_error (void) { - GLenum error; - gboolean has_errors = FALSE; + GLenum error; + gboolean has_errors = FALSE; - while ((error = glGetError()) != GL_NO_ERROR) { - GST_DEBUG("glError: %s caught", gl_get_error_string(error)); - has_errors = TRUE; - } - return has_errors; + while ((error = glGetError ()) != GL_NO_ERROR) { + GST_DEBUG ("glError: %s caught", gl_get_error_string (error)); + has_errors = TRUE; + } + return has_errors; } /** @@ -129,18 +129,18 @@ gl_check_error(void) * Return value: %TRUE on success */ gboolean -gl_get_param(GLenum param, guint *pval) +gl_get_param (GLenum param, guint * pval) { - GLint val; + GLint val; - gl_purge_errors(); - glGetIntegerv(param, &val); - if (gl_check_error()) - return FALSE; + gl_purge_errors (); + glGetIntegerv (param, &val); + if (gl_check_error ()) + return FALSE; - if (pval) - *pval = val; - return TRUE; + if (pval) + *pval = val; + return TRUE; } /** @@ -155,18 +155,18 @@ gl_get_param(GLenum param, guint *pval) * Return value: %TRUE on success */ gboolean -gl_get_texture_param(GLenum target, GLenum param, guint *pval) +gl_get_texture_param (GLenum target, GLenum param, guint * pval) { - GLint val; + GLint val; - gl_purge_errors(); - glGetTexLevelParameteriv(target, 0, param, &val); - if (gl_check_error()) - return FALSE; + gl_purge_errors (); + glGetTexLevelParameteriv (target, 0, param, &val); + if (gl_check_error ()) + return FALSE; - if (pval) - *pval = val; - return TRUE; + if (pval) + *pval = val; + return TRUE; } /** @@ -178,28 +178,28 @@ gl_get_texture_param(GLenum target, GLenum param, guint *pval) * Return value: texture binding type for @target */ static GLenum -gl_get_texture_binding(GLenum target) +gl_get_texture_binding (GLenum target) { - GLenum binding; + GLenum binding; - switch (target) { + switch (target) { case GL_TEXTURE_1D: - binding = GL_TEXTURE_BINDING_1D; - break; + binding = GL_TEXTURE_BINDING_1D; + break; case GL_TEXTURE_2D: - binding = GL_TEXTURE_BINDING_2D; - break; + binding = GL_TEXTURE_BINDING_2D; + break; case GL_TEXTURE_3D: - binding = GL_TEXTURE_BINDING_3D; - break; + binding = GL_TEXTURE_BINDING_3D; + break; case GL_TEXTURE_RECTANGLE_ARB: - binding = GL_TEXTURE_BINDING_RECTANGLE_ARB; - break; + binding = GL_TEXTURE_BINDING_RECTANGLE_ARB; + break; default: - binding = 0; - break; - } - return binding; + binding = 0; + break; + } + return binding; } /** @@ -210,14 +210,11 @@ gl_get_texture_binding(GLenum target) * wrapper around glClearColor(). */ void -gl_set_bgcolor(guint32 color) +gl_set_bgcolor (guint32 color) { - glClearColor( - ((color >> 16) & 0xff) / 255.0f, - ((color >> 8) & 0xff) / 255.0f, - ( color & 0xff) / 255.0f, - 1.0f - ); + glClearColor ( + ((color >> 16) & 0xff) / 255.0f, + ((color >> 8) & 0xff) / 255.0f, (color & 0xff) / 255.0f, 1.0f); } /** @@ -235,17 +232,18 @@ gl_set_bgcolor(guint32 color) * basically is the Mesa implementation of gluPerspective(). */ static void -gl_perspective(GLdouble fovy, GLdouble aspect, GLdouble near_val, GLdouble far_val) +gl_perspective (GLdouble fovy, GLdouble aspect, GLdouble near_val, + GLdouble far_val) { - GLdouble left, right, top, bottom; + GLdouble left, right, top, bottom; - /* Source (Q 9.085): - */ - top = tan(fovy * M_PI / 360.0) * near_val; - bottom = -top; - left = aspect * bottom; - right = aspect * top; - glFrustum(left, right, bottom, top, near_val, far_val); + /* Source (Q 9.085): + */ + top = tan (fovy * M_PI / 360.0) * near_val; + bottom = -top; + left = aspect * bottom; + right = aspect * top; + glFrustum (left, right, bottom, top, near_val, far_val); } /** @@ -258,7 +256,7 @@ gl_perspective(GLdouble fovy, GLdouble aspect, GLdouble near_val, GLdouble far_v * window. */ void -gl_resize(guint width, guint height) +gl_resize (guint width, guint height) { #define FOVY 60.0f #define ASPECT 1.0f @@ -266,16 +264,16 @@ gl_resize(guint width, guint height) #define Z_FAR 100.0f #define Z_CAMERA 0.869f - glViewport(0, 0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gl_perspective(FOVY, ASPECT, Z_NEAR, Z_FAR); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); + glViewport (0, 0, width, height); + glMatrixMode (GL_PROJECTION); + glLoadIdentity (); + gl_perspective (FOVY, ASPECT, Z_NEAR, Z_FAR); + glMatrixMode (GL_MODELVIEW); + glLoadIdentity (); - glTranslatef(-0.5f, -0.5f, -Z_CAMERA); - glScalef(1.0f/width, -1.0f/height, 1.0f/width); - glTranslatef(0.0f, -1.0f*height, 0.0f); + glTranslatef (-0.5f, -0.5f, -Z_CAMERA); + glScalef (1.0f / width, -1.0f / height, 1.0f / width); + glTranslatef (0.0f, -1.0f * height, 0.0f); } /** @@ -290,101 +288,85 @@ gl_resize(guint width, guint height) * Return value: the newly created GLX context */ GLContextState * -gl_create_context(Display *dpy, int screen, GLContextState *parent) +gl_create_context (Display * dpy, int screen, GLContextState * parent) { - GLContextState *cs; - GLXFBConfig *fbconfigs = NULL; - int fbconfig_id, val, n, n_fbconfigs; - Status status; + GLContextState *cs; + GLXFBConfig *fbconfigs = NULL; + int fbconfig_id, val, n, n_fbconfigs; + Status status; - static GLint fbconfig_attrs[] = { - GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT, - GLX_RENDER_TYPE, GLX_RGBA_BIT, - GLX_DOUBLEBUFFER, True, - GLX_RED_SIZE, 8, - GLX_GREEN_SIZE, 8, - GLX_BLUE_SIZE, 8, - None - }; + static GLint fbconfig_attrs[] = { + GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT, + GLX_RENDER_TYPE, GLX_RGBA_BIT, + GLX_DOUBLEBUFFER, True, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, + GLX_BLUE_SIZE, 8, + None + }; - cs = malloc(sizeof(*cs)); - if (!cs) - goto error; + cs = malloc (sizeof (*cs)); + if (!cs) + goto error; - if (parent) { - cs->display = parent->display; - cs->window = parent->window; - screen = DefaultScreen(parent->display); + if (parent) { + cs->display = parent->display; + cs->window = parent->window; + screen = DefaultScreen (parent->display); + } else { + cs->display = dpy; + cs->window = None; + } + cs->visual = NULL; + cs->context = NULL; + cs->swapped_buffers = FALSE; + + if (parent && parent->context) { + status = glXQueryContext (parent->display, + parent->context, GLX_FBCONFIG_ID, &fbconfig_id); + if (status != Success) + goto error; + + if (fbconfig_id == GLX_DONT_CARE) + goto choose_fbconfig; + + fbconfigs = glXGetFBConfigs (parent->display, screen, &n_fbconfigs); + if (!fbconfigs) + goto error; + + /* Find out a GLXFBConfig compatible with the parent context */ + for (n = 0; n < n_fbconfigs; n++) { + status = glXGetFBConfigAttrib (parent->display, + fbconfigs[n], GLX_FBCONFIG_ID, &val); + if (status == Success && val == fbconfig_id) + break; } - else { - cs->display = dpy; - cs->window = None; - } - cs->visual = NULL; - cs->context = NULL; - cs->swapped_buffers = FALSE; + if (n == n_fbconfigs) + goto error; + } else { + choose_fbconfig: + fbconfigs = glXChooseFBConfig (cs->display, + screen, fbconfig_attrs, &n_fbconfigs); + if (!fbconfigs) + goto error; - if (parent && parent->context) { - status = glXQueryContext( - parent->display, - parent->context, - GLX_FBCONFIG_ID, &fbconfig_id - ); - if (status != Success) - goto error; + /* Select the first one */ + n = 0; + } - if (fbconfig_id == GLX_DONT_CARE) - goto choose_fbconfig; - - fbconfigs = glXGetFBConfigs(parent->display, screen, &n_fbconfigs); - if (!fbconfigs) - goto error; - - /* Find out a GLXFBConfig compatible with the parent context */ - for (n = 0; n < n_fbconfigs; n++) { - status = glXGetFBConfigAttrib( - parent->display, - fbconfigs[n], - GLX_FBCONFIG_ID, &val - ); - if (status == Success && val == fbconfig_id) - break; - } - if (n == n_fbconfigs) - goto error; - } - else { - choose_fbconfig: - fbconfigs = glXChooseFBConfig( - cs->display, - screen, - fbconfig_attrs, &n_fbconfigs - ); - if (!fbconfigs) - goto error; - - /* Select the first one */ - n = 0; - } - - cs->visual = glXGetVisualFromFBConfig(cs->display, fbconfigs[n]); - cs->context = glXCreateNewContext( - cs->display, - fbconfigs[n], - GLX_RGBA_TYPE, - parent ? parent->context : NULL, - True - ); - if (cs->context) - goto end; + cs->visual = glXGetVisualFromFBConfig (cs->display, fbconfigs[n]); + cs->context = glXCreateNewContext (cs->display, + fbconfigs[n], GLX_RGBA_TYPE, parent ? parent->context : NULL, True); + if (cs->context) + goto end; error: - gl_destroy_context(cs); - cs = NULL; + gl_destroy_context (cs); + cs = NULL; end: - if (fbconfigs) - XFree(fbconfigs); - return cs; + if (fbconfigs) + XFree (fbconfigs); + return cs; } /** @@ -394,29 +376,29 @@ end: * Destroys the GLX context @cs */ void -gl_destroy_context(GLContextState *cs) +gl_destroy_context (GLContextState * cs) { - if (!cs) - return; + if (!cs) + return; - if (cs->visual) { - XFree(cs->visual); - cs->visual = NULL; - } + if (cs->visual) { + XFree (cs->visual); + cs->visual = NULL; + } - if (cs->display && cs->context) { - if (glXGetCurrentContext() == cs->context) { - /* XXX: if buffers were never swapped, the application - will crash later with the NVIDIA driver */ - if (!cs->swapped_buffers) - gl_swap_buffers(cs); - glXMakeCurrent(cs->display, None, NULL); - } - glXDestroyContext(cs->display, cs->context); - cs->display = NULL; - cs->context = NULL; + if (cs->display && cs->context) { + if (glXGetCurrentContext () == cs->context) { + /* XXX: if buffers were never swapped, the application + will crash later with the NVIDIA driver */ + if (!cs->swapped_buffers) + gl_swap_buffers (cs); + glXMakeCurrent (cs->display, None, NULL); } - free(cs); + glXDestroyContext (cs->display, cs->context); + cs->display = NULL; + cs->context = NULL; + } + free (cs); } /** @@ -427,11 +409,11 @@ gl_destroy_context(GLContextState *cs) * the #GLContextState struct. */ void -gl_get_current_context(GLContextState *cs) +gl_get_current_context (GLContextState * cs) { - cs->display = glXGetCurrentDisplay(); - cs->window = glXGetCurrentDrawable(); - cs->context = glXGetCurrentContext(); + cs->display = glXGetCurrentDisplay (); + cs->window = glXGetCurrentDrawable (); + cs->context = glXGetCurrentContext (); } /** @@ -449,24 +431,23 @@ gl_get_current_context(GLContextState *cs) * Return value: %TRUE on success */ gboolean -gl_set_current_context(GLContextState *new_cs, GLContextState *old_cs) +gl_set_current_context (GLContextState * new_cs, GLContextState * old_cs) { - /* If display is NULL, this could be that new_cs was retrieved from - gl_get_current_context() with none set previously. If that case, - the other fields are also NULL and we don't return an error */ - if (!new_cs->display) - return !new_cs->window && !new_cs->context; + /* If display is NULL, this could be that new_cs was retrieved from + gl_get_current_context() with none set previously. If that case, + the other fields are also NULL and we don't return an error */ + if (!new_cs->display) + return !new_cs->window && !new_cs->context; - if (old_cs) { - if (old_cs == new_cs) - return TRUE; - gl_get_current_context(old_cs); - if (old_cs->display == new_cs->display && - old_cs->window == new_cs->window && - old_cs->context == new_cs->context) - return TRUE; - } - return glXMakeCurrent(new_cs->display, new_cs->window, new_cs->context); + if (old_cs) { + if (old_cs == new_cs) + return TRUE; + gl_get_current_context (old_cs); + if (old_cs->display == new_cs->display && + old_cs->window == new_cs->window && old_cs->context == new_cs->context) + return TRUE; + } + return glXMakeCurrent (new_cs->display, new_cs->window, new_cs->context); } /** @@ -478,10 +459,10 @@ gl_set_current_context(GLContextState *new_cs, GLContextState *old_cs) * around glXSwapBuffers(). */ void -gl_swap_buffers(GLContextState *cs) +gl_swap_buffers (GLContextState * cs) { - glXSwapBuffers(cs->display, cs->window); - cs->swapped_buffers = TRUE; + glXSwapBuffers (cs->display, cs->window); + cs->swapped_buffers = TRUE; } /** @@ -496,35 +477,34 @@ gl_swap_buffers(GLContextState *cs) * Return value: %TRUE on success */ gboolean -gl_bind_texture(GLTextureState *ts, GLenum target, GLuint texture) +gl_bind_texture (GLTextureState * ts, GLenum target, GLuint texture) { - GLenum binding; + GLenum binding; - ts->target = target; + ts->target = target; - if (glIsEnabled(target)) { - binding = gl_get_texture_binding(target); - if (!binding) - return FALSE; - if (!gl_get_param(binding, &ts->old_texture)) - return FALSE; - ts->was_enabled = TRUE; - ts->was_bound = texture == ts->old_texture; - if (ts->was_bound) - return TRUE; - } - else { - glEnable(target); - ts->old_texture = 0; - ts->was_enabled = FALSE; - ts->was_bound = FALSE; - } + if (glIsEnabled (target)) { + binding = gl_get_texture_binding (target); + if (!binding) + return FALSE; + if (!gl_get_param (binding, &ts->old_texture)) + return FALSE; + ts->was_enabled = TRUE; + ts->was_bound = texture == ts->old_texture; + if (ts->was_bound) + return TRUE; + } else { + glEnable (target); + ts->old_texture = 0; + ts->was_enabled = FALSE; + ts->was_bound = FALSE; + } - gl_purge_errors(); - glBindTexture(target, texture); - if (gl_check_error()) - return FALSE; - return TRUE; + gl_purge_errors (); + glBindTexture (target, texture); + if (gl_check_error ()) + return FALSE; + return TRUE; } /** @@ -534,12 +514,12 @@ gl_bind_texture(GLTextureState *ts, GLenum target, GLuint texture) * Rebinds the texture that was previously bound and recorded in @ts. */ void -gl_unbind_texture(GLTextureState *ts) +gl_unbind_texture (GLTextureState * ts) { - if (!ts->was_bound && ts->old_texture) - glBindTexture(ts->target, ts->old_texture); - if (!ts->was_enabled) - glDisable(ts->target); + if (!ts->was_bound && ts->old_texture) + glBindTexture (ts->target, ts->old_texture); + if (!ts->was_enabled) + glDisable (ts->target); } /** @@ -555,52 +535,44 @@ gl_unbind_texture(GLTextureState *ts) * Return value: the newly created texture name */ GLuint -gl_create_texture(GLenum target, GLenum format, guint width, guint height) +gl_create_texture (GLenum target, GLenum format, guint width, guint height) { - GLenum internal_format; - GLuint texture; - GLTextureState ts; - guint bytes_per_component; + GLenum internal_format; + GLuint texture; + GLTextureState ts; + guint bytes_per_component; - internal_format = format; - switch (format) { + internal_format = format; + switch (format) { case GL_LUMINANCE: - bytes_per_component = 1; - break; + bytes_per_component = 1; + break; case GL_LUMINANCE_ALPHA: - bytes_per_component = 2; - break; + bytes_per_component = 2; + break; case GL_RGBA: case GL_BGRA: - internal_format = GL_RGBA; - bytes_per_component = 4; - break; + internal_format = GL_RGBA; + bytes_per_component = 4; + break; default: - bytes_per_component = 0; - break; - } - g_assert(bytes_per_component > 0); + bytes_per_component = 0; + break; + } + g_assert (bytes_per_component > 0); - glGenTextures(1, &texture); - if (!gl_bind_texture(&ts, target, texture)) - return 0; - glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glPixelStorei(GL_UNPACK_ALIGNMENT, bytes_per_component); - glTexImage2D( - target, - 0, - internal_format, - width, height, - 0, - format, - GL_UNSIGNED_BYTE, - NULL - ); - gl_unbind_texture(&ts); - return texture; + glGenTextures (1, &texture); + if (!gl_bind_texture (&ts, target, texture)) + return 0; + glTexParameteri (target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri (target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glPixelStorei (GL_UNPACK_ALIGNMENT, bytes_per_component); + glTexImage2D (target, + 0, internal_format, width, height, 0, format, GL_UNSIGNED_BYTE, NULL); + gl_unbind_texture (&ts); + return texture; } /** @@ -612,39 +584,39 @@ gl_create_texture(GLenum target, GLenum format, guint width, guint height) * Return value: the OpenGL extension matching @name, or %NULL if none * was found */ -typedef void (*GLFuncPtr)(void); -typedef GLFuncPtr (*GLXGetProcAddressProc)(const char *); +typedef void (*GLFuncPtr) (void); +typedef GLFuncPtr (*GLXGetProcAddressProc) (const gchar *); static GLFuncPtr -get_proc_address_default(const char *name) +get_proc_address_default (const gchar *name) { - return NULL; + return NULL; } static GLXGetProcAddressProc -get_proc_address_func(void) +get_proc_address_func (void) { - GLXGetProcAddressProc get_proc_func; + GLXGetProcAddressProc get_proc_func; - dlerror(); - *(void **)(&get_proc_func) = dlsym(RTLD_DEFAULT, "glXGetProcAddress"); - if (!dlerror()) - return get_proc_func; + dlerror (); + *(void **) (&get_proc_func) = dlsym (RTLD_DEFAULT, "glXGetProcAddress"); + if (!dlerror ()) + return get_proc_func; - *(void **)(&get_proc_func) = dlsym(RTLD_DEFAULT, "glXGetProcAddressARB"); - if (!dlerror()) - return get_proc_func; + *(void **) (&get_proc_func) = dlsym (RTLD_DEFAULT, "glXGetProcAddressARB"); + if (!dlerror ()) + return get_proc_func; - return get_proc_address_default; + return get_proc_address_default; } static inline GLFuncPtr -get_proc_address(const char *name) +get_proc_address (const gchar *name) { - static GLXGetProcAddressProc get_proc_func = NULL; - if (!get_proc_func) - get_proc_func = get_proc_address_func(); - return get_proc_func(name); + static GLXGetProcAddressProc get_proc_func = NULL; + if (!get_proc_func) + get_proc_func = get_proc_address_func (); + return get_proc_func (name); } /** @@ -658,79 +630,80 @@ get_proc_address(const char *name) static GLVTable gl_vtable_static; static GLVTable * -gl_init_vtable(void) +gl_init_vtable (void) { - GLVTable * const gl_vtable = &gl_vtable_static; - const gchar *gl_extensions = (const gchar *)glGetString(GL_EXTENSIONS); - gboolean has_extension; + GLVTable *const gl_vtable = &gl_vtable_static; + const gchar *gl_extensions = (const gchar *) glGetString (GL_EXTENSIONS); + gboolean has_extension; - /* GLX_EXT_texture_from_pixmap */ - gl_vtable->glx_create_pixmap = (PFNGLXCREATEPIXMAPPROC) - get_proc_address("glXCreatePixmap"); - if (!gl_vtable->glx_create_pixmap) - return NULL; - gl_vtable->glx_destroy_pixmap = (PFNGLXDESTROYPIXMAPPROC) - get_proc_address("glXDestroyPixmap"); - if (!gl_vtable->glx_destroy_pixmap) - return NULL; - gl_vtable->glx_bind_tex_image = (PFNGLXBINDTEXIMAGEEXTPROC) - get_proc_address("glXBindTexImageEXT"); - if (!gl_vtable->glx_bind_tex_image) - return NULL; - gl_vtable->glx_release_tex_image = (PFNGLXRELEASETEXIMAGEEXTPROC) - get_proc_address("glXReleaseTexImageEXT"); - if (!gl_vtable->glx_release_tex_image) - return NULL; + /* GLX_EXT_texture_from_pixmap */ + gl_vtable->glx_create_pixmap = (PFNGLXCREATEPIXMAPPROC) + get_proc_address ("glXCreatePixmap"); + if (!gl_vtable->glx_create_pixmap) + return NULL; + gl_vtable->glx_destroy_pixmap = (PFNGLXDESTROYPIXMAPPROC) + get_proc_address ("glXDestroyPixmap"); + if (!gl_vtable->glx_destroy_pixmap) + return NULL; + gl_vtable->glx_bind_tex_image = (PFNGLXBINDTEXIMAGEEXTPROC) + get_proc_address ("glXBindTexImageEXT"); + if (!gl_vtable->glx_bind_tex_image) + return NULL; + gl_vtable->glx_release_tex_image = (PFNGLXRELEASETEXIMAGEEXTPROC) + get_proc_address ("glXReleaseTexImageEXT"); + if (!gl_vtable->glx_release_tex_image) + return NULL; - /* GL_ARB_framebuffer_object */ - has_extension = ( - find_string("GL_ARB_framebuffer_object", gl_extensions, " ") || - find_string("GL_EXT_framebuffer_object", gl_extensions, " ") - ); - if (has_extension) { - gl_vtable->gl_gen_framebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC) - get_proc_address("glGenFramebuffersEXT"); - if (!gl_vtable->gl_gen_framebuffers) - return NULL; - gl_vtable->gl_delete_framebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC) - get_proc_address("glDeleteFramebuffersEXT"); - if (!gl_vtable->gl_delete_framebuffers) - return NULL; - gl_vtable->gl_bind_framebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC) - get_proc_address("glBindFramebufferEXT"); - if (!gl_vtable->gl_bind_framebuffer) - return NULL; - gl_vtable->gl_gen_renderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC) - get_proc_address("glGenRenderbuffersEXT"); - if (!gl_vtable->gl_gen_renderbuffers) - return NULL; - gl_vtable->gl_delete_renderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC) - get_proc_address("glDeleteRenderbuffersEXT"); - if (!gl_vtable->gl_delete_renderbuffers) - return NULL; - gl_vtable->gl_bind_renderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC) - get_proc_address("glBindRenderbufferEXT"); - if (!gl_vtable->gl_bind_renderbuffer) - return NULL; - gl_vtable->gl_renderbuffer_storage = (PFNGLRENDERBUFFERSTORAGEEXTPROC) - get_proc_address("glRenderbufferStorageEXT"); - if (!gl_vtable->gl_renderbuffer_storage) - return NULL; - gl_vtable->gl_framebuffer_renderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) - get_proc_address("glFramebufferRenderbufferEXT"); - if (!gl_vtable->gl_framebuffer_renderbuffer) - return NULL; - gl_vtable->gl_framebuffer_texture_2d = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) - get_proc_address("glFramebufferTexture2DEXT"); - if (!gl_vtable->gl_framebuffer_texture_2d) - return NULL; - gl_vtable->gl_check_framebuffer_status = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) - get_proc_address("glCheckFramebufferStatusEXT"); - if (!gl_vtable->gl_check_framebuffer_status) - return NULL; - gl_vtable->has_framebuffer_object = TRUE; - } - return gl_vtable; + /* GL_ARB_framebuffer_object */ + has_extension = (find_string ("GL_ARB_framebuffer_object", gl_extensions, " ") + || find_string ("GL_EXT_framebuffer_object", gl_extensions, " ") + ); + if (has_extension) { + gl_vtable->gl_gen_framebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC) + get_proc_address ("glGenFramebuffersEXT"); + if (!gl_vtable->gl_gen_framebuffers) + return NULL; + gl_vtable->gl_delete_framebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC) + get_proc_address ("glDeleteFramebuffersEXT"); + if (!gl_vtable->gl_delete_framebuffers) + return NULL; + gl_vtable->gl_bind_framebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC) + get_proc_address ("glBindFramebufferEXT"); + if (!gl_vtable->gl_bind_framebuffer) + return NULL; + gl_vtable->gl_gen_renderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC) + get_proc_address ("glGenRenderbuffersEXT"); + if (!gl_vtable->gl_gen_renderbuffers) + return NULL; + gl_vtable->gl_delete_renderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC) + get_proc_address ("glDeleteRenderbuffersEXT"); + if (!gl_vtable->gl_delete_renderbuffers) + return NULL; + gl_vtable->gl_bind_renderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC) + get_proc_address ("glBindRenderbufferEXT"); + if (!gl_vtable->gl_bind_renderbuffer) + return NULL; + gl_vtable->gl_renderbuffer_storage = (PFNGLRENDERBUFFERSTORAGEEXTPROC) + get_proc_address ("glRenderbufferStorageEXT"); + if (!gl_vtable->gl_renderbuffer_storage) + return NULL; + gl_vtable->gl_framebuffer_renderbuffer = + (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) + get_proc_address ("glFramebufferRenderbufferEXT"); + if (!gl_vtable->gl_framebuffer_renderbuffer) + return NULL; + gl_vtable->gl_framebuffer_texture_2d = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) + get_proc_address ("glFramebufferTexture2DEXT"); + if (!gl_vtable->gl_framebuffer_texture_2d) + return NULL; + gl_vtable->gl_check_framebuffer_status = + (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) + get_proc_address ("glCheckFramebufferStatusEXT"); + if (!gl_vtable->gl_check_framebuffer_status) + return NULL; + gl_vtable->has_framebuffer_object = TRUE; + } + return gl_vtable; } /** @@ -741,16 +714,16 @@ gl_init_vtable(void) * Return value: VTable for OpenGL extensions */ GLVTable * -gl_get_vtable(void) +gl_get_vtable (void) { - static gsize gl_vtable_init = FALSE; - static GLVTable *gl_vtable = NULL; + static gsize gl_vtable_init = FALSE; + static GLVTable *gl_vtable = NULL; - if (g_once_init_enter(&gl_vtable_init)) { - gl_vtable = gl_init_vtable(); - g_once_init_leave(&gl_vtable_init, TRUE); - } - return gl_vtable; + if (g_once_init_enter (&gl_vtable_init)) { + gl_vtable = gl_init_vtable (); + g_once_init_leave (&gl_vtable_init, TRUE); + } + return gl_vtable; } /** @@ -765,121 +738,114 @@ gl_get_vtable(void) * Return value: the newly created #GLPixmapObject object */ GLPixmapObject * -gl_create_pixmap_object(Display *dpy, guint width, guint height) +gl_create_pixmap_object (Display * dpy, guint width, guint height) { - GLVTable * const gl_vtable = gl_get_vtable(); - GLPixmapObject *pixo; - GLXFBConfig *fbconfig; - int screen; - Window rootwin; - XWindowAttributes wattr; - int *attr; - int n_fbconfig_attrs; + GLVTable *const gl_vtable = gl_get_vtable (); + GLPixmapObject *pixo; + GLXFBConfig *fbconfig; + int screen; + Window rootwin; + XWindowAttributes wattr; + int *attr; + int n_fbconfig_attrs; - int fbconfig_attrs[32] = { - GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, - GLX_DOUBLEBUFFER, GL_FALSE, - GLX_RENDER_TYPE, GLX_RGBA_BIT, - GLX_X_RENDERABLE, GL_TRUE, - GLX_Y_INVERTED_EXT, GL_TRUE, - GLX_RED_SIZE, 8, - GLX_GREEN_SIZE, 8, - GLX_BLUE_SIZE, 8, - GL_NONE, - }; + int fbconfig_attrs[32] = { + GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, + GLX_DOUBLEBUFFER, GL_FALSE, + GLX_RENDER_TYPE, GLX_RGBA_BIT, + GLX_X_RENDERABLE, GL_TRUE, + GLX_Y_INVERTED_EXT, GL_TRUE, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, + GLX_BLUE_SIZE, 8, + GL_NONE, + }; - int pixmap_attrs[10] = { - GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT, - GLX_MIPMAP_TEXTURE_EXT, GL_FALSE, - GL_NONE, - }; + int pixmap_attrs[10] = { + GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT, + GLX_MIPMAP_TEXTURE_EXT, GL_FALSE, + GL_NONE, + }; - if (!gl_vtable) - return NULL; + if (!gl_vtable) + return NULL; - screen = DefaultScreen(dpy); - rootwin = RootWindow(dpy, screen); + screen = DefaultScreen (dpy); + rootwin = RootWindow (dpy, screen); - /* XXX: this won't work for different displays */ - if (!gl_vtable->has_texture_from_pixmap) { - const char *glx_extensions = glXQueryExtensionsString(dpy, screen); - if (!glx_extensions) - return NULL; - if (!find_string("GLX_EXT_texture_from_pixmap", glx_extensions, " ")) - return NULL; - gl_vtable->has_texture_from_pixmap = TRUE; - } + /* XXX: this won't work for different displays */ + if (!gl_vtable->has_texture_from_pixmap) { + const gchar *glx_extensions = glXQueryExtensionsString (dpy, screen); + if (!glx_extensions) + return NULL; + if (!find_string ("GLX_EXT_texture_from_pixmap", glx_extensions, " ")) + return NULL; + gl_vtable->has_texture_from_pixmap = TRUE; + } - pixo = calloc(1, sizeof(*pixo)); - if (!pixo) - return NULL; + pixo = calloc (1, sizeof (*pixo)); + if (!pixo) + return NULL; - pixo->dpy = dpy; - pixo->width = width; - pixo->height = height; - pixo->pixmap = None; - pixo->glx_pixmap = None; - pixo->is_bound = FALSE; + pixo->dpy = dpy; + pixo->width = width; + pixo->height = height; + pixo->pixmap = None; + pixo->glx_pixmap = None; + pixo->is_bound = FALSE; - XGetWindowAttributes(dpy, rootwin, &wattr); - pixo->pixmap = XCreatePixmap(dpy, rootwin, width, height, wattr.depth); - if (!pixo->pixmap) - goto error; + XGetWindowAttributes (dpy, rootwin, &wattr); + pixo->pixmap = XCreatePixmap (dpy, rootwin, width, height, wattr.depth); + if (!pixo->pixmap) + goto error; - /* Initialize FBConfig attributes */ - for (attr = fbconfig_attrs; *attr != GL_NONE; attr += 2) - ; - *attr++ = GLX_DEPTH_SIZE; *attr++ = wattr.depth; - if (wattr.depth == 32) { - *attr++ = GLX_ALPHA_SIZE; *attr++ = 8; - *attr++ = GLX_BIND_TO_TEXTURE_RGBA_EXT; *attr++ = GL_TRUE; - } - else { - *attr++ = GLX_BIND_TO_TEXTURE_RGB_EXT; *attr++ = GL_TRUE; - } - *attr++ = GL_NONE; + /* Initialize FBConfig attributes */ + for (attr = fbconfig_attrs; *attr != GL_NONE; attr += 2); + *attr++ = GLX_DEPTH_SIZE; + *attr++ = wattr.depth; + if (wattr.depth == 32) { + *attr++ = GLX_ALPHA_SIZE; + *attr++ = 8; + *attr++ = GLX_BIND_TO_TEXTURE_RGBA_EXT; + *attr++ = GL_TRUE; + } else { + *attr++ = GLX_BIND_TO_TEXTURE_RGB_EXT; + *attr++ = GL_TRUE; + } + *attr++ = GL_NONE; - fbconfig = glXChooseFBConfig( - dpy, - screen, - fbconfig_attrs, &n_fbconfig_attrs - ); - if (!fbconfig) - goto error; + fbconfig = glXChooseFBConfig (dpy, screen, fbconfig_attrs, &n_fbconfig_attrs); + if (!fbconfig) + goto error; - /* Initialize GLX Pixmap attributes */ - for (attr = pixmap_attrs; *attr != GL_NONE; attr += 2) - ; - *attr++ = GLX_TEXTURE_FORMAT_EXT; - if (wattr.depth == 32) + /* Initialize GLX Pixmap attributes */ + for (attr = pixmap_attrs; *attr != GL_NONE; attr += 2); + *attr++ = GLX_TEXTURE_FORMAT_EXT; + if (wattr.depth == 32) *attr++ = GLX_TEXTURE_FORMAT_RGBA_EXT; - else + else *attr++ = GLX_TEXTURE_FORMAT_RGB_EXT; - *attr++ = GL_NONE; + *attr++ = GL_NONE; - x11_trap_errors(); - pixo->glx_pixmap = gl_vtable->glx_create_pixmap( - dpy, - fbconfig[0], - pixo->pixmap, - pixmap_attrs - ); - free(fbconfig); - if (x11_untrap_errors() != 0) - goto error; + x11_trap_errors (); + pixo->glx_pixmap = gl_vtable->glx_create_pixmap (dpy, + fbconfig[0], pixo->pixmap, pixmap_attrs); + free (fbconfig); + if (x11_untrap_errors () != 0) + goto error; - pixo->target = GL_TEXTURE_2D; - glGenTextures(1, &pixo->texture); - if (!gl_bind_texture(&pixo->old_texture, pixo->target, pixo->texture)) - goto error; - glTexParameteri(pixo->target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(pixo->target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - gl_unbind_texture(&pixo->old_texture); - return pixo; + pixo->target = GL_TEXTURE_2D; + glGenTextures (1, &pixo->texture); + if (!gl_bind_texture (&pixo->old_texture, pixo->target, pixo->texture)) + goto error; + glTexParameteri (pixo->target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri (pixo->target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + gl_unbind_texture (&pixo->old_texture); + return pixo; error: - gl_destroy_pixmap_object(pixo); - return NULL; + gl_destroy_pixmap_object (pixo); + return NULL; } /** @@ -889,30 +855,30 @@ error: * Destroys the #GLPixmapObject object. */ void -gl_destroy_pixmap_object(GLPixmapObject *pixo) +gl_destroy_pixmap_object (GLPixmapObject * pixo) { - GLVTable * const gl_vtable = gl_get_vtable(); + GLVTable *const gl_vtable = gl_get_vtable (); - if (!pixo) - return; + if (!pixo) + return; - gl_unbind_pixmap_object(pixo); + gl_unbind_pixmap_object (pixo); - if (pixo->texture) { - glDeleteTextures(1, &pixo->texture); - pixo->texture = 0; - } + if (pixo->texture) { + glDeleteTextures (1, &pixo->texture); + pixo->texture = 0; + } - if (pixo->glx_pixmap) { - gl_vtable->glx_destroy_pixmap(pixo->dpy, pixo->glx_pixmap); - pixo->glx_pixmap = None; - } + if (pixo->glx_pixmap) { + gl_vtable->glx_destroy_pixmap (pixo->dpy, pixo->glx_pixmap); + pixo->glx_pixmap = None; + } - if (pixo->pixmap) { - XFreePixmap(pixo->dpy, pixo->pixmap); - pixo->pixmap = None; - } - free(pixo); + if (pixo->pixmap) { + XFreePixmap (pixo->dpy, pixo->pixmap); + pixo->pixmap = None; + } + free (pixo); } /** @@ -926,31 +892,27 @@ gl_destroy_pixmap_object(GLPixmapObject *pixo) * Return value: %TRUE on success */ gboolean -gl_bind_pixmap_object(GLPixmapObject *pixo) +gl_bind_pixmap_object (GLPixmapObject * pixo) { - GLVTable * const gl_vtable = gl_get_vtable(); + GLVTable *const gl_vtable = gl_get_vtable (); - if (pixo->is_bound) - return TRUE; - - if (!gl_bind_texture(&pixo->old_texture, pixo->target, pixo->texture)) - return FALSE; - - x11_trap_errors(); - gl_vtable->glx_bind_tex_image( - pixo->dpy, - pixo->glx_pixmap, - GLX_FRONT_LEFT_EXT, - NULL - ); - XSync(pixo->dpy, False); - if (x11_untrap_errors() != 0) { - GST_DEBUG("failed to bind pixmap"); - return FALSE; - } - - pixo->is_bound = TRUE; + if (pixo->is_bound) return TRUE; + + if (!gl_bind_texture (&pixo->old_texture, pixo->target, pixo->texture)) + return FALSE; + + x11_trap_errors (); + gl_vtable->glx_bind_tex_image (pixo->dpy, + pixo->glx_pixmap, GLX_FRONT_LEFT_EXT, NULL); + XSync (pixo->dpy, False); + if (x11_untrap_errors () != 0) { + GST_DEBUG ("failed to bind pixmap"); + return FALSE; + } + + pixo->is_bound = TRUE; + return TRUE; } /** @@ -962,29 +924,26 @@ gl_bind_pixmap_object(GLPixmapObject *pixo) * Return value: %TRUE on success */ gboolean -gl_unbind_pixmap_object(GLPixmapObject *pixo) +gl_unbind_pixmap_object (GLPixmapObject * pixo) { - GLVTable * const gl_vtable = gl_get_vtable(); + GLVTable *const gl_vtable = gl_get_vtable (); - if (!pixo->is_bound) - return TRUE; - - x11_trap_errors(); - gl_vtable->glx_release_tex_image( - pixo->dpy, - pixo->glx_pixmap, - GLX_FRONT_LEFT_EXT - ); - XSync(pixo->dpy, False); - if (x11_untrap_errors() != 0) { - GST_DEBUG("failed to release pixmap"); - return FALSE; - } - - gl_unbind_texture(&pixo->old_texture); - - pixo->is_bound = FALSE; + if (!pixo->is_bound) return TRUE; + + x11_trap_errors (); + gl_vtable->glx_release_tex_image (pixo->dpy, + pixo->glx_pixmap, GLX_FRONT_LEFT_EXT); + XSync (pixo->dpy, False); + if (x11_untrap_errors () != 0) { + GST_DEBUG ("failed to release pixmap"); + return FALSE; + } + + gl_unbind_texture (&pixo->old_texture); + + pixo->is_bound = FALSE; + return TRUE; } /** @@ -1000,53 +959,45 @@ gl_unbind_pixmap_object(GLPixmapObject *pixo) * an error occurred */ GLFramebufferObject * -gl_create_framebuffer_object( - GLenum target, - GLuint texture, - guint width, - guint height -) +gl_create_framebuffer_object (GLenum target, + GLuint texture, guint width, guint height) { - GLVTable * const gl_vtable = gl_get_vtable(); - GLFramebufferObject *fbo; - GLenum status; + GLVTable *const gl_vtable = gl_get_vtable (); + GLFramebufferObject *fbo; + GLenum status; - if (!gl_vtable || !gl_vtable->has_framebuffer_object) - return NULL; + if (!gl_vtable || !gl_vtable->has_framebuffer_object) + return NULL; - /* XXX: we only support GL_TEXTURE_2D at this time */ - if (target != GL_TEXTURE_2D) - return NULL; + /* XXX: we only support GL_TEXTURE_2D at this time */ + if (target != GL_TEXTURE_2D) + return NULL; - fbo = calloc(1, sizeof(*fbo)); - if (!fbo) - return NULL; + fbo = calloc (1, sizeof (*fbo)); + if (!fbo) + return NULL; - fbo->width = width; - fbo->height = height; - fbo->fbo = 0; - fbo->old_fbo = 0; - fbo->is_bound = FALSE; + fbo->width = width; + fbo->height = height; + fbo->fbo = 0; + fbo->old_fbo = 0; + fbo->is_bound = FALSE; - gl_get_param(GL_FRAMEBUFFER_BINDING, &fbo->old_fbo); - gl_vtable->gl_gen_framebuffers(1, &fbo->fbo); - gl_vtable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo->fbo); - gl_vtable->gl_framebuffer_texture_2d( - GL_FRAMEBUFFER_EXT, - GL_COLOR_ATTACHMENT0_EXT, - target, texture, - 0 - ); + gl_get_param (GL_FRAMEBUFFER_BINDING, &fbo->old_fbo); + gl_vtable->gl_gen_framebuffers (1, &fbo->fbo); + gl_vtable->gl_bind_framebuffer (GL_FRAMEBUFFER_EXT, fbo->fbo); + gl_vtable->gl_framebuffer_texture_2d (GL_FRAMEBUFFER_EXT, + GL_COLOR_ATTACHMENT0_EXT, target, texture, 0); - status = gl_vtable->gl_check_framebuffer_status(GL_DRAW_FRAMEBUFFER_EXT); - gl_vtable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo->old_fbo); - if (status != GL_FRAMEBUFFER_COMPLETE_EXT) - goto error; - return fbo; + status = gl_vtable->gl_check_framebuffer_status (GL_DRAW_FRAMEBUFFER_EXT); + gl_vtable->gl_bind_framebuffer (GL_FRAMEBUFFER_EXT, fbo->old_fbo); + if (status != GL_FRAMEBUFFER_COMPLETE_EXT) + goto error; + return fbo; error: - gl_destroy_framebuffer_object(fbo); - return NULL; + gl_destroy_framebuffer_object (fbo); + return NULL; } /** @@ -1056,20 +1007,20 @@ error: * Destroys the @fbo object. */ void -gl_destroy_framebuffer_object(GLFramebufferObject *fbo) +gl_destroy_framebuffer_object (GLFramebufferObject * fbo) { - GLVTable * const gl_vtable = gl_get_vtable(); + GLVTable *const gl_vtable = gl_get_vtable (); - if (!fbo) - return; + if (!fbo) + return; - gl_unbind_framebuffer_object(fbo); + gl_unbind_framebuffer_object (fbo); - if (fbo->fbo) { - gl_vtable->gl_delete_framebuffers(1, &fbo->fbo); - fbo->fbo = 0; - } - free(fbo); + if (fbo->fbo) { + gl_vtable->gl_delete_framebuffers (1, &fbo->fbo); + fbo->fbo = 0; + } + free (fbo); } /** @@ -1081,36 +1032,33 @@ gl_destroy_framebuffer_object(GLFramebufferObject *fbo) * Return value: %TRUE on success */ gboolean -gl_bind_framebuffer_object(GLFramebufferObject *fbo) +gl_bind_framebuffer_object (GLFramebufferObject * fbo) { - GLVTable * const gl_vtable = gl_get_vtable(); - const guint width = fbo->width; - const guint height = fbo->height; + GLVTable *const gl_vtable = gl_get_vtable (); + const guint width = fbo->width; + const guint height = fbo->height; - const guint attribs = (GL_VIEWPORT_BIT| - GL_CURRENT_BIT| - GL_ENABLE_BIT| - GL_TEXTURE_BIT| - GL_COLOR_BUFFER_BIT); + const guint attribs = (GL_VIEWPORT_BIT | + GL_CURRENT_BIT | GL_ENABLE_BIT | GL_TEXTURE_BIT | GL_COLOR_BUFFER_BIT); - if (fbo->is_bound) - return TRUE; - - gl_get_param(GL_FRAMEBUFFER_BINDING, &fbo->old_fbo); - gl_vtable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo->fbo); - glPushAttrib(attribs); - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadIdentity(); - glViewport(0, 0, width, height); - glTranslatef(-1.0f, -1.0f, 0.0f); - glScalef(2.0f / width, 2.0f / height, 1.0f); - - fbo->is_bound = TRUE; + if (fbo->is_bound) return TRUE; + + gl_get_param (GL_FRAMEBUFFER_BINDING, &fbo->old_fbo); + gl_vtable->gl_bind_framebuffer (GL_FRAMEBUFFER_EXT, fbo->fbo); + glPushAttrib (attribs); + glMatrixMode (GL_PROJECTION); + glPushMatrix (); + glLoadIdentity (); + glMatrixMode (GL_MODELVIEW); + glPushMatrix (); + glLoadIdentity (); + glViewport (0, 0, width, height); + glTranslatef (-1.0f, -1.0f, 0.0f); + glScalef (2.0f / width, 2.0f / height, 1.0f); + + fbo->is_bound = TRUE; + return TRUE; } /** @@ -1122,20 +1070,20 @@ gl_bind_framebuffer_object(GLFramebufferObject *fbo) * Return value: %TRUE on success */ gboolean -gl_unbind_framebuffer_object(GLFramebufferObject *fbo) +gl_unbind_framebuffer_object (GLFramebufferObject * fbo) { - GLVTable * const gl_vtable = gl_get_vtable(); + GLVTable *const gl_vtable = gl_get_vtable (); - if (!fbo->is_bound) - return TRUE; - - glPopAttrib(); - glMatrixMode(GL_PROJECTION); - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - gl_vtable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo->old_fbo); - - fbo->is_bound = FALSE; + if (!fbo->is_bound) return TRUE; + + glPopAttrib (); + glMatrixMode (GL_PROJECTION); + glPopMatrix (); + glMatrixMode (GL_MODELVIEW); + glPopMatrix (); + gl_vtable->gl_bind_framebuffer (GL_FRAMEBUFFER_EXT, fbo->old_fbo); + + fbo->is_bound = FALSE; + return TRUE; } diff --git a/gst-libs/gst/vaapi/gstvaapiutils_glx.h b/gst-libs/gst/vaapi/gstvaapiutils_glx.h index 3df92ae8e4..c89c85f409 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_glx.h +++ b/gst-libs/gst/vaapi/gstvaapiutils_glx.h @@ -34,15 +34,17 @@ #include #if GLX_GLXEXT_VERSION < 18 -typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display *, GLXDrawable, int, const int *); -typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int); +typedef void (*PFNGLXBINDTEXIMAGEEXTPROC) (Display *, GLXDrawable, int, + const int *); +typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC) (Display *, GLXDrawable, int); #endif #if GLX_GLXEXT_VERSION < 27 /* XXX: this is not exactly that version but this is the only means to make sure we have the correct with those signatures */ -typedef GLXPixmap (*PFNGLXCREATEPIXMAPPROC)(Display *, GLXFBConfig, Pixmap, const int *); -typedef void (*PFNGLXDESTROYPIXMAPPROC)(Display *, GLXPixmap); +typedef GLXPixmap (*PFNGLXCREATEPIXMAPPROC) (Display *, GLXFBConfig, Pixmap, + const int *); +typedef void (*PFNGLXDESTROYPIXMAPPROC) (Display *, GLXPixmap); #endif #ifndef GL_FRAMEBUFFER_BINDING @@ -50,163 +52,164 @@ typedef void (*PFNGLXDESTROYPIXMAPPROC)(Display *, GLXPixmap); #endif G_GNUC_INTERNAL -const char * -gl_get_error_string(GLenum error); +const gchar * +gl_get_error_string (GLenum error); G_GNUC_INTERNAL void -gl_purge_errors(void); +gl_purge_errors (void); G_GNUC_INTERNAL gboolean -gl_check_error(void); +gl_check_error (void); G_GNUC_INTERNAL gboolean -gl_get_param(GLenum param, guint *pval); +gl_get_param (GLenum param, guint * pval); G_GNUC_INTERNAL gboolean -gl_get_texture_param(GLenum target, GLenum param, guint *pval); +gl_get_texture_param (GLenum target, GLenum param, guint * pval); G_GNUC_INTERNAL void -gl_set_bgcolor(guint32 color); +gl_set_bgcolor (guint32 color); G_GNUC_INTERNAL void -gl_resize(guint width, guint height); +gl_resize (guint width, guint height); typedef struct _GLContextState GLContextState; -struct _GLContextState { - Display *display; - Window window; - XVisualInfo *visual; - GLXContext context; - guint swapped_buffers : 1; +struct _GLContextState +{ + Display *display; + Window window; + XVisualInfo *visual; + GLXContext context; + guint swapped_buffers:1; }; G_GNUC_INTERNAL GLContextState * -gl_create_context(Display *dpy, int screen, GLContextState *parent); +gl_create_context (Display * dpy, int screen, GLContextState * parent); G_GNUC_INTERNAL void -gl_destroy_context(GLContextState *cs); +gl_destroy_context (GLContextState * cs); G_GNUC_INTERNAL void -gl_get_current_context(GLContextState *cs); +gl_get_current_context (GLContextState * cs); G_GNUC_INTERNAL gboolean -gl_set_current_context(GLContextState *new_cs, GLContextState *old_cs); +gl_set_current_context (GLContextState * new_cs, GLContextState * old_cs); G_GNUC_INTERNAL void -gl_swap_buffers(GLContextState *cs); +gl_swap_buffers (GLContextState * cs); typedef struct _GLTextureState GLTextureState; -struct _GLTextureState { - GLenum target; - GLuint old_texture; - guint was_enabled : 1; - guint was_bound : 1; +struct _GLTextureState +{ + GLenum target; + GLuint old_texture; + guint was_enabled:1; + guint was_bound:1; }; G_GNUC_INTERNAL gboolean -gl_bind_texture(GLTextureState *ts, GLenum target, GLuint texture); +gl_bind_texture (GLTextureState * ts, GLenum target, GLuint texture); G_GNUC_INTERNAL void -gl_unbind_texture(GLTextureState *ts); +gl_unbind_texture (GLTextureState * ts); G_GNUC_INTERNAL GLuint -gl_create_texture(GLenum target, GLenum format, guint width, guint height); +gl_create_texture (GLenum target, GLenum format, guint width, guint height); typedef struct _GLVTable GLVTable; -struct _GLVTable { - PFNGLXCREATEPIXMAPPROC glx_create_pixmap; - PFNGLXDESTROYPIXMAPPROC glx_destroy_pixmap; - PFNGLXBINDTEXIMAGEEXTPROC glx_bind_tex_image; - PFNGLXRELEASETEXIMAGEEXTPROC glx_release_tex_image; - PFNGLGENFRAMEBUFFERSEXTPROC gl_gen_framebuffers; - PFNGLDELETEFRAMEBUFFERSEXTPROC gl_delete_framebuffers; - PFNGLBINDFRAMEBUFFEREXTPROC gl_bind_framebuffer; - PFNGLGENRENDERBUFFERSEXTPROC gl_gen_renderbuffers; - PFNGLDELETERENDERBUFFERSEXTPROC gl_delete_renderbuffers; - PFNGLBINDRENDERBUFFEREXTPROC gl_bind_renderbuffer; - PFNGLRENDERBUFFERSTORAGEEXTPROC gl_renderbuffer_storage; - PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC gl_framebuffer_renderbuffer; - PFNGLFRAMEBUFFERTEXTURE2DEXTPROC gl_framebuffer_texture_2d; - PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC gl_check_framebuffer_status; - guint has_texture_from_pixmap : 1; - guint has_framebuffer_object : 1; +struct _GLVTable +{ + PFNGLXCREATEPIXMAPPROC glx_create_pixmap; + PFNGLXDESTROYPIXMAPPROC glx_destroy_pixmap; + PFNGLXBINDTEXIMAGEEXTPROC glx_bind_tex_image; + PFNGLXRELEASETEXIMAGEEXTPROC glx_release_tex_image; + PFNGLGENFRAMEBUFFERSEXTPROC gl_gen_framebuffers; + PFNGLDELETEFRAMEBUFFERSEXTPROC gl_delete_framebuffers; + PFNGLBINDFRAMEBUFFEREXTPROC gl_bind_framebuffer; + PFNGLGENRENDERBUFFERSEXTPROC gl_gen_renderbuffers; + PFNGLDELETERENDERBUFFERSEXTPROC gl_delete_renderbuffers; + PFNGLBINDRENDERBUFFEREXTPROC gl_bind_renderbuffer; + PFNGLRENDERBUFFERSTORAGEEXTPROC gl_renderbuffer_storage; + PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC gl_framebuffer_renderbuffer; + PFNGLFRAMEBUFFERTEXTURE2DEXTPROC gl_framebuffer_texture_2d; + PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC gl_check_framebuffer_status; + guint has_texture_from_pixmap:1; + guint has_framebuffer_object:1; }; G_GNUC_INTERNAL GLVTable * -gl_get_vtable(void); +gl_get_vtable (void); typedef struct _GLPixmapObject GLPixmapObject; -struct _GLPixmapObject { - Display *dpy; - GLenum target; - GLuint texture; - GLTextureState old_texture; - guint width; - guint height; - Pixmap pixmap; - GLXPixmap glx_pixmap; - guint is_bound : 1; +struct _GLPixmapObject +{ + Display *dpy; + GLenum target; + GLuint texture; + GLTextureState old_texture; + guint width; + guint height; + Pixmap pixmap; + GLXPixmap glx_pixmap; + guint is_bound:1; }; G_GNUC_INTERNAL GLPixmapObject * -gl_create_pixmap_object(Display *dpy, guint width, guint height); +gl_create_pixmap_object (Display * dpy, guint width, guint height); G_GNUC_INTERNAL void -gl_destroy_pixmap_object(GLPixmapObject *pixo); +gl_destroy_pixmap_object (GLPixmapObject * pixo); G_GNUC_INTERNAL gboolean -gl_bind_pixmap_object(GLPixmapObject *pixo); +gl_bind_pixmap_object (GLPixmapObject * pixo); G_GNUC_INTERNAL gboolean -gl_unbind_pixmap_object(GLPixmapObject *pixo); +gl_unbind_pixmap_object (GLPixmapObject * pixo); typedef struct _GLFramebufferObject GLFramebufferObject; -struct _GLFramebufferObject { - guint width; - guint height; - GLuint fbo; - GLuint old_fbo; - guint is_bound : 1; +struct _GLFramebufferObject +{ + guint width; + guint height; + GLuint fbo; + GLuint old_fbo; + guint is_bound:1; }; G_GNUC_INTERNAL GLFramebufferObject * -gl_create_framebuffer_object( - GLenum target, - GLuint texture, - guint width, - guint height -); +gl_create_framebuffer_object (GLenum target, + GLuint texture, guint width, guint height); G_GNUC_INTERNAL void -gl_destroy_framebuffer_object(GLFramebufferObject *fbo); +gl_destroy_framebuffer_object (GLFramebufferObject * fbo); G_GNUC_INTERNAL gboolean -gl_bind_framebuffer_object(GLFramebufferObject *fbo); +gl_bind_framebuffer_object (GLFramebufferObject * fbo); G_GNUC_INTERNAL gboolean -gl_unbind_framebuffer_object(GLFramebufferObject *fbo); +gl_unbind_framebuffer_object (GLFramebufferObject * fbo); #endif /* GST_VAAPI_UTILS_GLX_H */ diff --git a/gst-libs/gst/vaapi/gstvaapiutils_h264.c b/gst-libs/gst/vaapi/gstvaapiutils_h264.c index 118895d910..48a3d12072 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_h264.c +++ b/gst-libs/gst/vaapi/gstvaapiutils_h264.c @@ -276,7 +276,7 @@ guint8 gst_vaapi_utils_h264_get_level_idc (GstVaapiLevelH264 level) { const GstVaapiH264LevelLimits *const llp = - gst_vaapi_utils_h264_get_level_limits (level); + gst_vaapi_utils_h264_get_level_limits (level); return llp ? llp->level_idc : 0; } diff --git a/gst-libs/gst/vaapi/gstvaapiutils_h264.h b/gst-libs/gst/vaapi/gstvaapiutils_h264.h index 785f169dc6..16db4ea7fe 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_h264.h +++ b/gst-libs/gst/vaapi/gstvaapiutils_h264.h @@ -50,8 +50,7 @@ G_BEGIN_DECLS * * The set of all levels for #GstVaapiLevelH264. */ -typedef enum -{ +typedef enum { GST_VAAPI_LEVEL_H264_L1 = 1, GST_VAAPI_LEVEL_H264_L1b, GST_VAAPI_LEVEL_H264_L1_1, diff --git a/gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h b/gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h index 85eb184c9e..0ca552a807 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h +++ b/gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h @@ -40,8 +40,7 @@ G_BEGIN_DECLS * * The data structure that describes the limits of an H.264 level. */ -typedef struct -{ +typedef struct { GstVaapiLevelH264 level; guint8 level_idc; guint32 MaxMBPS; @@ -79,7 +78,7 @@ gst_vaapi_utils_h264_get_level_limits (GstVaapiLevelH264 level); /* Returns the Table A-1 specification */ G_GNUC_INTERNAL const GstVaapiH264LevelLimits * -gst_vaapi_utils_h264_get_level_limits_table (guint *out_length_ptr); +gst_vaapi_utils_h264_get_level_limits_table (guint * out_length_ptr); /* Returns GstVaapiChromaType from H.264 chroma_format_idc value */ G_GNUC_INTERNAL diff --git a/gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h b/gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h index 76c3bd8c7f..4820a4703e 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h +++ b/gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h @@ -38,8 +38,7 @@ G_BEGIN_DECLS * * The set of all levels for #GstVaapiLevelMPEG2. */ -typedef enum -{ +typedef enum { GST_VAAPI_LEVEL_MPEG2_LOW = 1, GST_VAAPI_LEVEL_MPEG2_MAIN, GST_VAAPI_LEVEL_MPEG2_HIGH_1440, diff --git a/gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h b/gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h index 3f96eca6ac..e6507faa4b 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h +++ b/gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h @@ -41,8 +41,7 @@ G_BEGIN_DECLS * * The data structure that describes the limits of an MPEG-2 level. */ -typedef struct -{ +typedef struct { GstVaapiLevelMPEG2 level; guint8 level_idc; guint16 horizontal_size_value; diff --git a/gst-libs/gst/vaapi/gstvaapiutils_x11.c b/gst-libs/gst/vaapi/gstvaapiutils_x11.c index f984fafd13..0b22aaef43 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_x11.c +++ b/gst-libs/gst/vaapi/gstvaapiutils_x11.c @@ -29,35 +29,39 @@ // X error trap static int x11_error_code = 0; -static int (*old_error_handler)(Display *, XErrorEvent *); +static int (*old_error_handler) (Display *, XErrorEvent *); -static int error_handler(Display *dpy, XErrorEvent *error) +static int +error_handler (Display * dpy, XErrorEvent * error) { - x11_error_code = error->error_code; - return 0; + x11_error_code = error->error_code; + return 0; } -void x11_trap_errors(void) +void +x11_trap_errors (void) { - x11_error_code = 0; - old_error_handler = XSetErrorHandler(error_handler); + x11_error_code = 0; + old_error_handler = XSetErrorHandler (error_handler); } -int x11_untrap_errors(void) +int +x11_untrap_errors (void) { - XSetErrorHandler(old_error_handler); - return x11_error_code; + XSetErrorHandler (old_error_handler); + return x11_error_code; } // X window management -static const int x11_event_mask = (KeyPressMask | - KeyReleaseMask | - ButtonPressMask | - ButtonReleaseMask | - PointerMotionMask | - EnterWindowMask | - ExposureMask | - StructureNotifyMask); +static const int x11_event_mask = + (KeyPressMask | + KeyReleaseMask | + ButtonPressMask | + ButtonReleaseMask | + PointerMotionMask | + EnterWindowMask | + ExposureMask | + StructureNotifyMask); /** * x11_create_window: @@ -75,84 +79,68 @@ static const int x11_event_mask = (KeyPressMask | * Return value: the newly created X #Window. */ Window -x11_create_window(Display *dpy, guint w, guint h, Visual *vis, Colormap cmap) +x11_create_window (Display * dpy, guint w, guint h, Visual * vis, Colormap cmap) { - Window rootwin, win; - int screen, depth; - XSetWindowAttributes xswa; - unsigned long xswa_mask; - XWindowAttributes wattr; - unsigned long black_pixel; + Window rootwin, win; + int screen, depth; + XSetWindowAttributes xswa; + unsigned long xswa_mask; + XWindowAttributes wattr; + unsigned long black_pixel; - screen = DefaultScreen(dpy); - rootwin = RootWindow(dpy, screen); - black_pixel = BlackPixel(dpy, screen); + screen = DefaultScreen (dpy); + rootwin = RootWindow (dpy, screen); + black_pixel = BlackPixel (dpy, screen); - if (!vis) - vis = DefaultVisual(dpy, screen); + if (!vis) + vis = DefaultVisual (dpy, screen); - XGetWindowAttributes(dpy, rootwin, &wattr); - depth = wattr.depth; - if (depth != 15 && depth != 16 && depth != 24 && depth != 32) - depth = 24; + XGetWindowAttributes (dpy, rootwin, &wattr); + depth = wattr.depth; + if (depth != 15 && depth != 16 && depth != 24 && depth != 32) + depth = 24; - xswa_mask = CWBorderPixel | CWBackPixel; - xswa.border_pixel = black_pixel; - xswa.background_pixel = black_pixel; + xswa_mask = CWBorderPixel | CWBackPixel; + xswa.border_pixel = black_pixel; + xswa.background_pixel = black_pixel; - if (cmap) { - xswa_mask |= CWColormap; - xswa.colormap = cmap; - } + if (cmap) { + xswa_mask |= CWColormap; + xswa.colormap = cmap; + } - win = XCreateWindow( - dpy, - rootwin, - 0, 0, w, h, - 0, - depth, - InputOutput, - vis, - xswa_mask, &xswa - ); - if (!win) - return None; + win = XCreateWindow (dpy, rootwin, 0, 0, w, h, 0, depth, InputOutput, vis, + xswa_mask, &xswa); + if (!win) + return None; - XSelectInput(dpy, win, x11_event_mask); - return win; + XSelectInput (dpy, win, x11_event_mask); + return win; } gboolean -x11_get_geometry( - Display *dpy, - Drawable drawable, - gint *px, - gint *py, - guint *pwidth, - guint *pheight, - guint *pdepth -) +x11_get_geometry (Display * dpy, Drawable drawable, gint * px, gint * py, + guint * pwidth, guint * pheight, guint * pdepth) { - Window rootwin; - int x, y; - guint width, height, border_width, depth; + Window rootwin; + int x, y; + guint width, height, border_width, depth; - x11_trap_errors(); - XGetGeometry( - dpy, - drawable, - &rootwin, - &x, &y, &width, &height, - &border_width, - &depth - ); - if (x11_untrap_errors()) - return FALSE; + x11_trap_errors (); + XGetGeometry (dpy, drawable, &rootwin, &x, &y, &width, &height, + &border_width, &depth); + if (x11_untrap_errors ()) + return FALSE; - if (px) *px = x; - if (py) *py = y; - if (pwidth) *pwidth = width; - if (pheight) *pheight = height; - if (pdepth) *pdepth = depth; - return TRUE; + if (px) + *px = x; + if (py) + *py = y; + if (pwidth) + *pwidth = width; + if (pheight) + *pheight = height; + if (pdepth) + *pdepth = depth; + return TRUE; } diff --git a/gst-libs/gst/vaapi/gstvaapiutils_x11.h b/gst-libs/gst/vaapi/gstvaapiutils_x11.h index f6faf257fc..ebc7380370 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_x11.h +++ b/gst-libs/gst/vaapi/gstvaapiutils_x11.h @@ -32,26 +32,20 @@ G_GNUC_INTERNAL void -x11_trap_errors(void); +x11_trap_errors (void); G_GNUC_INTERNAL int -x11_untrap_errors(void); +x11_untrap_errors (void); G_GNUC_INTERNAL Window -x11_create_window(Display *dpy, guint w, guint h, Visual *vis, Colormap cmap); +x11_create_window (Display * dpy, guint w, guint h, Visual * vis, + Colormap cmap); G_GNUC_INTERNAL gboolean -x11_get_geometry( - Display *dpy, - Drawable drawable, - gint *px, - gint *py, - guint *pwidth, - guint *pheight, - guint *pdepth -); +x11_get_geometry (Display * dpy, Drawable drawable, gint * px, gint * py, + guint * pwidth, guint * pheight, guint * pdepth); #endif /* GST_VAAPI_UTILS_X11_H */