Index | Thread | Search

From:
Chris Billington <emulti@disroot.org>
Subject:
Re: New: audio/tuner: browse and play internet radio streams
To:
ports@openbsd.org
Cc:
stu@spacehopper.org
Date:
Thu, 25 Jun 2026 16:07:32 +0800

Download raw body.

Thread
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