rendered paste bodyIndex: bacon-video-widget-gst-0.10.c
===================================================================
--- bacon-video-widget-gst-0.10.c (revision 5073)
+++ bacon-video-widget-gst-0.10.c (working copy)
@@ -3900,9 +3900,9 @@
switch (type) {
case MEDIA_TYPE_VCD:
+ case MEDIA_TYPE_DVD:
res = TRUE;
break;
- case MEDIA_TYPE_DVD:
case MEDIA_TYPE_CDDA:
default:
res = FALSE;
@@ -3937,13 +3937,46 @@
g_free (uri[0]);
break;
}
-/*
+
case MEDIA_TYPE_DVD: {
+ GstFormat fmt;
+ GstElement *element;
+ gint64 num_titles, i;
+
+ fmt = gst_format_get_by_nick ("title");
+ element = gst_element_factory_make ("dvdreadsrc", "test_dvdsrc");
+ g_object_set (element, "device", device, NULL);
+ if (gst_element_set_state (element, GST_STATE_READY) != GST_STATE_CHANGE_SUCCESS) {
+ g_message ("Couldn't set state");
+// g_object_unref (element);
+ return NULL;
+ }
+ if (gst_element_query_duration (element, &fmt, &num_titles) == FALSE) {
+ g_message ("Couldn't query duration");
+// g_object_unref (element);
+ return NULL;
+ }
+
+ fmt = GST_FORMAT_TIME;
+ for (i = 0 ; i < num_titles; i++) {
+ gint64 len;
+ g_object_set (element, "title", i, NULL);
+ if (gst_element_query_duration (element, &fmt, &len) == FALSE) {
+ g_message ("Couldnt' query duration for title %d", i);
+ break;
+ }
+ g_message ("URI: dvd://%d (time: %lld min)", i, len / 1000000000 / 60);
+ }
+// g_object_unref (element);
+ mrls = NULL;
+#if 0
+ gst_element_query_duration (bvw->priv->play, &fmt, &len)
gchar *uri[] = { "dvd://", NULL };
mrls = g_strdupv (uri);
+#endif
break;
}
-*/
+
default:
mrls = NULL;
break;