[gst-devel] Seeking problems

Iain iain at gnome.org
Sat Dec 30 18:03:47 CET 2006


I've got one of my weird and wonderful pipelines and it plays fine and
I hear sound, but if I try to seek with it, the seek fails. I traced
into the log and it seems that gst_element_send_event tries to find
the sink in the pipeline. It finds it and tries to send the event
upstream. Eventually it gets to a pad that is flushing and drops it.
It then tries to find another sink but it can't so the seek fails. For
me the element in the pipeline that always failed was the level, but I
don't know if thats just due to timings.
I don't think I've done anything wrong in setting up the pipeline but
it is possible.

I'd appreciate it if someone could take a looksee...I made a
mini-marlin :) that only has the relevant stuff to get samples loaded
and the play pipeline running
http://www.openedhand.com/~iain/mini-marlin.tar.bz2 It may look like
there's a lot of stuff in there, but most of it isn't part of the
problem, its just stuff thats needed to compile and run the test

The relevant files are
marlin-play-pipeline.c which is the pipeline that plays audio samples.
It is made up as
marlin-channel-src ! marlin-channel-joiner ! audioconvert ! level ! audiosink

test-play-pipeline.c is a sample program that loads an audio file (mp3
is probably easiest). It has a gui that displays the load progress and
once the file has loaded the play button will attempt to seek to the
middle of the sample and play it. It will fail (and assert, just so
that its easy to find the point in the logfile that it breaks at)

marlin-channel-joiner.c is a reworking of an interleaver element. The
problem may well be in this.

marlin-channel-src.c is an element that feeds audio data from a
MarlinSample into the pipeline. I think its working pretty well.

The rest of the files are just extra stuff that handle loading, and
making MarlinSamples.

much thanks :)

More information about the gstreamer-devel mailing list