[gst-devel] mpeg2parse3

vishnu at pobox.com vishnu at pobox.com
Fri Sep 14 15:44:01 CEST 2001


Here are the changes for mpeg2parse3.c which i needed to build with
gtk-1.3.x (and without gnome).  Enjoy!

-- 
Victory to the Divine Mother!!
  http://sahajayoga.org
-------------- next part --------------
--- /home/joshua/gst/gstreamer/test/mpeg2parse3.c	Fri Sep 14 15:42:15 2001
+++ mpeg2parse3.c	Fri Sep 14 15:34:54 2001
@@ -1,4 +1,6 @@
-#include <gnome.h>
+#include <string.h>
+#include <stdlib.h>
+#include <gtk/gtk.h>
 #include <gst/gst.h>
 
 GstPipeline *pipeline;
@@ -29,6 +31,8 @@ void mpeg2parse_newpad(GstElement *parse
     gst_bin_add(GST_BIN(pipeline),a_thread);
     gst_element_set_state(a_thread,GST_STATE_PLAYING);
   }
+  else
+    g_warning ("new-pad %s", gst_pad_get_name(pad));
 }
 
 void mpeg2parse_have_size(GstElement *videosink,gint width,gint height) {
@@ -44,26 +48,26 @@ int main(int argc,char *argv[]) {
   g_print("have %d args\n",argc);
 
   gst_init(&argc,&argv);
-  gnome_init("MPEG2 Video player","0.0.1",argc,argv);
+  gtk_init (&argc, &argv);
 
   // ***** construct the main pipeline *****
   pipeline = GST_PIPELINE(gst_pipeline_new("pipeline"));
   g_return_val_if_fail(pipeline != NULL, -1);
 
-  if (strstr(argv[1],"video_ts")) {
+  char *filename = argv[1];
+  if (!filename)
+    filename = "/opt/vast/cache/gwh.vob";
+
+  if (strstr(filename, "video_ts")) {
     src = gst_elementfactory_make("dvdsrc","src");
     g_print("using DVD source\n");
   } else {
-    src = gst_elementfactory_make("disksrc","src");
+    src = gst_elementfactory_make("filesrc","src");
   }
 
   g_return_val_if_fail(src != NULL, -1);
-  gtk_object_set(GTK_OBJECT(src),"location",argv[1],NULL);
-  if (argc >= 3) {
-    gtk_object_set(GTK_OBJECT(src),"bytesperread",atoi(argv[2]),NULL);
-    g_print("block size is %d\n",atoi(argv[2]));
-  }
-  g_print("should be using file '%s'\n",argv[1]);
+  g_object_set(G_OBJECT(src),"location",filename,NULL);
+  g_print("should be using file '%s'\n",filename);
 
   parse = gst_elementfactory_make("mpeg2parse","parse");
   //parse = gst_elementfactory_make("mpeg1parse","parse");
@@ -123,21 +127,23 @@ int main(int argc,char *argv[]) {
 
 
   // ***** construct the GUI *****
-  appwindow = gnome_app_new("MPEG player","MPEG player");
+  appwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 
   gtk_socket = gtk_socket_new ();
   gtk_widget_show (gtk_socket);
 
-  gnome_app_set_contents(GNOME_APP(appwindow),
-      	        GTK_WIDGET(gtk_socket));
+  gtk_container_add (GTK_CONTAINER (appwindow), gtk_socket);
 
   gtk_widget_realize (gtk_socket);
   gtk_socket_steal (GTK_SOCKET (gtk_socket), 
-		  gst_util_get_int_arg (GTK_OBJECT(show), "xid"));
+		    gst_util_get_int_arg (G_OBJECT(show), "xid"));
 
-  gtk_signal_connect(GTK_OBJECT(parse),"new_pad",mpeg2parse_newpad, pipeline);
-  gtk_signal_connect(GTK_OBJECT(src),"eos",GTK_SIGNAL_FUNC(eof),NULL);
-  gtk_signal_connect(GTK_OBJECT(show),"have_size",mpeg2parse_have_size, pipeline);
+  g_signal_connect (G_OBJECT(parse),"new_pad",
+		    G_CALLBACK (mpeg2parse_newpad), pipeline);
+  g_signal_connect (G_OBJECT(src),"eos",
+		    G_CALLBACK (eof), NULL);
+  g_signal_connect (G_OBJECT(show),"have_size",
+		    G_CALLBACK (mpeg2parse_have_size), NULL);
 
   g_print("setting to PLAYING state\n");
   gst_element_set_state(GST_ELEMENT(pipeline),GST_STATE_PLAYING);


More information about the gstreamer-devel mailing list