Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

231 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tinystreamer

Tinystreamer is an experimental project that adapts higher-level GStreamer-style concepts to RTOS-class systems.

Project goal

The long-term goal is to bring a portable streaming model to constrained, non-Linux platforms across multiple CPU and SoC families, including Cortex-M and Cortex-A class devices. Rather than treating a stream as only raw throughput, the focus is on event timing, clock discipline, and synchronization as first-class concerns.

Why GStreamer-inspired concepts

On small systems, sustained high-throughput media processing is often unrealistic. What is realistic, and useful, is a network of inexpensive distributed nodes that share a notion of time.

That shared time can be used to:

  • align sensor captures across devices
  • schedule coordinated events
  • correlate data streams after transport jitter

This project uses a GStreamer-like abstraction to make sync strategies pluggable.

This is not limited to networked transport. The same streaming pipeline model is useful for local capture paths as well, such as ADC sample streams, where buffering, timing, and downstream scheduling still matter.

Current implementation

The repository currently includes:

  • a C-based core with buffers, pads, queues, clocking, and pipeline primitives
  • early element implementations for UDP ingest, depayloading, queueing Note haven't spent a whole lot of time to figure out jitter buffering
  • experimental sink/source work oriented toward LED matrix style outputs
  • FreeRTOS-oriented platform integration and embedded example projects
  • networked demos that stream simple visual data over UDP for bring-up and timing experiments
  • local pipeline applicability for sensor and sampled-data capture flows (for example, ADC-oriented streaming)

Note

This codebase is experimental. I am a solo developer working in fre time.

License

This project is licensed under the GNU General Public License v3.0 or later. See the LICENSE file for full terms.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages