Hi everyone,
I've just committed a patch to SVN trunk which allows
plugins to add
elements to the GStreamer pipeline. This allows you to put
filters in
the pipeline to alter audio (e.g. the equaliser at [0]), or
get a copy
of the audio to do stuff with (e.g. send over the network).
[0] http:
//bugzilla.gnome.org/show_bug.cgi?id=76522
Details for anyone who wants to use this to do things
=====================================================
There are three new interfaces that RBPlayer backends can
implement,
RBPlayerGstTee, RBPlayerGstFilter and RBPlayerGstDataTee -
the
RBPlayerGst backend currently implements the first two, and
will
probably implement the third in the future.
Each of the interfaces adds two function, e.g.
rb_player_gst_tee_add_tee
and rb_player_gst_tee_add_tee. You just pass the element you
want to add
to these, if you need to add linked elements, put them in a
GstBin
first.
Some sample code (in python), for a poor-mans
visualisation:
goom = gst.element_factory_make ("goom")
sink = gst.element_factory_make ("ximagesink")
colour = gst.element_factory_make
("ffmpegcolorspace")
b = gst.Bin()
b.add (goom, colour, sink)
goom.link(colour)
colour.link(sink)
b.add_pad(gst.GhostPad("sink",
goom.get_pad("sink")))
shell.get_player().props.player.add_tee_element(b)
If anyone has any questions, issues, or cool idea of what we
could use
this for, please let us know.
Cheers,
James "Doc" Livingston
--
"Some people think that noise abatement should be a
higher priority for
ATC. I say safety is noise abatement. You have no idea how
much noise it
makes to have a 737 fall out of the sky after an
accident."
-- anon. air traffic controller
_______________________________________________
rhythmbox-devel mailing list
rhythmbox-devel gnome.org
http://mail.gnome.org/mailman/listinfo/rhythmbox-devel
|