- Cleaned up comments and formatting in YAML library files (readerc.go, scannerc.go, writerc.go, yaml.go, yamlh.go, yamlprivateh.go).
- Improved readability by aligning comments and removing unnecessary whitespace.
- Added Dockerfile for ffmpeg-ndi dependencies, ensuring necessary libraries are installed.
- Created Dockerfile for restreamer, integrating UI and core components with ffmpeg.
- Introduced docker-compose.yml to manage services including avahi, ffmpeg-ndi, and core.
- Implemented NDIHandler in the API to discover NDI sources using ffmpeg.
- Added placeholder HTML for the Restreamer UI to prevent build issues.
- Included Install_NDI_SDK_v6_Linux.sh script for NDI SDK installation.
- Introduced a new Dockerfile for building the WHIP server with Go and FFmpeg.
- Implemented the WHIPHandler for managing WHIP publish sessions and generating URLs for clients.
- Added pionProvider for handling WebRTC sessions using the pion/webrtc library.
- Created the main WHIP server logic to handle SDP offers and manage active publishing streams.
- Implemented HTTP handlers for publishing, deleting, and retrieving stream information.
- Added support for SDP generation for FFmpeg consumption.
This fixes a bug in the rtmp library where an error has been left
unchecked caused by a malformed app or playPath. This led to a nil
value for the URL of the publish or play request. However, this
URL should never be nil and accessing this URL caused a panic and
finally shutting the core down, resulting in a DoS.
Thanks to Johannes Frank
For the API endpoint /v3/process two new query parameter are introduced
in order to list only processes that match a pattern for the id and the
reference: idpattern and refpattern. The pattern is a glob pattern. If
patterns for both are given, the results will be intersected. If you use
other query parameters such as id or reference, they will be applied
after the result of the pattern matching.