/roc

Real-time streaming over the network.

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

Roc: real-time streaming over the network

Roc is a toolkit for real-time media streaming over the network.

You can read about the project on the overview and features pages.

The toolkit consists of:

  • a C library;
  • a set of command-line tools;
  • a set of PulseAudio modules.

Key features:

  • real-time streaming with guaranteed latency;
  • converting between the sender and receiver clock domains;
  • restoring lost packets using Forward Erasure Correction codes;
  • CD-quality audio;
  • multiple profiles for different CPU and latency requirements;
  • portability;
  • relying on open, standard protocols.

Building

See documentation here.

In particular, see project dependencies and user instructions.

Running

Read the documentation and examples for command-line tools and PulseAudio modules.

See also our manual pages.

API

API reference and examples can be found here.

Platforms

See documentation on the supported platforms.

If you want to run Roc on an embedded system or a single-board computer, take a look at the tested boards and cross compiling pages.

Documentation

Releases

See releases page for the list of released versions and changelog page for the detailed list of changes.

Versions are assigned accroding to semantic versioning. There is no compatibility promise for the public API until 1.0.0 is released. Small breaking changes are possible.

Releases are tagged from the master branch, which is maintained to be stable. Actual development happens in the develop branch which is merged into master from time to time.

Plans

See the roadmap and the project board.

Continuous integration

See details here.

Branch Status
master
develop

Community

We have an announcements and discussion mailing list for users and developers: roc@freelists.org.

You can browse the list archive and join the list by visiting this page. You can also join the list by sending an email to roc-request@freelists.org with "subscribe" in the "Subject" field. You need to join to be able to post.

Contributing

Contributions are always welcome!

We use GitHub for issue tracking and code review. Feel free to file bug reports or feature requests, and send pull requests for review. The project internals are documented here and here. The developer's information can be found here.

Licensing

Roc source code is licensed under MPL-2.0. Roc PulseAudio modules are licensed under LGPL-2.1.

If Roc is built with OpenFEC support enabled, it must be distributed under a lincense compatible with CeCILL, a GPL-like and GPL-compatible license used for OpenFEC.

Authors

Maintainers and contributors are listed in AUTHORS.