Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nmos receiver plugin #18

Merged
merged 4 commits into from
Jan 31, 2025
Merged

Conversation

LufeBisect
Copy link
Collaborator

Description

Added nmos audio and video receiver as well as used classes to implement RAII design architecture so that resources are well freed at shutdown (changed in sender as well). Also made few small changes to the JSON configs to better represent the capabilities of each plugin when represented at the NMOS interface and changed all gchar* to std:string for better code maintainability.

Usage example

Here are some example pipelines I used while testing

Video Sender:

gst-launch-1.0 videotestsrc is-live=true timestamp-offset=1 pattern=ball !  videoconvert ! "video/x-raw, format=UYVP, sampling=YCbCr-4:2:2, width=460, height=240, clock-rate=9000, framerate=50/1" !   nmossender node-id="4be47603-789a-4db1-8f88-4688cd88271b" destination-address="192.168.1.103" source-address="192.168.1.103" destination-port="9999"

Video Receiver:

gst-launch-1.0 -v nmosvideoreceiver destination-address="192.168.1.103" receiver-id="9dd4cb3e-7d28-411d-9939-b8e439bd8c2a" ! queue !  videoconvert ! autovideosink sync=false

Audio Sender:

gst-launch-1.0 -v nmosaudioreceiver destination-address="192.168.1.103" receiver-id="19fbe2ed-aa1c-4c3b-903f-2ce1345b070e" ! queue ! audioconvert ! wavescope ! ximagesink sync=false

Audio Receiver:

gst-launch-1.0 audiotestsrc is-live=true wave=square ! audio/x-raw, format=S24BE, rate=48000, channels=2, layout=interleaved ! nmossender destination-address="192.168.1.103" destination-port=5004

Notes

There's still some issues with the audio receiver with my tests, not being able to properly change between sources and needing to be changed back then changed to the new source to effectively make the change.
Also in the future it might be better to merge all utils files into a single one where all plugins can get their functions and data structures from a centralized and shared file, to reduce redundancy across the codebase.

@LufeBisect LufeBisect changed the base branch from nmos-plugin-creation to feature-gstreamer-plugins January 21, 2025 09:57
@LufeBisect LufeBisect force-pushed the nmos-receiver-plugin branch from 2c3c774 to 33699cd Compare January 21, 2025 10:21
@LufeBisect LufeBisect force-pushed the nmos-receiver-plugin branch 2 times, most recently from 0e8f0ea to 56b4075 Compare January 21, 2025 16:51
Copy link
Collaborator

@massis08 massis08 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comments in the audio receiver and video receiver are complementary to each other. Ensure to cross-check the comments in the audio file with those in the video file, and vice versa.

@LufeBisect LufeBisect force-pushed the nmos-receiver-plugin branch 3 times, most recently from e78fbc5 to 460f2cc Compare January 24, 2025 18:38
Copy link
Contributor

@pedro-alves-ferreira pedro-alves-ferreira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok but I have a few comments

@LufeBisect LufeBisect force-pushed the nmos-receiver-plugin branch from 460f2cc to 04b289a Compare January 27, 2025 17:19
Copy link
Collaborator

@massis08 massis08 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@LufeBisect LufeBisect merged commit 30a6d38 into feature-gstreamer-plugins Jan 31, 2025
2 checks passed
@LufeBisect LufeBisect deleted the nmos-receiver-plugin branch February 3, 2025 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants