Download raw body.
New: audio/tuner: browse and play internet radio streams
Chris Billington wrote:
> Stuart Henderson wrote:
>> On 2026/06/25 16:07, Chris Billington wrote:
>>> Chris Billington wrote:
>>>> Stuart Henderson wrote:
>>>>> On 2026/06/16 14:38, Chris Billington wrote:
>>>>>> Attached: audio/tuner internet radio browser/player that can
>>>>>> also play video
>>>>>> streams in mpv
>>>>>>
>>>>>> Upstream: https://github.com/tuner-labs/tuner
>>>>>>
>>>>>> Rationale:
>>>>>> - existing port audio/gradio has not been maintained since 2019
>>>>>> and has
>>>>>> unpleasant bugs switching streams that will presumably never be
>>>>>> fixed.
>>>>>>
>>>>>> - existing port audio/curseradio (ncurses) currently fails to
>>>>>> start with an
>>>>>> OPML browsing error
>>>>>>
>>>>>> - Tuner upstream has 27 contributors and seems to be actively
>>>>>> maintained.
>>>>>>
>>>>>> After patching a mutex lock/unlock issue the port tests fine on
>>>>>> 7.9-stable.
>>>>>> Patch submitted upstream.
>>>>>>
>>>>>> To play AAC streams gst-libav is an optional dependency. I
>>>>>> wasn't sure how
>>>>>> to best handle this.
>>>>>>
>>>>>> Testers on 7.9-current welcome, unfortunately I don't have a
>>>>>> machine with
>>>>>> -current handy.
>>>>>>
>>>>>> Looking for comments and OK's, am happy to take maintainer.
>>>>>>
>>>>>> Chris
>>>>>
>>>>> : GH_TAGNAME = v2.1.0
>>>>> : GH_ACCOUNT = tuner-labs
>>>>> : GH_PROJECT = tuner
>>>>> : DISTNAME = ${GH_PROJECT:L}-${GH_TAGNAME:S/^v//}
>>>>> : #EPOCH = 0
>>>>> : #REVISION = 0
>>>>>
>>>>> the DISTNAME line is doing nothing, it just sets it to the same string
>>>>> used by default, so drop it, along with #EPOCH/REVISION
>>>>>
>>>>> : # GPLv3
>>>>>
>>>>> files have "SPDX-License-Identifier: GPL-3.0-or-later" so please write
>>>>> GPLv3+
>>>>>
>>>>> : WANTLIB += c execinfo gdk-3 gdk_pixbuf-2.0 gee-0.8
>>>>> : WANTLIB += gio-2.0 glib-2.0 gobject-2.0 gstplayer-1.0 gstreamer-1.0
>>>>> : WANTLIB += gtk-3 intl json-glib-1.0 pango-1.0
>>>>> : WANTLIB += soup-3.0
>>>>> :
>>>>> : LIB_DEPENDS = devel/json-glib \
>>>>> : devel/libgee \
>>>>> : devel/libsoup3 \
>>>>> : multimedia/gstreamer1/plugins-bad \
>>>>> : x11/gtk+3
>>>>>
>>>>> just use tabs rather than a mix of tabs and spaces
>>>>>
>>>>> : LDFLAGS = L${LOCALBASE}/lib
>>>>> : LDFLAGS += -lexecinfo
>>>>>
>>>>> this is doing nothing, the LDFLAGS make variable is not passed in to
>>>>> the build
>>>>>
>>>>> : -meson.add_install_script (
>>>>> : - glib_compile_schemas,
>>>>> : - schemas_dir,
>>>>> : - install_tag: 'schemas'
>>>>> : -)
>>>>> : +#meson.add_install_script (
>>>>> : +# glib_compile_schemas,
>>>>> : +# schemas_dir,
>>>>> : +# install_tag: 'schemas'
>>>>> : +#)
>>>>> this patch is a bit unclear and makes it looks like it's disabling
>>>>> install of schemas (which is wrong), but actually it's disabling
>>>>> a bogus schema compile job.
>>>>>
>>>>> updated tgz attached (so far I've only built, not run it).
>>>>>
>>>> Thanks Stuart for tidying my untidiness! I was too pleased having
>>>> zapped
>>>> the mutex bug (doesn't bother Linux, it seems) that I forgot to put
>>>> things in good order.
>>>> Works fine on 7.9-stable.
>>>>
>>>> Regards,
>>>> Chris
>>> I have given this a good test on 7.9-current amd64 including several
>>> of the
>>> various TV channels in the radio-browser directory, which seem to decode
>>> fine using Gstreamer.
>>>
>>> AAC audio playback (commonly used for Internet radio and video
>>> stations in
>>> the directory) seems to work OK using the fdkaacdec decoder in
>>> gst-plugins-bad, but that codec is only ranked 'marginal'. The
>>> primary AAC
>>> decoder avdec_aac is ranked as 'primary'.
>>>
>>> To handle this I am wondering if a dependency (or optional
>>> dependency) on
>>> gst-libav would be sensible, or if it should be handled as a note in a
>>> pkg-readme.
>>
>> ports/packages don't have an "optional dep" mechanism, the only way is
>> to either mention it somewhere, or add the dep.
>>
>> in this case, I think: just add the dep.
>>
>>
> Agreed- updated version attached
>
> Chris
It turns out that the AAC decoders faad and fdkaac are in fact disabled
in our port of gst-plugins-bad, so gst-libav is definitely needed to
play back AAC streams
Chris
New: audio/tuner: browse and play internet radio streams