Git Product home page Git Product logo

roc-pulse's People

Contributors

gavv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

twojstaryzdomu

roc-pulse's Issues

PulseAudio latency reporting

We should report roc sink and roc sink input latency to PulseAudio so it could be taken into account when PulseAudio calculates the overall latency.

PulseAudio automatic sink input latency

PulseAudio can automatically adjust sink latency. When this happens, the size of the buffer requested from sink inputs is changed as well.

We should handle these updates:

  • If the buffer size is larger than our target latency, we should increase our target latency, or the playback will break otherwise.

  • If the buffer size is smaller than our target latency and the network latency is small too, we can decrease our target latency.

We should add support for changing target latency dynamically. There are two sources of the target latency updates: we can measure network latency during RTCP and we can get sink latency updates from PulseAudio. Then we should use the maximum latency of these two.

In this issue, we should do the following:

  • add support for changing target latency at runtime
  • handle PulseAudio latency updates (we likely should implement update_sink_requested_latency callback)

PulseAudio modules

Implement pulseaudio module, providing source and sink that use roc as network transport.

Most likely, this module should be implemented on top of public API (#12) in a separate repo.

PulseAudio IDLE support

We need two features:

  • receiver should put pulseaudio sink input to idle mode when there are no clients
  • pulseaudio sink should put sender to idle mode when pulseaudio suspends sink

See also #20.

Pulseaudio sending config does not honor sample rate

When sending from pulse audio (Ubuntu 20 LTS Desktop) with resampling in PA Daemon config to 48000hz 2channel f16, setting is not honored or configurable for the PA module and it will not connect to Raspberry Pi ALSA session.

With 44100hz there is an inability for the resampler to keep up even on LOW with the Pi 4:

`22:01:05.473 [dbg] roc_packet: router: detected new stream: source=1807046489 flags=0x8u

22:01:05.473 [dbg] roc_audio: depacketizer: ts=320 loss_ratio=0.00000

22:01:05.513 [dbg] roc_packet: router: detected new stream: source=0 flags=0x10u

22:01:05.593 [dbg] roc_audio: watchdog: status: bbbbbbbbbbbbbbbbbbbb

22:01:05.663 [dbg] roc_packet: delayed reader: initial queue: delay=8820 queue=8961 packets=29

22:01:05.663 [dbg] roc_fec: fec reader: update payload size: next_esi=0 cur_size=0 new_size=1248

22:01:05.663 [dbg] roc_fec: fec reader: update source block size: cur_sblen=0 cur_rblen=0 new_sblen=20

22:01:05.663 [dbg] roc_audio: depacketizer: got first packet: zero_samples=8960

22:01:05.663 [dbg] roc_audio: latency monitor: latency=8641 target=8820 fe=1.00000 trim_fe=1.00000 adj_fe=0.91875

22:01:05.703 [dbg] roc_fec: fec reader: repair queue: dropped=10

22:01:05.703 [dbg] roc_fec: fec reader: got first packet in a block, start decoding: n_packets_before=7 sbn=31405

22:01:05.703 [dbg] roc_fec: fec reader: update repair block size: cur_sblen=20 cur_rblen=0 new_rblen=235

22:01:05.743 [dbg] roc_audio: watchdog: status: bbbbbbbb............

22:01:10.673 [dbg] roc_audio: latency monitor: latency=9085 target=8820 fe=1.00000 trim_fe=1.00000 adj_fe=0.91875

22:01:15.673 [dbg] roc_audio: latency monitor: latency=9231 target=8820 fe=1.00002 trim_fe=1.00002 adj_fe=0.91877
`

More configuration parameters

We need a way to configure the following parameters:

  • FEC scheme
  • FEC block size
  • packet length
  • network encoding, rate, and channel set

We need to add corresponding module parameters or probably add some more high-level parameters and deduce configuration from them.

PulseAudio modules not working with sanitizers

If we enable any clang/gcc sanitizer in SCons (e.g. --sanitizers=all), PulseAudio modules fail to load with an undefined symbol error:

E: [pulseaudio] ltdl-bind-now.c: Failed to open module /usr/lib64/pulse-12.2/modules/module-roc-sink.so: /usr/lib64/libroc.so: undefined symbol: __ubsan_vptr_type_cache
E: [pulseaudio] module.c: Failed to open module "module-roc-sink".

It seems this happens because they are not linked with -lusan and -lasan, despite that we're using clang++ with -fsanitize option as a linker.

Linking with these two libraries manually is likely not a good idea since there may be multiple versions of them on the system and their location is disto-dependent.

Ideally clang++ should add them automatically, but for some reason it doesn't do it.

PulseAudio module parameters

We should add more receiver and sender parameters to PulseAudio modules, e.g. target latency and no playback timeout. Tweaking some parameters may be critical for fixing playback.

roc_sender should quiesce UDP traffic when not playing audio

Currently, the roc_sender module is sending heavy UDP traffic whether the client is playing audio or not. It can impact the performance of the network when not playing anything and/or lead to unnecessary charges. That traffic is seen as redundant in the network, seeing as it does not lead to anything being played. Unless the sender module is unloaded manually, there is no way to stop the traffic. The redundant traffic precludes the use of roc over metered connections without prior access to the Pulseaudio load-module/unload-module commands, which is greatly impractical.
Ideally, the sender should stop sending any data to the client as soon as playback is stopped.

PulseAudio automatic sink input rate

Currently roc sink input always uses the same output rate.

We need to do the following:

  • when the sink input is attached to a sink, we should configure roc receiver to use the sink rate

  • when the sink we are connected to changes its rate, we should configure roc receiver to use the new rate

This will require support for dynamic output rate updates.

detect installed libraries/sources to avoid unnecessary steps

It should be possible to detect a library and its sources are installed locally without the added need to download libasound, libsndfile, libtool and jsonc. Each step takes time.
It's far quicker to install those via a distribution-based mechanism (deb,rpm etc.) than wait until those download & compile.
Also, compiling pulseaudio isn't strictly necessary either, only configuring it so that config.h is generated.

Upstreaming progress?

Hi! Our pulseaudio audio setup over the network is currently very choppy when playing music over the network with Pulseaudio (we use the native TCP-based protocol), so I was looking for something that could be better. I came across roc, and I think UDP and FEC would really help. In the blog post, I read that eventually, a roc plugin might get upstreamed into Pulseaudio (if they accept). Has there been talk with the Pulseaudio people yet? What do they think?

Build pulseaudio modules without building pulseaudio?

This is my steps for build:

  1. unpack roc-toolkit-0.1.5 sources
  2. unpack pulseaudio-13.0 sources (same version as installed into system)
  3. build with including unpacked pulseaudio source files and linking with system libraries

Got some problems and have questions. Do not know pulseaudio from the inside, so don't be mad:

  • hardcoded append /src/.libs/ while searching pulseaudio libraries.
    Pulseaudio installed system-wide already and if set --with-pulseaudio-build-dir=/usr/lib64/pulseaudio/ scons failed.
  • Does you really need option --with-pulseaudio-build-dir ? As I can see option --with-libraries has same function. Why not add same search for every LIBPATH as for pa_build_dir? This change do not broke anything and fix this build type(use already installed PA libs + unpacked sources)
  • config.h generating. Its confuse me a lot, why we need do this? why this include not guarded by #ifdef HAVE_CONFIG_H?
    If compare with other pulseaudio modules we can found what config.h.in was provided by developers(but there are only with minimal defines)

After some research I found minimal needs for successful compilation pulseaudio modules:

  1. #define PACKAGE

  2. #define PACKAGE_VERSION "X.Y.Z"
    same as pulseaudio sources version? Scons already have ROC_PULSE_VERSION so there is no problem here?

  3. #define HAVE_ATOMIC_BUILTINS only if compiler support __sync_bool_compare_and_swap().
    Its needed because if not set this on x64_86 platform (from src/pulsecore/atomic.h:320)

#elif defined(__GNUC__) && (defined(__amd64__) || defined(__x86_64__))   

#warn "The native atomic operations implementation for AMD64 has not been tested thoroughly. libatomic_ops is known to not work properly on AMD64 and your gcc version is too old for the gcc-builtin atomic ops support. You have three options now: test the native atomic operations implementation for AMD64, fix libatomic_ops, or upgrade your GCC."

I think this is for old compilers from 2008. Today stable gcc and clang do not understand #warn directive, compiler get error and abort compilation. The problem here only #warn directive, replacing #warn by #warning fix this(needed only for x86_64).
Best way is check if all compilers on all platforms have this feature and add static define if possible.

  1. #include <sys/socket.h>
    always needed by pulseaudio core
pulseaudio-13.0/src/pulsecore/core-util.h:295:58: error: unknown type name 'socklen_t'; did you mean '__socklen_t'?
int pa_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

With this you do not need run configure on pulseaudio sources anymore.

undefined symbol: pthread_atfork

Hi there! I'm trying to get roc running on a raspberry pi (with 64bit arm).

I've used the rocstreaming/toolchain-aarch64-linux-gnu container image to cross-compile

Inside the toolchain container, I used the cmake command cmake .. -DHOST=aarch64-linux-gnu -DPULSEAUDIO_VERSION=14.2

Then I copied the built module-roc-sink.so and module-roc-sink-input.so to /usr/lib/pulse-14.2/modules/ on my raspberry pi.

Then I configured default.pa with : load-module module-roc-sink remote_ip=<some ip>, and performed a pulse audio restart.

This resulted in:

Dec 26 08:56:53 dev1 pulseaudio[2070]: E: [pulseaudio] ltdl-bind-now.c: Failed to open module /usr/lib/pulse-14.2/modules/module-roc-sink.so: /usr/lib/pulse-14.2/modules/module-roc-sink.so: undefined symbol: pthread_atfork
Dec 26 08:56:53 dev1 pulseaudio[2070]: /usr/bin/pulseaudio: symbol lookup error: /usr/lib/pulse-14.2/modules/module-roc-sink.so: undefined symbol: pthread_atfork

I've looked through CMakelists.txt, but don't see anything related to pthreads. Any tips would be much appreciated.

Target system info:

Debian bullseye 11 (Raspian)
Linux dev1 5.15.76-v8+ #1597 SMP PREEMPT Fri Nov 4 12:16:41 GMT 2022 aarch64 GNU/Linux
Raspberry PI Zero W 2

Compilation system:
Fedora 37
Linux toolbox 6.0.11-300.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Dec 2 20:47:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

compile_commands.json:

[
{
  "directory": "/var/home/ramblurr/src/mycroft/roc-pulse/build",
  "command": "/opt/toolchain/bin/aarch64-linux-gnu-gcc -DROC_PULSEAUDIO_VERSION=14.2 -Dmodule_roc_sink_input_EXPORTS -I/var/home/ramblurr/src/mycroft/roc-pulse/src -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/pulseaudio-src/src -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/libtool-src/libltdl -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/roc-prefix/include  -fPIC -Wall -Wextra -Wno-unused-variable -O3 -DNDEBUG -fPIC -o CMakeFiles/module-roc-sink-input.dir/src/module-roc-sink-input.c.o -c /var/home/ramblurr/src/mycroft/roc-pulse/src/module-roc-sink-input.c",
  "file": "/var/home/ramblurr/src/mycroft/roc-pulse/src/module-roc-sink-input.c"
},
{
  "directory": "/var/home/ramblurr/src/mycroft/roc-pulse/build",
  "command": "/opt/toolchain/bin/aarch64-linux-gnu-gcc -DROC_PULSEAUDIO_VERSION=14.2 -Dmodule_roc_sink_EXPORTS -I/var/home/ramblurr/src/mycroft/roc-pulse/src -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/pulseaudio-src/src -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/libtool-src/libltdl -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/roc-prefix/include  -fPIC -Wall -Wextra -Wno-unused-variable -O3 -DNDEBUG -fPIC -o CMakeFiles/module-roc-sink.dir/src/module-roc-sink.c.o -c /var/home/ramblurr/src/mycroft/roc-pulse/src/module-roc-sink.c",
  "file": "/var/home/ramblurr/src/mycroft/roc-pulse/src/module-roc-sink.c"
},
{
  "directory": "/var/home/ramblurr/src/mycroft/roc-pulse/build",
  "command": "/opt/toolchain/bin/aarch64-linux-gnu-gcc -DROC_PULSEAUDIO_VERSION=14.2 -I/var/home/ramblurr/src/mycroft/roc-pulse/src -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/pulseaudio-src/src -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/libtool-src/libltdl -isystem /var/home/ramblurr/src/mycroft/roc-pulse/build/roc-prefix/include  -fPIC -Wall -Wextra -Wno-unused-variable -O3 -DNDEBUG -o CMakeFiles/rocpulse_helpers.dir/src/rocpulse_helpers.c.o -c /var/home/ramblurr/src/mycroft/roc-pulse/src/rocpulse_helpers.c",
  "file": "/var/home/ramblurr/src/mycroft/roc-pulse/src/rocpulse_helpers.c"
}
]

When i use another sink for my local couputer, Roc closes the session

Hello evryone. I dont know is this a bug or feature but it puts me in trouble :). When i use another audio source on my local coumputer, Roc server is closes the session. When i restart my local pulseaudio it connect again but if i dont use roc sink it closes again. This is my log:

note: this is my first github issue and sorry for my bad english

15:57:09.524 [inf] roc_pipeline: receiver: creating session: src_addr=192.168.15.180:35718 dst_addr=0.0.0.0:10001
15:57:09.525 [dbg] roc_packet: delayed reader: initializing: delay=8820
15:57:09.525 [dbg] roc_fec: of decoder: initializing: codec=rs m=8
15:57:09.525 [dbg] roc_audio: depacketizer: initializing: n_channels=2
15:57:09.526 [dbg] roc_audio: watchdog: initializing: max_blank_duration=96000 max_drops_duration=96000 drop_detection_window=14400
15:57:09.529 [dbg] roc_audio: resampler: initializing: window_interp=128 window_size=32 frame_size=640 channels_num=2
15:57:09.529 [dbg] roc_audio: latency monitor: initializing: target_latency=8820 in_rate=44100 out_rate=48000
15:57:09.530 [dbg] roc_packet: router: detected new stream: source=1262297436 flags=0x8u
15:57:09.530 [dbg] roc_audio: depacketizer: ts=320 loss_ratio=0.00000
15:57:09.624 [dbg] roc_packet: router: detected new stream: source=0 flags=0x10u
15:57:09.645 [dbg] roc_audio: watchdog: status: bbbbbbbbbbbbbbbbbbbb
15:57:09.686 [dbg] roc_packet: delayed reader: initial queue: delay=8820 queue=8961 packets=29
15:57:09.686 [dbg] roc_fec: fec reader: update payload size: next_esi=0 cur_size=0 new_size=1248
15:57:09.687 [dbg] roc_fec: fec reader: update source block size: cur_sblen=0 cur_rblen=0 new_sblen=20
15:57:09.687 [dbg] roc_fec: fec reader: got first packet in a block, start decoding: n_packets_before=0 sbn=53602
15:57:09.688 [dbg] roc_fec: fec reader: update repair block size: cur_sblen=20 cur_rblen=0 new_rblen=235
15:57:09.688 [dbg] roc_audio: depacketizer: got first packet: zero_samples=8000
15:57:09.695 [dbg] roc_audio: latency monitor: latency=9259 target=8820 fe=1.00000 trim_fe=1.00000 adj_fe=0.91875
15:57:09.786 [dbg] roc_audio: watchdog: status: bbbbb...............
15:57:14.704 [dbg] roc_audio: latency monitor: latency=0 target=8820 fe=1.00001 trim_fe=1.00001 adj_fe=0.91876
15:57:14.724 [dbg] roc_audio: watchdog: status: ..............ibbbbb
15:57:14.865 [dbg] roc_audio: watchdog: status: bbbbbbbbbbbbbbbbbbbb
15:57:14.895 [dbg] roc_audio: latency monitor: latency out of bounds: latency=-9134 min=-8820
15:57:14.895 [inf] roc_pipeline: receiver: removing session

Implement pulseaudio sink and sink-input

  • support pulseaudio in scons
  • proof-of-concept module-roc-sink and module-roc-sink-input
  • travis build

Update docs:

  • add docs
  • update building instructions
  • update licensing

Packaging: Launchpad: From #446 , can't build with pulseaudio modules, Launchpad have no internet connection

@gavv This is extension of roc-streaming/roc-toolkit#446

I was packaged roc-toolkit-pulse (rock-toolkit with pulseaudio module) for debian based distros (ubuntu) , you can see at here : roc-toolkit-pulse and want to publish at Launchpad as PPA.
But the problem is, to build with pulseaudio module roc-toolkit need to download necessory 3rd party sources, like pulseaudio, libtool etc. and from the launchpad build environment doesn't have any external internet connection so that they that can be downloaded. you can see, the buildlog, I have explicitly check with ping, wget, curl without success. Later I discovered another issue on launchpad itself which confirm my suspect : Launchpad issue

Now the question is how to solve ? So if we self contained every 3rd party sources that will be needed to build with pulseaudio but this will make a high maintained package and we don't want that right ? Now what ?

So, Can we introduce a option like --with-openfec-includes (which is for openfec) for pulseaudio also ? This make launchpad build sucessfull as we can get the pulseaduio headers from libpulse-dev this package. Or this pulseaudio module creation should be leave for the pulseaudio side ? Or should I drop this package for pulseaudio module ?

Issues building with pulseaudio 13.99.1

Hi,

I'm trying to build against Pulseaudio 13.99.1, however I'm having issues with that. Tried on master and on develop. It doesn't seem to have that same issue with pulseaudio 13.0

I'm running the build with scons -Q --enable-pulseaudio-modules --build-3rdparty=openfec,pulseaudio:13.99.1 | tee build.log

I have attached build.log

Thanks
build.log

PulseAudio sink suspend on idle problem

module-suspend-on-idle from PulseAudio 4.0 suspends Roc sink when it stays idle for some time (no sink inputs connected to it) and resumes when a new sink input appears. For some reason, the process of resuming takes pretty much time, up to 5 seconds.

I wasn't able to reproduce it with module-suspend-on-idle from PulseAudio 11.1. On that version, PulseAudio never suspends Roc sink.

PulseAudio sink input aborts on start

$ pactl load-module module-roc-sink-input
Connection failure: Connection terminated
$ pulseaudio -vvv
....
I: [pulseaudio] client.c: Created 2 "Native client (UNIX socket client)"
D: [pulseaudio] protocol-native.c: Protocol version: remote 29, local 29
I: [pulseaudio] protocol-native.c: Got credentials: uid=1000 gid=1000 success=1
D: [pulseaudio] protocol-native.c: SHM possible: yes
D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for pactl
I: [pulseaudio] roc_lib: roc_context: opening context
D: [pulseaudio] roc_lib: pool: initializing: chunk_size=25616 object_size=400 objects_per_chunk=64
D: [pulseaudio] roc_lib: pool: initializing: chunk_size=131600 object_size=2056 objects_per_chunk=64
D: [pulseaudio] roc_lib: pool: initializing: chunk_size=131104 object_size=65544 objects_per_chunk=2
I: [pulseaudio] roc_lib: roc_receiver: opening receiver
I: [pulseaudio] roc_netio: udp receiver: opened port 0.0.0.0:10001
I: [pulseaudio] roc_lib: roc_receiver: bound to 0.0.0.0:10001 rtp_rsm8_source
I: [pulseaudio] roc_netio: udp receiver: opened port 0.0.0.0:10002
I: [pulseaudio] roc_lib: roc_receiver: bound to 0.0.0.0:10002 rsm8_repair
I: [pulseaudio] roc_lib: roc_context: starting context
D: [pulseaudio] roc_netio: transceiver: starting event loop
D: [pulseaudio] module-stream-restore.c: Not restoring device for stream sink-input-by-media-name:Roc Receiver, because already set to 'alsa_output.platform-audiocodec.analog-stereo'.
D: [pulseaudio] module-intended-roles.c: Not setting device for stream Roc Receiver, because already set.
D: [pulseaudio] sink-input.c: Negotiated format: pcm, format.sample_format = "\"float32le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
I: [pulseaudio] sink-input.c: Trying to change sample rate
I: [pulseaudio] sink-input.c: Rate changed to 44100 Hz
I: [pulseaudio] module-stream-restore.c: Restoring volume for sink input sink-input-by-media-name:Roc Receiver.
D: [pulseaudio] module-suspend-on-idle.c: Sink alsa_output.platform-audiocodec.analog-stereo becomes busy, resuming.
D: [pulseaudio] module-suspend-on-idle.c: Sink alsa_output.platform-audiocodec.analog-stereo becomes idle, timeout in 5 seconds.
I: [pulseaudio] resampler.c: Forcing resampler 'copy', because of fixed, identical sample rates.
D: [pulseaudio] resampler.c: Resampler:
D: [pulseaudio] resampler.c:   rate 44100 -> 44100 (method copy)
D: [pulseaudio] resampler.c:   format float32le -> s16le (intermediate s16le)
D: [pulseaudio] resampler.c:   channels 2 -> 2 (resampling 2)
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
I: [pulseaudio] sink-input.c: Created input 0 "Roc Receiver" on alsa_output.platform-audiocodec.analog-stereo with sample spec float32le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] sink-input.c:     media.name = "Roc Receiver"
I: [pulseaudio] sink-input.c:     module-stream-restore.id = "sink-input-by-media-name:Roc Receiver"
D: [alsa-sink-SUNXI-CODEC sndcodec-0] alsa-sink.c: Requested to rewind 352800 bytes.
D: [alsa-sink-SUNXI-CODEC sndcodec-0] alsa-sink.c: Limited to 292256 bytes.
D: [alsa-sink-SUNXI-CODEC sndcodec-0] alsa-sink.c: before: 73064
D: [alsa-sink-SUNXI-CODEC sndcodec-0] alsa-sink.c: after: 73064
D: [alsa-sink-SUNXI-CODEC sndcodec-0] alsa-sink.c: Rewound 292256 bytes.
D: [alsa-sink-SUNXI-CODEC sndcodec-0] sink.c: Processing rewind...
D: [alsa-sink-SUNXI-CODEC sndcodec-0] sink-input.c: Have to rewind 292256 bytes on render memblockq.
D: [alsa-sink-SUNXI-CODEC sndcodec-0] source.c: Processing rewind...
E: [alsa-sink-SUNXI-CODEC sndcodec-0] sink-input.c: Assertion 'tchunk.length > 0' failed at pulsecore/sink-input.c:917, function pa_sink_input_peek(). Aborting.

pulseaudio modules not build because pulseaudio is now only meson build system

when try to build roc

>>> ./configure --host= CXX=/usr/bin/clang++ CXXLD=/usr/bin/clang++ CC=/usr/bin/clang-12 CCLD=/usr/bin/clang-12 AR=/usr/bin/llvm-ar RANLIB=/usr/bin/llvm-ranlib CXXFLAGS='-w -fomit-frame-pointer -O2 -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/include' CFLAGS='-w -fomit-frame-pointer -O2 -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/include' LDFLAGS='-L/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/lib -L/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/lib -L/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/lib -Wl,-rpath-link=/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/lib -Wl,-rpath-link=/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/lib -Wl,-rpath-link=/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/lib' LIBJSON_CFLAGS=" " LIBJSON_LIBS="-ljson-c" LIBSNDFILE_CFLAGS=" " LIBSNDFILE_LIBS="-lsndfile" --enable-shared --disable-static --disable-tests --disable-manpages --disable-orc --disable-webrtc-aec --disable-openssl --disable-neon-opt --without-caps
/bin/sh: línea 1: ./configure: No existe el fichero o el directorio
>>> ./configure --host= CXX=/usr/bin/clang++ CXXLD=/usr/bin/clang++ CC=/usr/bin/clang-12 CCLD=/usr/bin/clang-12 AR=/usr/bin/llvm-ar RANLIB=/usr/bin/llvm-ranlib CXXFLAGS='-w -fomit-frame-pointer -O2 -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/include' CFLAGS='-w -fomit-frame-pointer -O2 -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/include -I/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/include' LDFLAGS='-L/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/lib -L/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/lib -L/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/lib -Wl,-rpath-link=/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/ltdl-2.4.6/lib -Wl,-rpath-link=/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/json-c-0.12-20140410/lib -Wl,-rpath-link=/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/sndfile-1.0.28/lib' LIBJSON_CFLAGS=" " LIBJSON_LIBS="-ljson-c" LIBSNDFILE_CFLAGS=" " LIBSNDFILE_LIBS="-lsndfile" --enable-shared --disable-static --disable-tests --disable-manpages --disable-orc --disable-webrtc-aec --disable-openssl --disable-neon-opt --without-caps
/bin/sh: línea 1: ./configure: No existe el fichero o el directorio

but pulseaudio is now meson only build system

┌─┤[$]|[sl1pkn07]|[sL1pKn07]|[/tmp/makepkg/roc-git/src/roc/3rdparty/x86_64-pc-linux-gnu/clang-12.0.0-release/build/pulseaudio-14.99.2/src/pulseaudio-14.99.2]|
└───╼  ls
total 216
drwxr-xr-x 11 sl1pkn07 users   660 jun 16 11:24 .
drwxr-xr-x  3 sl1pkn07 users    80 jun 27 15:00 ..
-rw-r--r--  1 sl1pkn07 users  3273 jun 16 11:24 CODE_OF_CONDUCT.md
-rw-r--r--  1 sl1pkn07 users  2866 jun 16 11:24 CONTRIBUTING.md
drwxr-xr-x  2 sl1pkn07 users    60 jun 16 11:24 coverity
drwxr-xr-x  2 sl1pkn07 users    80 jun 16 11:24 doc
drwxr-xr-x  2 sl1pkn07 users   100 jun 16 11:24 doxygen
-rwxr-xr-x  1 sl1pkn07 users  6458 jun 16 11:24 git-version-gen
-rw-r--r--  1 sl1pkn07 users 17989 jun 16 11:24 GPL
-rw-r--r--  1 sl1pkn07 users 26527 jun 16 11:24 LGPL
-rw-r--r--  1 sl1pkn07 users   377 jun 16 11:24 libpulse-mainloop-glib.pc.in
-rw-r--r--  1 sl1pkn07 users   341 jun 16 11:24 libpulse.pc.in
-rw-r--r--  1 sl1pkn07 users   367 jun 16 11:24 libpulse-simple.pc.in
-rw-r--r--  1 sl1pkn07 users  2192 jun 16 11:24 LICENSE
-rw-r--r--  1 sl1pkn07 users   256 jun 16 11:24 .mailmap
drwxr-xr-x  2 sl1pkn07 users   420 jun 16 11:24 man
-rw-r--r--  1 sl1pkn07 users 31826 jun 16 11:24 meson.build
-rw-r--r--  1 sl1pkn07 users  7024 jun 16 11:24 meson_options.txt
-rw-r--r--  1 sl1pkn07 users 20820 jun 16 11:24 NEWS
drwxr-xr-x  2 sl1pkn07 users  1180 jun 16 11:24 po
-rw-r--r--  1 sl1pkn07 users 11741 jun 16 11:24 PROTOCOL
-rw-r--r--  1 sl1pkn07 users   504 jun 16 11:24 PulseAudioConfig.cmake.in
-rw-r--r--  1 sl1pkn07 users   489 jun 16 11:24 PulseAudioConfigVersion.cmake.in
-rw-r--r--  1 sl1pkn07 users  1210 jun 16 11:24 pulseaudio.supp
-rw-r--r--  1 sl1pkn07 users 12915 jun 16 11:24 pulseaudio.svg
-rw-r--r--  1 sl1pkn07 users 16110 jun 16 11:24 pulseaudio-text.svg
-rw-r--r--  1 sl1pkn07 users   911 jun 16 11:24 README
drwxr-xr-x  3 sl1pkn07 users   140 jun 16 11:24 scripts
drwxr-xr-x  4 sl1pkn07 users    80 jun 16 11:24 shell-completion
drwxr-xr-x  8 sl1pkn07 users   220 jun 16 11:24 src
-rw-r--r--  1 sl1pkn07 users     8 jun 16 11:24 .tarball-version
-rw-r--r--  1 sl1pkn07 users  1287 jun 16 11:24 todo
drwxr-xr-x  2 sl1pkn07 users   180 jun 16 11:24 vala

greetings

PulseAudio modules not working on Orange Pi Lite2

roc-recv works, but module-roc-sink-input constantly interrupts playback:

I: [alsa-sink-USB Audio] roc_pipeline: receiver: creating session
D: [alsa-sink-USB Audio] roc_packet: delayed reader: initializing: delay=8820
D: [alsa-sink-USB Audio] roc_fec: of decoder: initializing Reed-Solomon decoder
D: [alsa-sink-USB Audio] roc_audio: watchdog: initializing: max_blank_duration=88200 max_drops_duration=88200 drop_detection_window=13230
D: [alsa-sink-USB Audio] roc_audio: resampler: initializing: window_interp=128 window_size=32 frame_size=640 channels_num=2
D: [alsa-sink-USB Audio] roc_audio: resampler reader: initializing window
D: [alsa-sink-USB Audio] roc_audio: latency monitor: initializing: target_latency=8820 in_rate=44100 out_rate=44100
D: [alsa-sink-USB Audio] roc_packet: router: detected new stream: source=2072940300 flags=0x8u
D: [alsa-sink-USB Audio] roc_packet: router: detected new stream: source=1451934384 flags=0x10u
D: [alsa-sink-USB Audio] roc_packet: delayed reader: initial queue: delay=8820 queue=79104 packets=256
D: [alsa-sink-USB Audio] roc_packet: delayed reader: trimmed queue: delay=8820 queue=8961 packets=29
D: [alsa-sink-USB Audio] roc_fec: fec reader: repair queue: dropped=21
D: [alsa-sink-USB Audio] roc_audio: depacketizer: got first packet: zero_samples=0
D: [alsa-sink-USB Audio] roc_fec: fec reader: repair queue: dropped=21
D: [alsa-sink-USB Audio] roc_audio: depacketizer: ts=1976227423 loss_ratio=0.00000
D: [alsa-sink-USB Audio] roc_fec: fec reader: repair queue: dropped=21
D: [alsa-sink-USB Audio] roc_fec: fec reader: repair queue: dropped=21
D: [alsa-sink-USB Audio] roc_fec: fec reader: repair queue: dropped=21
D: [alsa-sink-USB Audio] roc_fec: fec reader: repair queue: dropped=15
D: [alsa-sink-USB Audio] roc_fec: fec reader: got first packet in a block, start decoding: n_packets_before=12 blk_sn=3948
D: [alsa-sink-USB Audio] roc_audio: latency monitor: latency=1546 target=8820 fe=1.00000 trim_fe=1.00000 adj_fe=1.00000
D: [alsa-sink-USB Audio] roc_fec: of decoder: repaired 0/28/30 ..XXXXXXXXXXXXXXXXXX xxxxxxxxxx
D: [alsa-sink-USB Audio] roc_audio: watchdog: status: ............ibbbbbbb
D: [alsa-sink-USB Audio] roc_audio: depacketizer: dropping late packet: ts=1976244063 pkt_ts=1976237609
D: [alsa-sink-USB Audio] roc_audio: depacketizer: dropping late packet: ts=1976244063 pkt_ts=1976237918
D: [alsa-sink-USB Audio] roc_audio: depacketizer: dropping late packet: ts=1976244063 pkt_ts=1976238227
D: [alsa-sink-USB Audio] roc_audio: depacketizer: dropping late packet: ts=1976244063 pkt_ts=1976238536
D: [alsa-sink-USB Audio] roc_fec: of decoder: repaired 0/24/30 ......XXXXXXXXXXXXXX xxxxxxxxxx
D: [alsa-sink-USB Audio] roc_audio: depacketizer: fetched=0 dropped=4
D: [alsa-sink-USB Audio] roc_audio: watchdog: status: bbbbbbbbbbbbbBbbbbbb
D: [alsa-sink-USB Audio] roc_audio: latency monitor: latency out of bounds: latency=-12611 min=-8820
I: [alsa-sink-USB Audio] roc_pipeline: receiver: removing session

This box is aarch64 (have not tested it before) and uses pulseaudio 8.0 (also have not tested it before).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.