#define DEBUG 1
#include "vaapi_debug.h"
+GST_DEBUG_CATEGORY(gst_debug_vaapi);
+
G_DEFINE_TYPE(GstVaapiDisplay, gst_vaapi_display, G_TYPE_OBJECT);
#define GST_VAAPI_DISPLAY_GET_PRIVATE(obj) \
status = vaInitialize(priv->display, &major_version, &minor_version);
if (!vaapi_check_status(status, "vaInitialize()"))
return FALSE;
- D(bug("VA-API version %d.%d\n", major_version, minor_version));
+ GST_DEBUG("VA-API version %d.%d", major_version, minor_version);
/* VA profiles */
priv->num_profiles = vaMaxNumProfiles(priv->display);
if (!vaapi_check_status(status, "vaQueryConfigProfiles()"))
return FALSE;
- D(bug("%d profiles\n", priv->num_profiles));
+ GST_DEBUG("%d profiles", priv->num_profiles);
for (i = 0; i < priv->num_profiles; i++)
- D(bug(" %s\n", string_of_VAProfile(priv->profiles[i])));
+ GST_DEBUG(" %s", string_of_VAProfile(priv->profiles[i]));
/* VA image formats */
priv->num_image_formats = vaMaxNumImageFormats(priv->display);
if (!vaapi_check_status(status, "vaQueryImageFormats()"))
return FALSE;
- D(bug("%d image formats\n", priv->num_image_formats));
+ GST_DEBUG("%d image formats", priv->num_image_formats);
for (i = 0; i < priv->num_image_formats; i++)
- D(bug(" %s\n", string_of_FOURCC(priv->image_formats[i].fourcc)));
+ GST_DEBUG(" %s", string_of_FOURCC(priv->image_formats[i].fourcc));
/* VA subpicture formats */
priv->num_subpicture_formats = vaMaxNumSubpictureFormats(priv->display);
if (!vaapi_check_status(status, "vaQuerySubpictureFormats()"))
return FALSE;
- D(bug("%d subpicture formats\n", priv->num_subpicture_formats));
+ GST_DEBUG("%d subpicture formats", priv->num_subpicture_formats);
for (i = 0; i < priv->num_subpicture_formats; i++)
- D(bug(" %s\n", string_of_FOURCC(priv->subpicture_formats[i].fourcc)));
+ GST_DEBUG(" %s", string_of_FOURCC(priv->subpicture_formats[i].fourcc));
return TRUE;
}
{
GObjectClass * const object_class = G_OBJECT_CLASS(klass);
+ GST_DEBUG_CATEGORY_INIT(gst_debug_vaapi, "vaapi", 0, "VA-API helper");
+
g_type_class_add_private(klass, sizeof(GstVaapiDisplayPrivate));
object_class->finalize = gst_vaapi_display_finalize;
{
GstVaapiDisplayPrivate * const priv = display->priv;
- g_return_if_fail(GST_VAAPI_IS_DISPLAY(display));
-
if (priv->display)
gst_vaapi_display_destroy(display);
if (va_display) {
priv->display = va_display;
if (!gst_vaapi_display_create(display)) {
- printf("FAIL\n");
gst_vaapi_display_destroy(display);
return;
}
GstVaapiImage * const image = GST_VAAPI_IMAGE(object);
GObjectClass *parent_class;
- D(bug("gst_vaapi_image_constructed()\n"));
-
gst_vaapi_image_create(image);
parent_class = G_OBJECT_CLASS(gst_vaapi_image_parent_class);
{
GstVaapiImagePrivate *priv = GST_VAAPI_IMAGE_GET_PRIVATE(image);
- D(bug("gst_vaapi_image_init()\n"));
-
image->priv = priv;
priv->display = NULL;
priv->image_data = NULL;
GstVaapiImageFormat format
)
{
- D(bug("gst_vaapi_image_new(): size %ux%u, format 0x%x\n",
- width, height, format));
+ g_return_val_if_fail(GST_VAAPI_IS_DISPLAY(display), NULL);
+ g_return_val_if_fail(width > 0, NULL);
+ g_return_val_if_fail(height > 0, NULL);
+
+ GST_DEBUG("size %ux%u, format 0x%x", width, height, format);
return g_object_new(GST_VAAPI_TYPE_IMAGE,
"display", display,
{
GstVaapiSubpicturePrivate *priv = GST_VAAPI_SUBPICTURE_GET_PRIVATE(subpicture);
- D(bug("gst_vaapi_subpicture_init()\n"));
-
subpicture->priv = priv;
priv->subpicture_id = VA_INVALID_ID;
priv->image = NULL;
GstVaapiSubpicture *
gst_vaapi_subpicture_new(GstVaapiImage *image)
{
- D(bug("gst_vaapi_subpicture_new(): image 0x%08x\n",
- gst_vaapi_image_get_id(image)));
+ g_return_val_if_fail(GST_VAAPI_IS_IMAGE(image), NULL);
+
+ GST_DEBUG("image 0x%08x", gst_vaapi_image_get_id(image));
return g_object_new(GST_VAAPI_TYPE_SUBPICTURE,
"image", image,
{
GstVaapiSurfacePrivate *priv = GST_VAAPI_SURFACE_GET_PRIVATE(surface);
- D(bug("gst_vaapi_surface_init()\n"));
-
surface->priv = priv;
priv->display = NULL;
priv->surface_id = VA_INVALID_SURFACE;
guint height,
guint format)
{
- D(bug("gst_vaapi_surface_new(): size %ux%u, format 0x%x\n",
- width, height, format));
+ GST_DEBUG("size %ux%u, format 0x%x", width, height, format);
return g_object_new(GST_VAAPI_TYPE_SURFACE,
"display", display,