Menu

[Need help]Dream xHE-AAC support for openwebrx-plus

dennis
2025-03-08
2025-11-05
  • dennis

    dennis - 2025-03-08

    Hi guys,

    I use Openwebrx plus(https://hub.docker.com/r/slechev/openwebrxplus) to run SDR service, and the built-in DRM only support AAC decoding, but not support xHE-AAC decoding.

    So I try to re-compile the dream from souce code to make it support xHE-AAC,
    and the make is ok,
    but if run the dream, it's still get error output. details information as below.

    1. Basic informaion:
    Hardware: SDRPlay RSP1, a SDR(softwave define radio) dongle.
    System: Ubuntu 20.04
    Docker image: https://hub.docker.com/r/slechev/openwebrxplus ,which is also based on ubuntu 20.04 or similar.

    **Decoding good: **
    The openwebrx could decoding DRM program(such as 17770kHz and 21530kHz) which are none-xHE.AAC.

    ** Decoding error: **
    couldn't decoding DRM program(such as 13825kHz) which is xHE.AAC.

    the install guidance of DRM support in openwebrx:
    https://github.com/jketterl/openwebrx/wiki/Manual-Package-installation-(including-digital-voice)

    related post that the openwebrx only support none-xHE-AAC:
    https://groups.io/g/openwebrx/topic/try_to_make_the_drm_xhe_aac/109553475

    2. Try to re-compile the dream, and get error when run the dream.

    14-line fix for xHE-AAC decoding
    https://sourceforge.net/p/drm/discussion/general/thread/01c6e64c3b/?page=1

    In the above posts, it says there're solution to make xHE-AAC decoding.

    (1)I clone the source code(https://sourceforge.net/p/drm/code/HEAD/tree/branches/dream-rafa/ ) which is mentioned in above thread "14-line fix for xHE-AAC decoding",
    and recompile the dream, but still not working.

    and the error log of openwebrx is:

    Got FAAD2 library
    Got FAAC library
    construct CSoundInPulse
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundPulse::Enumerate(): pa_init failed
    initplay 48000 38400 0
    

    and a normal log of openwebrx for drm decoding(none-xHE-AAC) is:

    Got FAAD2 library
    Got FAAC library
    Got Opus library
    initrec 48000 1280 1
    initplay 48000 38400 0
    

    and if I run the dream directly, the output is:

     ./dream
    Got FAAD2 library
    Got FAAC library
    construct CSoundInPulse
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundPulse::Enumerate(): pa_init failed
    stoprec
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundPulse::Enumerate(): pa_init failed
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundPulse::Enumerate(): pa_init failed
    ~CSoundOutPulse
    stopplay
    ~CSoundPulse
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundOutPulse::Init_HW pa_init failed
    

    and in the docker container, the pulseaudio wasn't installed. and the none-xHE.AAC DRM decoding was also normal/good without the installation of pulseaudio.

    pulseaudio --version
    bash: pulseaudio: command not found
    

    I'm not good at this,maybe somebody can help me to fix the above problem related to the pulse audio. thanks.

     

    Last edit: dennis 2025-07-20
  • Allen

    Allen - 2025-10-08

    Hello
    I come from China.
    I also encountered the same problem
    Looking for a solution

     
  • Allen

    Allen - 2025-10-08

    root@Raspberrypi5:~# dream
    Got FAAD2 library
    Got FAAC library
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundPulse::Enumerate(): pa_init failed
    stoprec
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundPulse::Enumerate(): pa_init failed
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundPulse::Enumerate(): pa_init failed
    ~CSoundOutPulse
    stopplay
    ~CSoundPulse
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    pa_c_sync failed, error -1
    pa_init pa_context_connect failed
    CSoundOutPulse::Init_HW pa_init failed
    ^C
    root@Raspberrypi5:~# pulseaudio --check
    pulseaudio -k
    pulseaudio --start
    E: [pulseaudio] main.c: Failed to kill daemon: No such process
    W: [pulseaudio] main.c: This program is not intended to be run as root (unless - -system is specified).
    root@Raspberrypi5:~# dream
    Got FAAD2 library
    Got FAAC library
    stoprec
    stoprec
    ~CSoundInPulse
    stoprec
    ~CSoundPulse
    ~CSoundOutPulse
    stopplay
    ~CSoundPulse
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    pulseaudio output device 'auto_null', init done
    initrec 48000 1280 1
    CSoundInPulse::Init_HW()
    pulseaudio input device 'auto_null.monitor', init done
    ^C
    root@Raspberrypi5:~# ps aux|grep -i dream
    root 1298 0.0 0.0 6240 1632 pts/0 S+ 22:32 0:00 grep -i dream
    root@Raspberrypi5:~# ./dream -f drm-bbc.rec
    -bash: ./dream: No such file or directory
    root@Raspberrypi5:~# cd /root/apps/dream-2.2-v1418
    root@Raspberrypi5:~/apps/dream-2.2-v1418# ./dream -f drm-bbc.rec
    Got FAAD2 library
    Got FAAC library
    ~CSoundOutPulse
    stopplay
    ~CSoundPulse
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    pulseaudio output device 'auto_null', init done
    DecOpen AAC+SBR+SBR+SBR-CRC
    DecOpen sample rate 48000
    initplay 48000 38400 0
    CSoundOutPulse::close_HW()
    CSoundOutPulse::Init_HW()
    pulseaudio output device 'auto_null', init done
    zero output channels: 0
    zero output channels: 0
    The provided output buffer is too small.
    DecOpen AAC+SBR+SBR+SBR-CRC
    DecOpen sample rate 48000
    zero output channels: 0
    zero output channels: 0
    The provided output buffer is too small.
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    other error 4005
    other error 4005
    other error 4005
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    ^C
    root@Raspberrypi5:~/apps/dream-2.2-v1418# ./dream -f drm-bbc.rec --buffer-size=4 096
    ./dream: Unknown option '--buffer-size=4096' -- use '--help' for help
    root@Raspberrypi5:~/apps/dream-2.2-v1418# ./dream -f drm-bbc.rec
    Got FAAD2 library
    Got FAAC library
    ~CSoundOutPulse
    stopplay
    ~CSoundPulse
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    pulseaudio output device 'auto_null', init done
    DecOpen AAC+SBR+SBR+SBR-CRC
    DecOpen sample rate 48000
    initplay 48000 38400 0
    CSoundOutPulse::close_HW()
    CSoundOutPulse::Init_HW()
    pulseaudio output device 'auto_null', init done
    zero output channels: 0
    zero output channels: 0
    The provided output buffer is too small.
    DecOpen AAC+SBR+SBR+SBR-CRC
    DecOpen sample rate 48000
    zero output channels: 0
    zero output channels: 0
    The provided output buffer is too small.
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    other error 4005
    other error 4005
    other error 4005
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    *** playback UNDERFLOW
    ^C
    root@Raspberrypi5:~/apps/dream-2.2-v1418# ./dream -f drm-bbc.rec --sample-rate=4 4100
    ./dream: Unknown option '--sample-rate=44100' -- use '--help' for help
    root@Raspberrypi5:~/apps/dream-2.2-v1418# sudo apt --only-upgrade install openwe brx
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    openwebrx is already the newest version (1.2.93).
    0 upgraded, 0 newly installed, 0 to remove and 42 not upgraded.
    root@Raspberrypi5:~/apps/dream-2.2-v1418# journalctl -u pulseaudio --no-pager | grep -i underflow
    root@Raspberrypi5:~/apps/dream-2.2-v1418# ^C
    root@Raspberrypi5:~/apps/dream-2.2-v1418# dream
    Got FAAD2 library
    Got FAAC library
    stoprec
    stoprec
    ~CSoundInPulse
    stoprec
    ~CSoundPulse
    ~CSoundOutPulse
    stopplay
    ~CSoundPulse
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    pulseaudio output device 'auto_null', init done
    initrec 48000 1280 1
    CSoundInPulse::Init_HW()
    pulseaudio input device 'auto_null.monitor', init done
    ^C
    root@Raspberrypi5:~/apps/dream-2.2-v1418# dream -I pulse -O pulse
    Got FAAD2 library
    Got FAAC library
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    CSoundOutPulse::Init_HW pa_stream_connect_playback failed
    pulseaudio output device 'pulse', init done
    ^C
    root@Raspberrypi5:~/apps/dream-2.2-v1418# systemctl --user restart pulseaudio
    root@Raspberrypi5:~/apps/dream-2.2-v1418# dream -I pulse -O alsa
    Got FAAD2 library
    Got FAAC library
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    CSoundOutPulse::Init_HW pa_stream_connect_playback failed
    pulseaudio output device 'alsa', init done
    ^C
    root@Raspberrypi5:~/apps/dream-2.2-v1418# pulseaudio --check
    pulseaudio -k
    pulseaudio --start
    W: [pulseaudio] main.c: This program is not intended to be run as root (unless - -system is specified).
    root@Raspberrypi5:~/apps/dream-2.2-v1418# dream
    Got FAAD2 library
    Got FAAC library
    stoprec
    stoprec
    ~CSoundInPulse
    stoprec
    ~CSoundPulse
    ~CSoundOutPulse
    stopplay
    ~CSoundPulse
    initplay 48000 38400 0
    CSoundOutPulse::Init_HW()
    pulseaudio output device 'auto_null', init done
    initrec 48000 1280 1
    CSoundInPulse::Init_HW()
    pulseaudio input device 'auto_null.monitor', init done

     
  • Allen

    Allen - 2025-10-28

     
  • Allen

    Allen - 2025-10-28

    Dream works normally in OpenWebrx

     
  • Allen

    Allen - 2025-11-05
     

Log in to post a comment.