totem r5110 - in trunk: . src/backend



Author: tpm
Date: Tue Feb 12 11:44:41 2008
New Revision: 5110
URL: http://svn.gnome.org/viewvc/totem?rev=5110&view=rev

Log:
	* src/backend/bacon-video-widget-gst-0.10.c:
	  (bacon_video_widget_can_play):
	  Test for all elements required for DVB, not just dvdbasebin.
	  Also, no need to load the plugin and create the element if all
	  we want to know is if it's available.



Modified:
   trunk/ChangeLog
   trunk/src/backend/bacon-video-widget-gst-0.10.c

Modified: trunk/src/backend/bacon-video-widget-gst-0.10.c
==============================================================================
--- trunk/src/backend/bacon-video-widget-gst-0.10.c	(original)
+++ trunk/src/backend/bacon-video-widget-gst-0.10.c	Tue Feb 12 11:44:41 2008
@@ -3922,31 +3922,31 @@
       res = BVW_CAN_PLAY_SUCCESS;
       break;
     case MEDIA_TYPE_DVD: {
-      GstElement *element;
-
-      element = gst_element_factory_make ("dvdreadsrc", "test_dvdsrc");
-      if (element == NULL) {
+      if (!gst_default_registry_check_feature_version ("dvdreadsrc", 0, 10, 0)) {
+        GST_DEBUG ("Missing dvdreadsrc");
         res = BVW_CAN_PLAY_MISSING_PLUGINS;
       } else {
-        g_object_unref (element);
         res = BVW_CAN_PLAY_SUCCESS;
       }
       break;
     }
     case MEDIA_TYPE_DVB: {
-      GstElement *element;
       gchar *filename;
 
-      element = gst_element_factory_make ("dvbbasebin", "test_dvb");
-      if (element == NULL)
-        return BVW_CAN_PLAY_MISSING_PLUGINS;
-
-      g_object_unref (element);
+      /* FIXME: change to 0,10,6 once gst-plugins-bad 0.10.6 has been released */
+      if (!gst_default_registry_check_feature_version ("dvbbasebin", 0, 10, 0) ||
+          !gst_default_registry_check_feature_version ("mpegtsparse", 0, 10, 0) ||
+          !gst_default_registry_check_feature_version ("dvbsrc", 0, 10, 0)) {
+        GST_DEBUG ("Missing one or all of: dvbsrc, dvbbasebin, mpegtsparse");
+        res = BVW_CAN_PLAY_MISSING_PLUGINS;
+        break;
+      }
 
       filename = bacon_video_widget_get_channels_file ();
       if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
         res = BVW_CAN_PLAY_SUCCESS;
       } else {
+        GST_DEBUG ("no channels file '%s'", filename);
         res = BVW_CAN_PLAY_MISSING_CHANNELS;
       }
       g_free(filename);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]