From 5bc1290431fcab274219bb8055a4b35ea7b335cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 12 Aug 2009 10:28:32 +0100 Subject: vdpau: blacklist for generic states test, and demote to GST_RANK_NONE These elements are not fit for autoplugging, so demoting to RANK_NONE. Also blacklisting for generic states test, since fixing these elements up to do some minimal error handling seems to be a bit more work. Partially fixes #591538. --- sys/vdpau/gstvdp.c | 8 +++++--- sys/vdpau/gstvdpdevice.c | 11 +++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'sys') diff --git a/sys/vdpau/gstvdp.c b/sys/vdpau/gstvdp.c index 5c524968..0cafbd68 100644 --- a/sys/vdpau/gstvdp.c +++ b/sys/vdpau/gstvdp.c @@ -12,12 +12,14 @@ static gboolean vdpau_init (GstPlugin * vdpau_plugin) { + /* Before giving these elements a rank again, make sure they pass at + * least the generic/states test when there's no device available */ gst_element_register (vdpau_plugin, "vdpaumpegdec", - GST_RANK_PRIMARY - 1, GST_TYPE_VDP_MPEG_DEC); + GST_RANK_NONE, GST_TYPE_VDP_MPEG_DEC); gst_element_register (vdpau_plugin, "vdpauvideoyuv", - GST_RANK_PRIMARY, GST_TYPE_VDP_VIDEO_YUV); + GST_RANK_NONE, GST_TYPE_VDP_VIDEO_YUV); gst_element_register (vdpau_plugin, "vdpauyuvvideo", - GST_RANK_PRIMARY, GST_TYPE_VDP_YUV_VIDEO); + GST_RANK_NONE, GST_TYPE_VDP_YUV_VIDEO); return TRUE; } diff --git a/sys/vdpau/gstvdpdevice.c b/sys/vdpau/gstvdpdevice.c index 4ed1b177..f4eb821d 100644 --- a/sys/vdpau/gstvdpdevice.c +++ b/sys/vdpau/gstvdpdevice.c @@ -49,9 +49,16 @@ gst_vdp_device_finalize (GObject * object) { GstVdpDevice *device = (GstVdpDevice *) object; - device->vdp_device_destroy (device->device); - XCloseDisplay (device->display); + if (device->device != VDP_INVALID_HANDLE) { + device->vdp_device_destroy (device->device); + device->device = VDP_INVALID_HANDLE; + } + if (device->display) { + XCloseDisplay (device->display); + device->display = NULL; + } g_free (device->display_name); + device->display_name = NULL; G_OBJECT_CLASS (gst_vdp_device_parent_class)->finalize (object); } -- cgit v1.2.1