-
Notifications
You must be signed in to change notification settings - Fork 0
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 GStreamer sender plugin #17
base: main
Are you sure you want to change the base?
Conversation
All functions translated and created new json test files
NMOS is only initialized on Playing state of plugin NMOS is only initialized on Playing state of plugin
@@ -5,7 +5,7 @@ | |||
"label": "BISECT OSSRF Node", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid committing changes (in particular, configuration files) when those changes are not material, that is, only some values have been changed for testing purposes.
@@ -0,0 +1,72 @@ | |||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need this file? Is it an example that is useful? If yes, then we should use a name that is more descriptive.
|
||
switch(property_id) | ||
{ | ||
case 1: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we have constants for this, so that it is harder to cause problems if we add more properties?
This makes me think of something else: I'd like those constants to be constexpr
but this file is .c
. Can we make it a .cpp
and declare that needs external linkage as extern "C"
?
That way we wouldn't be limited to develop in C.
} | ||
|
||
#define VERSION "0.1" | ||
#define PACKAGE "gst-plugins-ugly" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These need to be changed.
PACKAGE
should be the library name.
PACKAGE_NAME
should be AMWA NMOS Sender and Receiver Framework Plugins
GST_PACKAGE_ORIGIN
: https://www.amwa.tv/
GST_PACKAGE_LICENSE
: Apache-2.0
Description
In this pull request, I have developed a GStreamer plugin with NMOS integration, that uses internal element linking so that it's able to use rtpvrawpay and udpsink, and still being able to process the required info for NMOS communication.
For this purpose I also had to create a middleman file so that the GStreamer C code could communicate with the CPP api and integrate it as part of it's routine. Beyond that, I have also defined the required plugin functionalities such as caps negotiation, being able to set properties and being able to change whats being used depending on the state of the pipeline.
Usage Example:
After compiling the plugin, you either need to copy the file
/build/Release/plugins/libgstnmossender.so
and add it to the gstreamer plugins folder or set your plugin path to the project path.Sending an NMOS Stream with UYVP Encoding:
gst-launch-1.0 videotestsrc ! videoconvert ! "video/x-raw, format=UYVP, width=640, height=480, framerate=50/1" ! nmossender destination-address="192.168.88.92" destination-port=5004
Notes
For now, some parts are still configured by using the JSON files as the source of the info for the NMOS configuration, that still needing to be changed on a future PR.