diff options
-rw-r--r-- | sys/vdpau/gstvdp.c | 8 | ||||
-rw-r--r-- | sys/vdpau/gstvdpdevice.c | 11 | ||||
-rw-r--r-- | tests/check/Makefile.am | 2 |
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@ |