roc-streaming / roc-toolkit

Real-time audio streaming over the network.
https://roc-streaming.org
Mozilla Public License 2.0
1.06k stars 213 forks source link

document openwrt port / repository #355

Closed ddimension closed 11 months ago

ddimension commented 4 years ago

Hi!

I've setup a openwrt package repository for roc and the needed dependencies. After a bit more cleanup I'll try to get it pulled.

Please document it in your wiki: https://github.com/ddimension/openwrt-packages-with-roc Users may include this and enable building roc. It wrks fine with small mips boxes little optimizations.

Thanks for this great software. BTW, is there a mailinglist for discussion?

Kind regards,

André

gavv commented 4 years ago

Hi, that's cool, thanks!

I'm not familiar with OpenWrt, what kind of instructions would be expected? I mean, would be a link to your repo enough, or users need some additional hints how to use it?

I think we should add it to the cookbook. Feel free to send a PR if you have time (the source code of the docs is here) or just give me some hints and I'll it by myself.

Yes, we have a mailing list. See here: https://roc-project.github.io/roc/docs/about_project/contacts.html

Since people are using Roc on MIPS, I guess we should add it to our CI... I'll create an issue. What compiler and libc versions do you use? Could you please also post your value of $(REAL_GNU_TARGET_NAME)? Also, what do you mean by "works fine with small mips boxes little optimizations"? Do you mean your patch that changes the sample rate?

Some random notes on your commits:

  1. If you're building Roc with --disable-tests, you don't need CppUTest dependency. BTW, in develop branch (will become 0.2) tests are now disabled by default and CppUTest is removed from user cookbook.

  2. Just a warning: changing DefaultSampleRate from 44100 to 48000 makes your build incompatible with the default build, since so far we don't have any session parameter negotiation. Negotiation capability will be added in 0.2 and custom sample rates will be added in 0.3. However we can think about adding a command-line switch to force non-default rate before 0.2, so that it wouldn't be necessary to patch Roc. If you think it makes sense, please file a new issue.

  3. FYI: multicast fix is already available in develop branch (98f7d7e560d38a4130f6c4000e0398ee97258084, 648e0806ee407fad1397fe03ae3fae86610b403a, 4dad40fcd50a113e3daa4205858a0c4bce691f30). They're not merged into master because the first commit breaks command-line compatibility and so they're waiting 0.2. But feel free to use those patches if you want.

ddimension commented 4 years ago

Hi Victor! Am 10.05.20 um 16:27 schrieb Victor Gaydov:

Hi, that's cool, thanks!

I'm not familiar with OpenWrt, what kind of instructions would be expected? I mean, would be a link to your repo enough, or users need some additional hints how to use it?

OpenWRT is a platform for routers and accesspoints. Usually with small mips cpus or for newest stuff with arm. I'm think off some lines of instructions for the build and setup.

I think we should add it to the cookbook https://roc-project.github.io/roc/docs/building/user_cookbook.html. Feel free to send a PR if you have time (the source code of the docs is here https://github.com/roc-project/roc/tree/master/docs/sphinx) or just give me some hints and I'll it by myself.

I'll check the develop branch at the weekend and after cleaning up, I'll prepare that.

Yes, we have a mailing list. See here: https://roc-project.github.io/roc/docs/about_project/contacts.html

Since people are using Roc on MIPS, I guess we should add it to our CI... I'll create an issue. What compiler and libc versions do you use? Could you please also post your value of |$(REAL_GNU_TARGET_NAME)|?

You can configure to use up to gcc9 for the openwrt build. Openwrt uses musl als libc. It runs on ARM, MIPS, and whatever exists. The REAL_GNU_TARGET_NAME depends on the arch. I've used roc with ARM and MIPS.

Also, what do you mean by "works fine with small mips boxes little optimizations"? Do you mean your patch that changes the sample rate?

Yes, my sceniario is that I extend every AP here with an usb-soundcard and roc for audio distribution. These little usb soundcard seem to only support 48k. Resampling is too much the little thing. That's why I patched roc to 48k.

Some random notes on your commits:

1.

If you're building Roc with |--disable-tests|, you don't need CppUTest dependency. BTW, in develop branch (will become 0.2) tests are now disabled by default and CppUTest is removed from user
cookbook.

OK, thanks for the hint. Took me a day to get CppuTest integrated into OpenWRT because of some FPU bugs...

2.

Just a warning: changing DefaultSampleRate from 44100 to 48000 makes your build incompatible with the default build, since so far we don't have any session parameter negotiation. Negotiation
capability will be added in 0.2 and custom sample rates will be added in 0.3. However we can think about adding a command-line switch to force non-default rate before 0.2, so that it wouldn't be
necessary to patch Roc. If you think it makes sense, please file a new issue.That sounds good. I'll come back.

3.

FYI: multicast fix is already available in develop branch (98f7d7e <https://github.com/roc-project/roc/commit/98f7d7e560d38a4130f6c4000e0398ee97258084>, 648e080
<https://github.com/roc-project/roc/commit/648e0806ee407fad1397fe03ae3fae86610b403a>, 4dad40f <https://github.com/roc-project/roc/commit/4dad40fcd50a113e3daa4205858a0c4bce691f30>). They're not
merged into master because the first commit breaks command-line compatibility and so they're waiting 0.2. But feel free to use those patches if you want.

Very good. Your setup seemed so complex I couldn't find a way for proper multicast integration.

Thanks,

André

gavv commented 4 years ago

I'll check the develop branch at the weekend and after cleaning up, I'll prepare that.

Thanks!

The REAL_GNU_TARGET_NAME depends on the arch. I've used roc with ARM and MIPS.

Yeah, I mean the actual example of the target name, which you were using for mips boxes. I'd like to add a similar target to our CI.

Yes, my sceniario is that I extend every AP here with an usb-soundcard and roc for audio distribution. These little usb soundcard seem to only support 48k. Resampling is too much the little thing. That's why I patched roc to 48k.

I see.

gavv commented 4 years ago

I've opened an issue for CI: #359.

gavv commented 4 years ago

BTW, let's keep this issue open, so that I don't forget about it :)