libs: re-indent all source code related to VA utilities.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 23 Jan 2014 16:41:02 +0000 (17:41 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 23 Jan 2014 17:51:59 +0000 (18:51 +0100)
gst-libs/gst/vaapi/gstvaapiutils.c
gst-libs/gst/vaapi/gstvaapiutils.h
gst-libs/gst/vaapi/gstvaapiutils_glx.c
gst-libs/gst/vaapi/gstvaapiutils_glx.h
gst-libs/gst/vaapi/gstvaapiutils_h264.c
gst-libs/gst/vaapi/gstvaapiutils_h264.h
gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h
gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h
gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h
gst-libs/gst/vaapi/gstvaapiutils_x11.c
gst-libs/gst/vaapi/gstvaapiutils_x11.h

index a74da40..10bc606 100644 (file)
 
 /* 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 "<unknown>";
+    default:
+      break;
+  }
+  return "<unknown>";
 }
 
 /* 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 "<unknown>";
+    default:
+      break;
+  }
+  return "<unknown>";
 }
 
 /* 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 "<unknown>";
+    default:
+      break;
+  }
+  return "<unknown>";
 }
 
-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 "<unknown>";
+  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 "<unknown>";
 }
 
 /**
@@ -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;
 }
index 9fcab47..fb5b1e4 100644 (file)
 /** 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 */
index c47c9aa..b21cb6c 100644 (file)
@@ -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 <string.h>
 #include <math.h>
 
 /** 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;
-
-    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);
-    }
+  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);
+  }
+  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 "<unknown>";
+    default:
+      break;
+  };
+  return "<unknown>";
 }
 
 /**
@@ -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;
-
-    while ((error = glGetError()) != GL_NO_ERROR) {
-        GST_DEBUG("glError: %s caught", gl_get_error_string(error));
-        has_errors = TRUE;
-    }
-    return has_errors;
+  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;
 }
 
 /**
@@ -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;
-
-    /* Source (Q 9.085):
-       <http://www.opengl.org/resources/faq/technical/transformations.htm> */
-    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);
+  GLdouble left, right, top, bottom;
+
+  /* Source (Q 9.085):
+     <http://www.opengl.org/resources/faq/technical/transformations.htm> */
+  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;
-
-    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;
-
-    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;
-        }
-        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;
+  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
+  };
+
+  cs = malloc (sizeof (*cs));
+  if (!cs)
+    goto error;
+
+  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;
     }
-
-    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;
+    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;
 
 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->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)
+    return;
+
+  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);
     }
-    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 (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 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);
 }
 
 /**
@@ -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;
-
-    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;
-    }
-
-    gl_purge_errors();
-    glBindTexture(target, texture);
-    if (gl_check_error())
-        return FALSE;
-    return TRUE;
+  GLenum binding;
+
+  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;
+  }
+
+  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);
-
-    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;
+      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;
 }
 
 /**
@@ -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;
-
-    /* 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;
+  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;
+
+  /* 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;
-
-    if (g_once_init_enter(&gl_vtable_init)) {
-        gl_vtable = gl_init_vtable();
-        g_once_init_leave(&gl_vtable_init, TRUE);
-    }
-    return gl_vtable;
+  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;
 }
 
 /**
@@ -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;
-
-    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,
-    };
-
-    if (!gl_vtable)
-        return NULL;
-
-    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;
-    }
+  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 pixmap_attrs[10] = {
+    GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT,
+    GLX_MIPMAP_TEXTURE_EXT, GL_FALSE,
+    GL_NONE,
+  };
+
+  if (!gl_vtable)
+    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;
-
-    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;
-
-    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)
+  screen = DefaultScreen (dpy);
+  rootwin = RootWindow (dpy, screen);
+
+  /* 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->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;
+
+  /* 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;
+
+  /* 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;
-
-    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;
+  *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;
+
+  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();
-
-    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;
-    }
+  GLVTable *const gl_vtable = gl_get_vtable ();
 
-    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();
-
-    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);
+  GLVTable *const gl_vtable = gl_get_vtable ();
 
-    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;
-
-    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;
-
-    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;
-
-    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;
+  GLVTable *const gl_vtable = gl_get_vtable ();
+  GLFramebufferObject *fbo;
+  GLenum status;
 
-error:
-    gl_destroy_framebuffer_object(fbo);
+  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;
+
+  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;
+
+  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;
+
+error:
+  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;
-
-    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;
+  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);
+
+  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;
+  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);
+  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;
+  fbo->is_bound = FALSE;
+  return TRUE;
 }
index 3df92ae..c89c85f 100644 (file)
 #include <glib.h>
 
 #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 <GL/glx.h> 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 */
index 118895d..48a3d12 100644 (file)
@@ -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;
 }
index 785f169..16db4ea 100644 (file)
@@ -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,
index 85eb184..0ca552a 100644 (file)
@@ -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
index 76c3bd8..4820a47 100644 (file)
@@ -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,
index 3f96eca..e6507fa 100644 (file)
@@ -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;
index f984faf..0b22aae 100644 (file)
 
 // 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;
-
-    screen      = DefaultScreen(dpy);
-    rootwin     = RootWindow(dpy, screen);
-    black_pixel = BlackPixel(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;
-
-    xswa_mask             = CWBorderPixel | CWBackPixel;
-    xswa.border_pixel     = black_pixel;
-    xswa.background_pixel = black_pixel;
-
-    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;
-
-    XSelectInput(dpy, win, x11_event_mask);
-    return win;
+  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);
+
+  if (!vis)
+    vis = DefaultVisual (dpy, screen);
+
+  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;
+
+  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;
+
+  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;
-
-    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;
+  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;
+
+  if (px)
+    *px = x;
+  if (py)
+    *py = y;
+  if (pwidth)
+    *pwidth = width;
+  if (pheight)
+    *pheight = height;
+  if (pdepth)
+    *pdepth = depth;
+  return TRUE;
 }
index f6faf25..ebc7380 100644 (file)
 
 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 */