[gst-devel] Seek event problem
Raoul
raoul.hecky at laposte.net
Fri Jan 28 01:35:13 CET 2005
Hi all,
I'm working on a project and I want to use Gstreamer. But I'm having trouble
to get the seek event working. I've made a little test program :
#include <gst/gst.h>
int main (int argc, char *argv[])
{
GstElement *pipeline, *source, *sink;
/* initialize GStreamer */
gst_init (&argc, &argv);
/* check input arguments */
if (argc != 2)
{
g_print ("Usage: %s <wave filename>\n", argv[0]);
return -1;
}
/* create elements */
pipeline = gst_pipeline_new ("pipeline");
source = gst_element_factory_make ("filesrc", "src");
sink = gst_element_factory_make ("esdsink", "sink");
/* set filename property on the file source */
g_object_set (G_OBJECT (source), "location", argv[1], NULL);
gst_bin_add_many (GST_BIN (pipeline), source, sink , NULL);
gst_element_link_many (source, sink, NULL);
gst_element_set_state (pipeline, GST_STATE_PAUSED);
gst_bin_sync_children_state (GST_BIN (pipeline));
gboolean res;
GstEvent *event;
event = gst_event_new_seek (
GST_FORMAT_TIME | /* seek on time */
GST_SEEK_METHOD_SET | /* set the absolute position */
GST_SEEK_FLAG_FLUSH, /* flush any pending data */
60 * GST_SECOND); /* the seek offset (1 second) */
res = gst_element_send_event (sink, event);
if (!res)
{
g_warning ("seek failed");
}
gst_element_set_state (pipeline, GST_STATE_PLAYING);
while (gst_bin_iterate (GST_BIN (pipeline))) ; //iterate
gst_element_set_state (pipeline, GST_STATE_NULL);
gst_object_unref (GST_OBJECT (pipeline));
return 0;
}
But I can't get the seek event working. The gst_element_send_event() always
return NULL! Am I doing something wrong?
Help appreciated.
Raoul
More information about the gstreamer-devel
mailing list