smpte2022lib |
---|
Optimized and cross platform SMPTE 2022-1 FEC library in C, Python, Java. |
----------------- |
Brief description |
SMPTE 2022-1 is a forward error correction standard for real-time video/audio (RTP) transport over IP networks. |
Initial goal of the project was to help VLC and others to implement this FEC algorithm by implementing a standalone C/C++ SMPTE 2022-1 FEC streams generator and receiver. |
Nowadays I focus on using the newer Java and Python implementations for some Ra&D projects using RTP streams. |
--------- |
ForPython |
I developed this version to generate SMPTE 2022-1 FEC streams from a sniffed RTP media stream. |
------- |
ForJava |
This is the Java re-implementation of the old C/C++ SMPTE 2022-1 FEC library. |
I developed this version to receive protected RTP multicast streams from an Android device. |
Of course, you can also use it for another purpose (e.g. a Java powered PC application). |
Note |
|
-------- |
ForC_old |
This is the first (abandon-ware) implementation of the library. |
I do not use it anymore and I really think that this implementation needs some heavy refactoring. |
You can read the resume of the project files if you understand French. |
Don't hesitate to contact me to get further explanations. |
GNU/Linux (e.g. Ubuntu 64) |
- install CodeBlocks and g++ with
sudo apt-get install codeblocks g++
- open file
ForC_old/CodeBlocks/VLC-SMPTE.workspace
with CodeBlocks - double click on project Smpte-2022- in CodeBlocks IDE and Ctrl+F11 to compile
- double click on project FecGenerator in CodeBlocks IDE and Ctrl+F11 to compile
- double click on project ErrorsGenerator in CodeBlocks IDE and Ctrl+F11 to compile
- double click on project FecDecoder in CodeBlocks IDE and Ctrl+F11 to compile
- open a terminal in path
ForC_old/Release-linux64
- execute
sh script_example.sh "source_file_name"
- read logs of each module
- compare
*.raw
output file (without any error recovery) and*.david
output file (recovered by SMPTE 2022-1 library) - execute each module with different options :
- like this :
source_file -> FecGenerator -> FecDecoder -> results_files
- or like this :
source_file -> FecGenerator -> ErrorsGenerator -> FecDecoder -> results_files
- like this :
Steps are equivalent to GNU/Linux steps with some variations (CodeBlocks running under a MinGW environment).
Steps are equivalent to GNU/Linux steps with some variations (scripts names and files extensions).
This is the work done by Jérémie Mathieu Rossier to integrate the old C/C++ SMPTE 2022-1 FEC library into VLC.
2013 - David Fischer