summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/vdpau/gstvdp.c8
-rw-r--r--sys/vdpau/gstvdpdevice.c11
-rw-r--r--tests/check/Makefile.am2
3 files changed, 15 insertions, 6 deletions
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);
}
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 3a2d92ff..ac37ed7e 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -13,7 +13,7 @@ TESTS_ENVIRONMENT = \
$(REGISTRY_ENVIRONMENT) \
GST_PLUGIN_SYSTEM_PATH= \
GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/../gst-ffmpeg/ext/ffmpeg:$(top_builddir)/../gst-plugins-good/gst:$(top_builddir)/../gst-plugins-good/sys:$(top_builddir)/../gst-plugins-good/ext:$(top_builddir)/../gst-plugins-ugly/gst:$(top_builddir)/../gst-plugins-ugly/sys:$(top_builddir)/../gst-plugins-ugly/ext:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \
- STATE_IGNORE_ELEMENTS="alsaspdifsink apexsink camerabin cdaudio dc1394src dccpclientsrc dccpclientsink dccpserversrc dccpserversink dvbsrc dvbbasebin dfbvideosink festival nassink rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc"
+ STATE_IGNORE_ELEMENTS="alsaspdifsink apexsink camerabin cdaudio dc1394src dccpclientsrc dccpclientsink dccpserversrc dccpserversink dvbsrc dvbbasebin dfbvideosink festival nassink rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv vdpaumpegdec"
plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@