Some advice

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

Some advice

Colin Guthrie-6
Hi,

I have been working on hacking the phonon-gstreamer backend recently and
as I'm a significant degree short of even having a rudimentary knowledge
of gstreamer, this was a bit of an uphill struggle.

I've managed to get a few things working now, but I have a couple of
questions that hopefully some of the development gurus can answer me.


1) Is it possible to find out which sink is really used when you use
gconfsink, autoaudiosink or halsink?


2) When streaming data from shoutcast, it is possible to decode the
StreamTitle= header via icydemux. I have hacked phonon-gstreamer backed
to do this now (in a similar way to how playbin does it). However it
only extracts the title.

When I use the Xine backend it appears to be able to extract inline
metadata out of the stream content itself (e.g. when it finds a vorbis
comment header or an id3 tag). That's as much as I can tell from
observation. I've hacked the phonon-gstreamer to be able to "guess" the
artist name from the StreamTitle but it's really not very nice. So my
main question is, can the decoders handle inline metadata decoding and
if so how can I enabled this?


Many thanks

Col

--

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
   Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
   Mandriva Linux Contributor [http://www.mandriva.com/]
   PulseAudio Hacker [http://www.pulseaudio.org/]
   Trac Hacker [http://trac.edgewall.org/]


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Some advice

michael smith-6-3
On Mon, Sep 22, 2008 at 1:41 AM, Colin Guthrie <[hidden email]> wrote:

> Hi,
>
> I have been working on hacking the phonon-gstreamer backend recently and
> as I'm a significant degree short of even having a rudimentary knowledge
> of gstreamer, this was a bit of an uphill struggle.
>
> I've managed to get a few things working now, but I have a couple of
> questions that hopefully some of the development gurus can answer me.
>
>
> 1) Is it possible to find out which sink is really used when you use
> gconfsink, autoaudiosink or halsink?

These are all bins (they contain other elements); so you can just
iterate (possibly recursively) over all the elements in them, looking
for sinks, and then look at the type of the sink. autoaudiosink and
halsink are both pretty easy, but gconfsink lets you have a
more-or-less arbitrary bin, which could even contain multiple sinks
(though that would be rare).

>
>
> 2) When streaming data from shoutcast, it is possible to decode the
> StreamTitle= header via icydemux. I have hacked phonon-gstreamer backed
> to do this now (in a similar way to how playbin does it). However it
> only extracts the title.
>
> When I use the Xine backend it appears to be able to extract inline
> metadata out of the stream content itself (e.g. when it finds a vorbis
> comment header or an id3 tag). That's as much as I can tell from
> observation. I've hacked the phonon-gstreamer to be able to "guess" the
> artist name from the StreamTitle but it's really not very nice. So my
> main question is, can the decoders handle inline metadata decoding and
> if so how can I enabled this?
>

I guess it'd be useful to point us at a stream that behaves like this.

'icydemux' will extract metadata properly from shoutcast streams (so
long as the source is providing this data). Vorbis streams have inline
metadata that should be handled automatically, without anything
special being needed. I've never seen inline id3 being streamed, nor
have I ever seen software that would handle it at all.

So you shouldn't need to do anything special apart from requesting the
http sources to get shoutcast-style metadata.

Mike

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Some advice

Colin Guthrie-6
(Sorry for the late reply... I'm not subscribed and post via Gmane, but
hoped that after having my first message validated manually my
subsequent messages would pass. Alas that didn't happen, so I've now
subscribed officially and disabled delivery so gmane can still be used :))

Michael Smith wrote:
>> 1) Is it possible to find out which sink is really used when you use
>> gconfsink, autoaudiosink or halsink?
>
> These are all bins (they contain other elements); so you can just
> iterate (possibly recursively) over all the elements in them, looking
> for sinks, and then look at the type of the sink. autoaudiosink and
> halsink are both pretty easy, but gconfsink lets you have a
> more-or-less arbitrary bin, which could even contain multiple sinks
> (though that would be rare).

OK, thanks for the info. I'll look into doing that :)

>> 2) When streaming data from shoutcast, it is possible to decode the
>> StreamTitle= header via icydemux. I have hacked phonon-gstreamer backed
>> to do this now (in a similar way to how playbin does it). However it
>> only extracts the title.
>>
>> When I use the Xine backend it appears to be able to extract inline
>> metadata out of the stream content itself (e.g. when it finds a vorbis
>> comment header or an id3 tag). That's as much as I can tell from
>> observation. I've hacked the phonon-gstreamer to be able to "guess" the
>> artist name from the StreamTitle but it's really not very nice. So my
>> main question is, can the decoders handle inline metadata decoding and
>> if so how can I enabled this?
>>
>
> I guess it'd be useful to point us at a stream that behaves like this.

Oh, erm, yeah that would help wouldn't it. I've been playing with this
one: http://87.117.200.136:8010
(it's not my musical taste: http://www.last.fm/user/coling)

It seems to be an AAC stream and the xine backend for phonon can update
the artist and title streams properly from this it seems.

> 'icydemux' will extract metadata properly from shoutcast streams (so
> long as the source is providing this data). Vorbis streams have inline
> metadata that should be handled automatically, without anything
> special being needed. I've never seen inline id3 being streamed, nor
> have I ever seen software that would handle it at all.

Yeah I think I inferred too much from my initial observations for which
I apologise :)

I see now with more testing that the xine metadata extraction seems to
be using ORGANIZATION for ARTIST and ALBUM fields on streams. The above
mentioned stream has it's artist/album data extracted properly with
xine, but it doesn't seem to happen with gstreamer (at least I don't get
any TAG messages on the bus). I guess this is a shortcoming of the faad
implementation?

> So you shouldn't need to do anything special apart from requesting the
> http sources to get shoutcast-style metadata.

 From what I can tell icydebux only parses the StreamTitle= header and
sets the TITLE metadata accordingly. This is useful but inline metadata
extraction is nicer. As you've said, vorbis comments should work fine,
so I'll have to find some streams that do this so I can test.

Thanks for your help Mike :)

Col

--

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
   Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
   Mandriva Linux Contributor [http://www.mandriva.com/]
   PulseAudio Hacker [http://www.pulseaudio.org/]
   Trac Hacker [http://trac.edgewall.org/]


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Some advice

Colin Guthrie-6
In reply to this post by michael smith-6-3
(Sorry for the late reply... I'm not subscribed and post via Gmane, but
hoped that after having my first message validated manually my
subsequent messages would pass. Alas that didn't happen, so I've now
subscribed officially and disabled delivery so gmane can still be used :))

Michael Smith wrote:
>> 1) Is it possible to find out which sink is really used when you use
>> gconfsink, autoaudiosink or halsink?
>
> These are all bins (they contain other elements); so you can just
> iterate (possibly recursively) over all the elements in them, looking
> for sinks, and then look at the type of the sink. autoaudiosink and
> halsink are both pretty easy, but gconfsink lets you have a
> more-or-less arbitrary bin, which could even contain multiple sinks
> (though that would be rare).

OK, thanks for the info. I'll look into doing that :)

>> 2) When streaming data from shoutcast, it is possible to decode the
>> StreamTitle= header via icydemux. I have hacked phonon-gstreamer backed
>> to do this now (in a similar way to how playbin does it). However it
>> only extracts the title.
>>
>> When I use the Xine backend it appears to be able to extract inline
>> metadata out of the stream content itself (e.g. when it finds a vorbis
>> comment header or an id3 tag). That's as much as I can tell from
>> observation. I've hacked the phonon-gstreamer to be able to "guess" the
>> artist name from the StreamTitle but it's really not very nice. So my
>> main question is, can the decoders handle inline metadata decoding and
>> if so how can I enabled this?
>>
>
> I guess it'd be useful to point us at a stream that behaves like this.

Oh, erm, yeah that would help wouldn't it. I've been playing with this
one: http://87.117.200.136:8010
(it's not my musical taste: http://www.last.fm/user/coling)

It seems to be an AAC stream and the xine backend for phonon can update
the artist and title streams properly from this it seems.

> 'icydemux' will extract metadata properly from shoutcast streams (so
> long as the source is providing this data). Vorbis streams have inline
> metadata that should be handled automatically, without anything
> special being needed. I've never seen inline id3 being streamed, nor
> have I ever seen software that would handle it at all.

Yeah I think I inferred too much from my initial observations for which
I apologise :)

I see now with more testing that the xine metadata extraction seems to
be using ORGANIZATION for ARTIST and ALBUM fields on streams. The above
mentioned stream has it's artist/album data extracted properly with
xine, but it doesn't seem to happen with gstreamer (at least I don't get
any TAG messages on the bus). I guess this is a shortcoming of the faad
implementation?

> So you shouldn't need to do anything special apart from requesting the
> http sources to get shoutcast-style metadata.

 From what I can tell icydebux only parses the StreamTitle= header and
sets the TITLE metadata accordingly. This is useful but inline metadata
extraction is nicer. As you've said, vorbis comments should work fine,
so I'll have to find some streams that do this so I can test.

Thanks for your help Mike :)

Col

--

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
   Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
   Mandriva Linux Contributor [http://www.mandriva.com/]
   PulseAudio Hacker [http://www.pulseaudio.org/]
   Trac Hacker [http://trac.edgewall.org/]



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel