summaryrefslogtreecommitdiffstats
path: root/examples/seeking
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-06-16 21:54:38 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-06-16 21:54:38 +0000
commitde659d38cd1d688f8c0d09b2246e41ea38992084 (patch)
treec3d420eda8ac4eab5efda6ab06af7ffe58dbfa5b /examples/seeking
parentd04b373ee5514c2d106cd381818ce365ebf7aee7 (diff)
downloadgst-plugins-bad-de659d38cd1d688f8c0d09b2246e41ea38992084.tar.gz
gst-plugins-bad-de659d38cd1d688f8c0d09b2246e41ea38992084.tar.bz2
gst-plugins-bad-de659d38cd1d688f8c0d09b2246e41ea38992084.zip
Add DV seeking example
Original commit message from CVS: Add DV seeking example
Diffstat (limited to 'examples/seeking')
-rw-r--r--examples/seeking/Makefile.am2
-rw-r--r--examples/seeking/seek.c41
-rw-r--r--examples/seeking/spider_seek.c2
3 files changed, 42 insertions, 3 deletions
diff --git a/examples/seeking/Makefile.am b/examples/seeking/Makefile.am
index ad041480..30003e06 100644
--- a/examples/seeking/Makefile.am
+++ b/examples/seeking/Makefile.am
@@ -3,5 +3,5 @@ examples = seek spider_seek
noinst_PROGRAMS = $(examples)
# we have nothing but apps here, we can do this safely
-LIBS = $(GST_LIBS) $(GTK_LIBS)
+LIBS = $(GST_LIBS) $(GTK_LIBS) -lfreetype
CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS)
diff --git a/examples/seeking/seek.c b/examples/seeking/seek.c
index 5aa3ab04..12be23f7 100644
--- a/examples/seeking/seek.c
+++ b/examples/seeking/seek.c
@@ -90,6 +90,43 @@ make_mod_pipeline (const gchar *location)
}
static GstElement*
+make_dv_pipeline (const gchar *location)
+{
+ GstElement *pipeline;
+ GstElement *src, *decoder, *audiosink, *videosink;
+ GstPad *seekable;
+
+ pipeline = gst_pipeline_new ("app");
+
+ src = gst_element_factory_make_or_warn (SOURCE, "src");
+ decoder = gst_element_factory_make_or_warn ("dvdec", "decoder");
+ videosink = gst_element_factory_make_or_warn ("xvideosink", "v_sink");
+ audiosink = gst_element_factory_make_or_warn ("osssink", "a_sink");
+ //g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
+
+ g_object_set (G_OBJECT (src), "location", location, NULL);
+
+ gst_bin_add (GST_BIN (pipeline), src);
+ gst_bin_add (GST_BIN (pipeline), decoder);
+ gst_bin_add (GST_BIN (pipeline), audiosink);
+ gst_bin_add (GST_BIN (pipeline), videosink);
+
+ gst_element_connect (src, decoder);
+ gst_element_connect (decoder, audiosink);
+ gst_element_connect (decoder, videosink);
+
+ seekable = gst_element_get_pad (decoder, "video");
+ seekable_pads = g_list_prepend (seekable_pads, seekable);
+ rate_pads = g_list_prepend (rate_pads, seekable);
+ seekable = gst_element_get_pad (decoder, "audio");
+ seekable_pads = g_list_prepend (seekable_pads, seekable);
+ rate_pads = g_list_prepend (rate_pads, seekable);
+ rate_pads = g_list_prepend (rate_pads, gst_element_get_pad (decoder, "sink"));
+
+ return pipeline;
+}
+
+static GstElement*
make_wav_pipeline (const gchar *location)
{
GstElement *pipeline;
@@ -687,7 +724,7 @@ main (int argc, char **argv)
gtk_init (&argc, &argv);
if (argc != 3) {
- g_print ("usage: %s <type 0=mp3 1=avi 2=mpeg1 3=mpegparse 4=vorbis 5=sid 6=flac 7=wav 8=mod> <filename>\n", argv[0]);
+ g_print ("usage: %s <type 0=mp3 1=avi 2=mpeg1 3=mpegparse 4=vorbis 5=sid 6=flac 7=wav 8=mod 9=dv> <filename>\n", argv[0]);
exit (-1);
}
@@ -709,6 +746,8 @@ main (int argc, char **argv)
pipeline = make_wav_pipeline (argv[2]);
else if (atoi (argv[1]) == 8)
pipeline = make_mod_pipeline (argv[2]);
+ else if (atoi (argv[1]) == 9)
+ pipeline = make_dv_pipeline (argv[2]);
/* initialize gui elements ... */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
diff --git a/examples/seeking/spider_seek.c b/examples/seeking/spider_seek.c
index b138356f..b7b37529 100644
--- a/examples/seeking/spider_seek.c
+++ b/examples/seeking/spider_seek.c
@@ -41,7 +41,7 @@ make_spider_pipeline (const gchar *location, gboolean thread)
v_thread = gst_thread_new ("v_thread");
v_queue = gst_element_factory_make ("queue", "v_queue");
- videosink = gst_element_factory_make ("videosink", "v_sink");
+ videosink = gst_element_factory_make ("xvideosink", "v_sink");
//g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL);