[gstreamer-bugs] [Bug 614305] [PLUGIN-MOVE] oss4 should be moved to good

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Apr 9 00:57:04 PDT 2010


https://bugzilla.gnome.org/show_bug.cgi?id=614305
  GStreamer | gst-plugins-bad | 0.10.18

--- Comment #7 from Tim-Philipp Müller <t.i.m at zen.co.uk> 2010-04-09 07:57:03 UTC ---
> Could you explain how to test this interface once it is written?  For example,
> how in totem can you make use of this or test it?   The following GStreamer
> docs explain the interface but does not really provide any tips on how to
> actually make use of it:
> 
> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct

playbin2 (and hence also recent versions of totem) will/should use it when
changing the volume or muting audio. So with a recent totem you can just test
whether the right code paths in oss4sink are hit.

Also, when you look at the oss4 mixer (the OSS one, not a gstreamer-based one),
there should be a mixer control for each application that uses OSS4, so there
should be a mixer slider for totem then. If the interface is used correctly,
then you should see the totem slider in the OSS4 mixer move up and down when
you change the volume in totem. If the volume changes without the slider
moving, that means that playbin2's internal volume element does the volume
control.


> Is there an example of a well written plugin that makes use of this interface I
> could use as an example?  Looking at the gst-plugins-base and gst-plugins-good
> code, the only reference I see to a plugin making use of it is the pulsesink
> plugin.  However, I see no reference to the string "GstStreamVolume" in the
> pulse code.

Look for:

  static const GInterfaceInfo svol_iface_info = { NULL, NULL, NULL };
  g_type_add_interface_static (type, GST_TYPE_STREAM_VOLUME, &svol_iface_info);

(I don't think you need the additional GstImplementsInterface stuff that's
going on there, I don't know why that's there..). The interface has no
vfuncs/methods to implement, so that's all there is to it besides adding and
implementing the properties.


> Is there any documentation which explain how to actually use it? 

Not that I know of. If totem isn't enough, You can always write some code that
calls the interface methods mentioned in the API..


>  Can you test it using gst-launch commands, for example?

No.


> You say that we need to add the VOLUME and MUTE properties to the OSSv4 plugin,
> so does this mean that this feature is implemented just by the plugin having these
> properties and you do not really have to implement the GstStreamVolume
> interfaces in the OSSv4 plugin code?

Technically you could probably get away with just implementing the properties
and not the interface. However, the interface should really also be added. The
reason for that is that it makes the semantics of the volume property clear
(linear volume, range etc.).

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.



More information about the Gstreamer-bugs mailing list