Index | Thread | Search

From:
Chris Billington <emulti@disroot.org>
Subject:
Re: New: audio/tuner: browse and play internet radio streams
To:
ports@openbsd.org
Date:
Thu, 25 Jun 2026 17:28:31 +0800

Download raw body.

Thread
  • Chris Billington:

    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
    
    
  • Chris Billington:

    New: audio/tuner: browse and play internet radio streams