summaryrefslogtreecommitdiffstats
path: root/examples/seeking
diff options
context:
space:
mode:
Diffstat (limited to 'examples/seeking')
-rw-r--r--examples/seeking/seek.c35
-rw-r--r--examples/seeking/spider_seek.c4
2 files changed, 29 insertions, 10 deletions
diff --git a/examples/seeking/seek.c b/examples/seeking/seek.c
index 12be23f7..761e7ba8 100644
--- a/examples/seeking/seek.c
+++ b/examples/seeking/seek.c
@@ -14,8 +14,8 @@ static gboolean stats = FALSE;
static guint update_id;
-#define SOURCE "gnomevfssrc"
-//#define SOURCE "filesrc"
+//#define SOURCE "gnomevfssrc"
+#define SOURCE "filesrc"
#define UPDATE_INTERVAL 500
@@ -231,7 +231,7 @@ make_parse_pipeline (const gchar *location)
src = gst_element_factory_make_or_warn (SOURCE, "src");
parser = gst_element_factory_make_or_warn ("mpegparse", "parse");
fakesink = gst_element_factory_make_or_warn ("fakesink", "sink");
- g_object_set (G_OBJECT (fakesink), "sync", TRUE, NULL);
+ g_object_set (G_OBJECT (fakesink), "sync", FALSE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL);
@@ -404,7 +404,8 @@ make_mpeg_pipeline (const gchar *location)
g_object_set (G_OBJECT (src), "location", location, NULL);
demux = gst_element_factory_make_or_warn ("mpegdemux", "demux");
- g_object_set (G_OBJECT (demux), "sync", FALSE, NULL);
+ //g_object_set (G_OBJECT (demux), "sync", FALSE, NULL);
+ g_object_set (G_OBJECT (demux), "sync", TRUE, NULL);
seekable_elements = g_list_prepend (seekable_elements, demux);
@@ -435,12 +436,28 @@ make_mpeg_pipeline (const gchar *location)
video_bin = gst_bin_new ("v_decoder_bin");
v_decoder = gst_element_factory_make_or_warn ("mpeg2dec", "v_dec");
video_thread = gst_thread_new ("v_decoder_thread");
+ g_object_set (G_OBJECT (video_thread), "schedpolicy", 2, NULL);
v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
v_filter = gst_element_factory_make_or_warn ("colorspace", "v_filter");
videosink = gst_element_factory_make_or_warn ("xvideosink", "v_sink");
- gst_element_connect_many (v_decoder, v_queue, videosink, NULL);
+ gst_element_connect_many (v_decoder, v_queue, v_filter, NULL);
+
+ /*
+ gst_element_connect_pads_filtered (v_filter, "src", videosink, "sink",
+ GST_CAPS_NEW ("filtercaps",
+ "video/raw",
+ "format", GST_PROPS_FOURCC (GST_STR_FOURCC ("RGB ")),
+ "bpp", GST_PROPS_INT (16),
+ "depth", GST_PROPS_INT (16),
+ "endianness", GST_PROPS_INT (G_BYTE_ORDER),
+ "red_mask", GST_PROPS_INT (0xf800),
+ "green_mask", GST_PROPS_INT (0x07e0),
+ "blue_mask", GST_PROPS_INT (0x001f)
+ ));
+ */
+ gst_element_connect_pads (v_filter, "src", videosink, "sink");
gst_bin_add_many (GST_BIN (video_bin), v_decoder, video_thread, NULL);
- gst_bin_add_many (GST_BIN (video_thread), v_queue, videosink, NULL);
+ gst_bin_add_many (GST_BIN (video_thread), v_queue, v_filter, videosink, NULL);
setup_dynamic_connection (demux, "video_00", gst_element_get_pad (v_decoder, "sink"), video_bin);
@@ -651,7 +668,6 @@ stop_seek (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
GST_SEEK_FLAG_FLUSH, real);
res = gst_pad_send_event (seekable, s_event);
- gst_event_free (s_event);
walk = g_list_next (walk);
}
@@ -667,7 +683,6 @@ stop_seek (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
GST_SEEK_FLAG_FLUSH, real);
res = gst_element_send_event (seekable, s_event);
- gst_event_free (s_event);
walk = g_list_next (walk);
}
@@ -789,6 +804,10 @@ main (int argc, char **argv)
gtk_main ();
+ //gst_object_unref (GST_OBJECT (pipeline));
+ gst_buffer_print_stats();
+ gst_event_print_stats();
+
//g_mem_chunk_info();
return 0;
diff --git a/examples/seeking/spider_seek.c b/examples/seeking/spider_seek.c
index b7b37529..5dd64010 100644
--- a/examples/seeking/spider_seek.c
+++ b/examples/seeking/spider_seek.c
@@ -264,7 +264,6 @@ stop_seek (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
GST_SEEK_FLAG_FLUSH, real);
res = gst_element_send_event (seekable, s_event);
- gst_event_free (s_event);
walk = g_list_next (walk);
}
@@ -371,7 +370,8 @@ main (int argc, char **argv)
gtk_main ();
- //g_mem_chunk_info();
+ gst_buffer_print_stats();
+ gst_event_print_stats();
return 0;
}