Download raw body.
New: audio/tuner: browse and play internet radio streams
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.
Regards
Chris
New: audio/tuner: browse and play internet radio streams