Conditional availability of properties

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Conditional availability of properties

Arun Raghavan
Hey folks,
I'm looking at adding the GstStreamVolume interface to pulsesrc since
PulseAudio 1.0 will support per-source-output volumes. However, there is
one potential problem here that I believe might raise objections.

The interface (which is really just the "volume" and "mute" properties)
will only be available if pulsesrc is compiled against PulseAudio 1.0
since we want to be able to compile against older versions as well.

IMO this isn't a huge problem if we document that users should be
checking to see if pulsesrc implements the interface before using it
(this is what I've seen users of pulsesink do as well).

Does this sound okay?

-- Arun

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Conditional availability of properties

Stefan Sauer
On 09/13/11 04:49, Arun Raghavan wrote:

> Hey folks,
> I'm looking at adding the GstStreamVolume interface to pulsesrc since
> PulseAudio 1.0 will support per-source-output volumes. However, there is
> one potential problem here that I believe might raise objections.
>
> The interface (which is really just the "volume" and "mute" properties)
> will only be available if pulsesrc is compiled against PulseAudio 1.0
> since we want to be able to compile against older versions as well.
>
> IMO this isn't a huge problem if we document that users should be
> checking to see if pulsesrc implements the interface before using it
> (this is what I've seen users of pulsesink do as well).
We have some options.

1.) add the properties, if the installed pulseaudio is recent enough
2.) always add the properties and use GstPropertyProbe to signal their
availability
3.) make it and interface and use GstImplementsInterface (which is on
the to-kill list for 0.11)

v4l2src uses 3) currently.

Stefan
> Does this sound okay?
>
> -- Arun
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Conditional availability of properties

Arun Raghavan
On Fri, 2011-09-16 at 21:57 +0200, Stefan Sauer wrote:

> On 09/13/11 04:49, Arun Raghavan wrote:
> > Hey folks,
> > I'm looking at adding the GstStreamVolume interface to pulsesrc since
> > PulseAudio 1.0 will support per-source-output volumes. However, there is
> > one potential problem here that I believe might raise objections.
> >
> > The interface (which is really just the "volume" and "mute" properties)
> > will only be available if pulsesrc is compiled against PulseAudio 1.0
> > since we want to be able to compile against older versions as well.
> >
> > IMO this isn't a huge problem if we document that users should be
> > checking to see if pulsesrc implements the interface before using it
> > (this is what I've seen users of pulsesink do as well).
> We have some options.
>
> 1.) add the properties, if the installed pulseaudio is recent enough
> 2.) always add the properties and use GstPropertyProbe to signal their
> availability
> 3.) make it and interface and use GstImplementsInterface (which is on
> the to-kill list for 0.11)

I was thinking of doing (1) + (3) and then solve the problem for 0.11
however all the other instances of GstImplementsInterface are done.

Cheers,
Arun

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Conditional availability of properties

Tim-Philipp Müller-2
In reply to this post by Stefan Sauer
On Fri, 2011-09-16 at 21:57 +0200, Stefan Sauer wrote:

> 3.) make it and interface and use GstImplementsInterface (which is on
> the to-kill list for 0.11)

More on the killed-already list. However, I am not sure if you can
convert an existing interface to GstImplementsInterace without some
subtle (or not so subtle) API or ABI breakage somewhere.

 Cheers
  -Tim

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Conditional availability of properties

Arun Raghavan
On Mon, 2011-09-19 at 12:00 +0100, Tim-Philipp Müller wrote:
> On Fri, 2011-09-16 at 21:57 +0200, Stefan Sauer wrote:
>
> > 3.) make it and interface and use GstImplementsInterface (which is on
> > the to-kill list for 0.11)
>
> More on the killed-already list. However, I am not sure if you can
> convert an existing interface to GstImplementsInterace without some
> subtle (or not so subtle) API or ABI breakage somewhere.

Happily, GstStreamVolume already implements it.

-- Arun

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Conditional availability of properties

Arun Raghavan
On Mon, 2011-09-19 at 20:45 +0530, Arun Raghavan wrote:

> On Mon, 2011-09-19 at 12:00 +0100, Tim-Philipp Müller wrote:
> > On Fri, 2011-09-16 at 21:57 +0200, Stefan Sauer wrote:
> >
> > > 3.) make it and interface and use GstImplementsInterface (which is on
> > > the to-kill list for 0.11)
> >
> > More on the killed-already list. However, I am not sure if you can
> > convert an existing interface to GstImplementsInterace without some
> > subtle (or not so subtle) API or ABI breakage somewhere.
>
> Happily, GstStreamVolume already implements it.

It doesn't.

Summarising discussion on IRC -- there's no non-fugly way to do this in
0.10, so I won't push this patch out till we've solved the problem for
1.0.

-- Arun

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel