diff options
author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2009-08-12 10:28:32 +0100 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2009-08-12 16:51:21 +0100 |
commit | 5bc1290431fcab274219bb8055a4b35ea7b335cc (patch) | |
tree | 5856ffbfc075251ec90e19ab10ff2e08c8719ae2 | |
parent | 7c7b82e7141b83e987be2142e7334d21407529fe (diff) | |
download | gst-plugins-bad-5bc1290431fcab274219bb8055a4b35ea7b335cc.tar.gz gst-plugins-bad-5bc1290431fcab274219bb8055a4b35ea7b335cc.tar.bz2 gst-plugins-bad-5bc1290431fcab274219bb8055a4b35ea7b335cc.zip |
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.
-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@ |