mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
396aa55958
Provide a clock from the source that is a monotonic system clock with the rate corrected based on the measured and ideal capture rate of the frames. If this clock is selected as pipeline clock, then provide perfect timestamps to downstream. Otherwise, if the pipeline clock is the monotonic system clock, use the internal clock for converting back to the monotonic system clock. Otherwise, use the monotonic system clock time calculated in the above case and convert that to the pipeline clock. In all cases this will give a smoother time than the previous code, which simply took the difference between the driver provided capture time and the current real-time clock time, and applied that to the current pipeline clock time. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6208> |
||
---|---|---|
.. | ||
.clang-format | ||
gstajacommon.cpp | ||
gstajacommon.h | ||
gstajadeviceprovider.cpp | ||
gstajadeviceprovider.h | ||
gstajasink.cpp | ||
gstajasink.h | ||
gstajasinkcombiner.cpp | ||
gstajasinkcombiner.h | ||
gstajasrc.cpp | ||
gstajasrc.h | ||
gstajasrcdemux.cpp | ||
gstajasrcdemux.h | ||
meson.build | ||
plugin.cpp | ||
README.md |
GStreamer AJA source/sink plugin
GStreamer plugin for AJA capture and output cards.
This plugin requires the AJA NTV2 SDK version 16 or newer.
The location of the SDK can be configured via the aja-sdk-dir
meson option.
If no location is given then the NTV2 SDK from
GitHub is compiled as a meson
subproject as part of the plugin.
Example usage
Capture 1080p30 audio/video and display it locally
gst-launch-1.0 ajasrc video-format=1080p-3000 ! ajasrcdemux name=d \
d.video ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=1000000000 ! videoconvert ! autovideosink \
d.audio ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=1000000000 ! audioconvert ! audioresample ! autoaudiosink
Output a 1080p2997 test audio/video stream
gst-launch-1.0 videotestsrc pattern=ball ! video/x-raw,format=v210,width=1920,height=1080,framerate=30000/1001,interlace-mode=progressive ! timeoverlay ! timecodestamper ! combiner.video \
audiotestsrc freq=440 ! audio/x-raw,format=S32LE,rate=48000,channels=16 ! audiobuffersplit output-buffer-duration=1/30 ! combiner.audio \
ajasinkcombiner name=combiner ! ajasink channel=0
Capture 1080p30 audio/video and directly output it again on the same card
gst-launch-1.0 ajasrc video-format=1080p-3000 channel=1 input-source=sdi-1 audio-system=2 ! ajasrcdemux name=d \
d.video ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=1000000000 ! c.video \
d.audio ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=1000000000 ! c.audio \
ajasinkcombiner name=c ! ajasink channel=0 reference-source=input-1