Skip to content

SingularityCommLab/pyringmaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ringmaster-python

This project is a Python implementation of Ringmaster.

The original C++ code is from ringmaster and lng205/ringmaster.

Dependencies

To run the code, you need to install the following dependencies on Linux (Ubuntu):

sudo apt install g++ libvpx-dev libsdl2-dev

Download the demo raw ice_4cif_30fps.y4m.

Installation

To set up the environment using conda:

conda create -n pyringmaster python=3.11
conda activate pyringmaster
conda install -c conda-forge gcc # Alternative
pip install -r requirements.txt

Alternatively, to set up the environment using venv:

python -m venv pyringmaster
source pyringmaster/bin/activate
pip install -r requirements.txt

Usage

Recommended sender invocation:

python -m app.video_sender 12345 ice_4cif_30fps.y4m

Recommended receiver invocation:

python -m app.video_receiver 127.0.0.1 12345 704 576 --fps 30 --cbr 500

Direct execution from app/video_sender.py and app/video_receiver.py is still supported for convenience.

Tests

Run the lightweight regression suite with:

python -m unittest discover -s tests -v

These tests cover protocol serialization, file-descriptor reads, and poller activation semantics.

Structure

  • app/: Sender/receiver entry points, VP9 encoder/decoder logic, and wire protocol definitions.
  • utils/: File-descriptor wrappers, socket helpers, polling, timerfd integration, timestamps, and FFI utilities.
  • video/: Raw frame containers, SDL display code, and the YUV4MPEG reader.
  • tests/: Pure-Python regression tests for the refactored infrastructure layer.

About

Python implementation for Ringmaster

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages