{"id":13420755,"url":"https://github.com/davidfischer-ch/smpte2022lib","last_synced_at":"2025-06-16T12:39:05.515Z","repository":{"id":69239300,"uuid":"9410102","full_name":"davidfischer-ch/smpte2022lib","owner":"davidfischer-ch","description":"Optimized and cross platform SMPTE 2022-1 FEC library in C, Python, Java","archived":false,"fork":false,"pushed_at":"2014-02-26T13:12:29.000Z","size":7191,"stargazers_count":37,"open_issues_count":0,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-27T10:46:50.980Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidfischer-ch.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-13T07:11:58.000Z","updated_at":"2025-03-11T09:23:17.000Z","dependencies_parsed_at":"2023-02-21T17:30:32.395Z","dependency_job_id":null,"html_url":"https://github.com/davidfischer-ch/smpte2022lib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davidfischer-ch/smpte2022lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfischer-ch%2Fsmpte2022lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfischer-ch%2Fsmpte2022lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfischer-ch%2Fsmpte2022lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfischer-ch%2Fsmpte2022lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidfischer-ch","download_url":"https://codeload.github.com/davidfischer-ch/smpte2022lib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfischer-ch%2Fsmpte2022lib/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260163244,"owners_count":22968224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T22:01:40.551Z","updated_at":"2025-06-16T12:39:05.493Z","avatar_url":"https://github.com/davidfischer-ch.png","language":"C","funding_links":[],"categories":["TODO scan for Android support in followings"],"sub_categories":[],"readme":"\n.. _CodeBlocks: http://www.codeblocks.org/\n.. _MinGW: http://www.mingw.org/\n.. _VLC: http://www.videolan.org/vlc/index.html\n\n============\nsmpte2022lib\n============\n\nOptimized and cross platform SMPTE 2022-1 FEC library in C, Python, Java.\n\n-----------------\nBrief description\n-----------------\n\nSMPTE 2022-1 is a forward error correction standard for real-time video/audio (RTP) transport over IP networks.\n\nInitial 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.\n\nNowadays I focus on using the newer Java and Python implementations for some Ra\u0026D projects using RTP streams.\n\n---------\nForPython\n---------\n\nI developed this version to generate SMPTE 2022-1 FEC streams from a sniffed RTP media stream.\n\nThis implementation is now part of `pytoolbox \u003chttps://github.com/davidfischer-ch/pytoolbox/\u003e`_ (see `commit \u003chttps://github.com/davidfischer-ch/pytoolbox/commit/c8346c939cf6a8791e92e4b7b3cc72e67c82d0da\u003e`_).\n\n-------\nForJava\n-------\n\nThis is the Java re-implementation of the old C/C++ SMPTE 2022-1 FEC library.\n\nI developed this version to receive protected RTP multicast streams from an Android device.\n\nOf course, you can also use it for another purpose (e.g. a Java powered PC application).\n\n.. note::\n\n    * ``FecReceiver.java`` is the RTP / SMPTE 2022-1 FEC receiver.\n\n--------\nForC_old\n--------\n\nThis is the first (abandon-ware) implementation of the library.\n\nI do not use it anymore and I really think that this implementation needs some heavy refactoring.\n\nYou can read the `resume \u003cForC_old/Documents/Resume.pdf\u003e`_ of the project files if you understand French.\n\nDon't hesitate to contact me to get further explanations.\n\nGNU/Linux (e.g. Ubuntu 64)\n==========================\n\nCompiling step by step\n----------------------\n\n* install CodeBlocks_ and g++ with ``sudo apt-get install codeblocks g++``\n* open file ``ForC_old/CodeBlocks/VLC-SMPTE.workspace`` with CodeBlocks_\n* double click on project **Smpte-2022-** in CodeBlocks_ IDE and Ctrl+F11 to compile\n* double click on project **FecGenerator**    in CodeBlocks_ IDE and Ctrl+F11 to compile\n* double click on project **ErrorsGenerator** in CodeBlocks_ IDE and Ctrl+F11 to compile\n* double click on project **FecDecoder**      in CodeBlocks_ IDE and Ctrl+F11 to compile\n\nTesting step by step\n--------------------\n\n* open a terminal in path ``ForC_old/Release-linux64``\n* execute ``sh script_example.sh \"source_file_name\"``\n* read logs of each module\n* compare ``*.raw`` output file (without any error recovery) and ``*.david`` output file (recovered by SMPTE 2022-1 library)\n* execute each module with different options :\n   - like this : ``source_file -\u003e FecGenerator -\u003e FecDecoder -\u003e results_files``\n   - or like this : ``source_file -\u003e FecGenerator -\u003e ErrorsGenerator -\u003e FecDecoder -\u003e results_files``\n\nWindows (e.g. Windows XP 32)\n============================\n\nCompiling step by step\n----------------------\n\nSteps are equivalent to GNU/Linux steps with some variations (CodeBlocks_ running under a MinGW_ environment).\n\nTesting step by step\n--------------------\n\nSteps are equivalent to GNU/Linux steps with some variations (scripts names and files extensions).\n\n----------\nForVlc_old\n----------\n\nThis is the work done by Jérémie Mathieu Rossier to integrate the old C/C++ SMPTE 2022-1 FEC library into VLC_.\n\n2013 - David Fischer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfischer-ch%2Fsmpte2022lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidfischer-ch%2Fsmpte2022lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfischer-ch%2Fsmpte2022lib/lists"}