From: Iain <ia...@gn...> - 2006-12-30 17:03:48
|
Hi 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 program. 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 :) iain |