[gst-devel] Mixing two ogg streams in gst-python
alfred
alfred.hallmert at gmail.com
Fri Oct 7 02:04:45 CEST 2005
Hi
I am trying to accomplish something which would seem to be very
straightforward in gstreamer - mixing two ogg streams into one in a python
script, but I'm experiencing several problems.
This is the setup I'm trying to create:
filesrc->oggdemux->oggdec->audioconv->vol\
> adder-> (..) shout2send
filesrc->oggdemux->oggdec->audioconv->vol/
The first problem I have is that I am only able to create an ogg decoding
pipeline using gst.parse_launch(), not by creating objects directly (i.e.
with gst.element_factory_make). I think this is because src pads are
available "sometimes", and I need to wait until they are creaed, but I
fail to convert the code at
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-pads.html
to python:
oggdemux.connect("pad-added", new_pad)
gives the error message "TypeError: unknown signal name"
Instead I have tried to use gst.parse_launch() like this:
bin = gst.parse_launch('( filesrc name=file1 !' +
'oggdemux name=oggdmx1 ! ' +
'vorbisdec name=oggdec1 !' +
'audioconvert name=auconv1 ) ' +
'( filesrc name=file2 !' +
'oggdemux name=oggdmx2 ! ' +
'vorbisdec name=oggdec2 !' +
'audioconvert name=auconv2 ) ')
This gives the error message "GStreamer-WARNING **: pushing data on
non-negotiated pad oggdec1:src, not allowed." when running the pipeline.
What really annoys me is that it works fine when the second source is a
sinesrc instead of another ogg stream. I am assuming this is some kind of
syncronisation issues, but I can't figure out how to use queue or similar
to fix this, all examples are the other way around (i.e. splitting a
stream in two and keeping them in sync).
What am I missing?
More information about the gstreamer-devel
mailing list