examples/seeking/seek.c: Make correct DV pipeline.

Original commit message from CVS:
* examples/seeking/seek.c: (make_dv_pipeline),
(make_vorbis_theora_pipeline), (query_rates),
(query_positions_elems), (query_positions_pads), (do_seek):
Make correct DV pipeline.
This commit is contained in:
Wim Taymans 2005-07-19 11:57:27 +00:00
parent 790a87c864
commit d6b5e52a36
3 changed files with 29 additions and 8 deletions

View file

@ -1,3 +1,10 @@
2005-07-19 Wim Taymans <wim@fluendo.com>
* examples/seeking/seek.c: (make_dv_pipeline),
(make_vorbis_theora_pipeline), (query_rates),
(query_positions_elems), (query_positions_pads), (do_seek):
Make correct DV pipeline.
2005-07-18 Andy Wingo <wingo@pobox.com> 2005-07-18 Andy Wingo <wingo@pobox.com>
* configure.ac (DEFAULT_AUDIOSINK, DEFAULT_AUDIOSRC): Use alsa by * configure.ac (DEFAULT_AUDIOSINK, DEFAULT_AUDIOSRC): Use alsa by

View file

@ -126,30 +126,37 @@ make_dv_pipeline (const gchar * location)
{ {
GstElement *pipeline; GstElement *pipeline;
GstElement *src, *decoder, *audiosink, *videosink; GstElement *src, *decoder, *audiosink, *videosink;
GstElement *a_queue, *v_queue;
GstPad *seekable; GstPad *seekable;
pipeline = gst_pipeline_new ("app"); pipeline = gst_pipeline_new ("app");
src = gst_element_factory_make_or_warn (SOURCE, "src"); src = gst_element_factory_make_or_warn (SOURCE, "src");
decoder = gst_element_factory_make_or_warn ("dvdec", "decoder"); decoder = gst_element_factory_make_or_warn ("dvdec", "decoder");
videosink = gst_element_factory_make_or_warn ("ximagesink", "v_sink"); v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink"); audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
//g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL); g_object_set (G_OBJECT (src), "location", location, NULL);
gst_bin_add (GST_BIN (pipeline), src); gst_bin_add (GST_BIN (pipeline), src);
gst_bin_add (GST_BIN (pipeline), decoder); gst_bin_add (GST_BIN (pipeline), decoder);
gst_bin_add (GST_BIN (pipeline), a_queue);
gst_bin_add (GST_BIN (pipeline), audiosink); gst_bin_add (GST_BIN (pipeline), audiosink);
gst_bin_add (GST_BIN (pipeline), v_queue);
gst_bin_add (GST_BIN (pipeline), videosink); gst_bin_add (GST_BIN (pipeline), videosink);
gst_element_link (src, decoder); gst_element_link (src, decoder);
gst_element_link (decoder, audiosink); gst_element_link (decoder, a_queue);
gst_element_link (decoder, videosink); gst_element_link (a_queue, audiosink);
gst_element_link (decoder, v_queue);
gst_element_link (v_queue, videosink);
seekable = gst_element_get_pad (decoder, "video"); seekable = gst_element_get_pad (decoder, "video");
seekable_pads = g_list_prepend (seekable_pads, seekable); seekable_pads = g_list_prepend (seekable_pads, seekable);
rate_pads = g_list_prepend (rate_pads, seekable); rate_pads = g_list_prepend (rate_pads, seekable);
seekable = gst_element_get_pad (decoder, "audio"); seekable = gst_element_get_pad (decoder, "audio");
seekable_pads = g_list_prepend (seekable_pads, seekable); seekable_pads = g_list_prepend (seekable_pads, seekable);
rate_pads = g_list_prepend (rate_pads, seekable); rate_pads = g_list_prepend (rate_pads, seekable);

View file

@ -126,30 +126,37 @@ make_dv_pipeline (const gchar * location)
{ {
GstElement *pipeline; GstElement *pipeline;
GstElement *src, *decoder, *audiosink, *videosink; GstElement *src, *decoder, *audiosink, *videosink;
GstElement *a_queue, *v_queue;
GstPad *seekable; GstPad *seekable;
pipeline = gst_pipeline_new ("app"); pipeline = gst_pipeline_new ("app");
src = gst_element_factory_make_or_warn (SOURCE, "src"); src = gst_element_factory_make_or_warn (SOURCE, "src");
decoder = gst_element_factory_make_or_warn ("dvdec", "decoder"); decoder = gst_element_factory_make_or_warn ("dvdec", "decoder");
videosink = gst_element_factory_make_or_warn ("ximagesink", "v_sink"); v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink"); audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
//g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL); g_object_set (G_OBJECT (src), "location", location, NULL);
gst_bin_add (GST_BIN (pipeline), src); gst_bin_add (GST_BIN (pipeline), src);
gst_bin_add (GST_BIN (pipeline), decoder); gst_bin_add (GST_BIN (pipeline), decoder);
gst_bin_add (GST_BIN (pipeline), a_queue);
gst_bin_add (GST_BIN (pipeline), audiosink); gst_bin_add (GST_BIN (pipeline), audiosink);
gst_bin_add (GST_BIN (pipeline), v_queue);
gst_bin_add (GST_BIN (pipeline), videosink); gst_bin_add (GST_BIN (pipeline), videosink);
gst_element_link (src, decoder); gst_element_link (src, decoder);
gst_element_link (decoder, audiosink); gst_element_link (decoder, a_queue);
gst_element_link (decoder, videosink); gst_element_link (a_queue, audiosink);
gst_element_link (decoder, v_queue);
gst_element_link (v_queue, videosink);
seekable = gst_element_get_pad (decoder, "video"); seekable = gst_element_get_pad (decoder, "video");
seekable_pads = g_list_prepend (seekable_pads, seekable); seekable_pads = g_list_prepend (seekable_pads, seekable);
rate_pads = g_list_prepend (rate_pads, seekable); rate_pads = g_list_prepend (rate_pads, seekable);
seekable = gst_element_get_pad (decoder, "audio"); seekable = gst_element_get_pad (decoder, "audio");
seekable_pads = g_list_prepend (seekable_pads, seekable); seekable_pads = g_list_prepend (seekable_pads, seekable);
rate_pads = g_list_prepend (rate_pads, seekable); rate_pads = g_list_prepend (rate_pads, seekable);