일부는 설정용도로 쓸 수 있고, 일부는 상태정보를 폴링(polling)으로 읽어갈 수 있다.
$ gst-inspect-1.0 autovideosink Factory Details: Rank none (0) Long-name Auto video sink Klass Sink/Video Description Wrapper video sink for automatically detected video sink Author Jan Schmidt <thaytan@noraisin.net>
Plugin Details: Name autodetect Description Plugin contains auto-detection plugins for video/audio in- and outputs Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstautodetect.so Version 1.20.3 License LGPL Source module gst-plugins-good Source release date 2022-06-15 Binary package GStreamer Good Plugins (Ubuntu) Origin URL https://launchpad.net/distros/ubuntu/+source/gst-plugins-good1.0
Pad Templates: SINK template: 'sink' Availability: Always Capabilities: ANY
Element has no clocking capabilities. Element has no URI handling capabilities.
Pads: SINK: 'sink'
Element Properties: async-handling : The bin will handle Asynchronous state changes flags: readable, writable Boolean. Default: false filter-caps : Filter sink candidates using these caps. flags: readable, writable, 0x2000 video/x-raw
message-forward : Forwards all children messages flags: readable, writable Boolean. Default: false name : The name of the object flags: readable, writable, 0x2000 String. Default: "autovideosink0" parent : The parent of the object flags: readable, writable, 0x2000 Object of type "GstObject" sync : Sync on the clock flags: readable, writable Boolean. Default: true ts-offset : Timestamp offset in nanoseconds flags: readable, writable Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0
Properties and values Properties are used to describe extra information for capabilities. A property consists of a key (a string) and a value.
주기적으로 읽는게 싫다면 signal을 제공하는 엘리먼트를 통해 이벤트 발생시 값을 수신할 수 있다.
$ gst-inspect-1.0 fpsdisplaysink Factory Details: Rank none (0) Long-name Measure and show framerate on videosink Klass Sink/Video Description Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout Author Zeeshan Ali <zeeshan.ali@nokia.com>, Stefan Kost <stefan.kost@nokia.com>
Plugin Details: Name debugutilsbad Description Collection of elements that may or may not be useful for debugging Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstdebugutilsbad.so Version 1.20.3 License LGPL Source module gst-plugins-bad Source release date 2022-06-15 Binary package GStreamer Bad Plugins (Ubuntu) Origin URL https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad1.0
Pad Templates: SINK template: 'sink' Availability: Always Capabilities: ANY
Element has no clocking capabilities. Element has no URI handling capabilities.
Pads: SINK: 'sink'
Element Properties: async-handling : The bin will handle Asynchronous state changes flags: readable, writable Boolean. Default: false fps-update-interval : Time between consecutive frames per second measures and update (in ms). Should be set on NULL state flags: readable, writable Integer. Range: 1 - 2147483647 Default: 500 frames-dropped : Number of frames dropped by the sink flags: readable Unsigned Integer. Range: 0 - 4294967295 Default: 0 frames-rendered : Number of frames rendered flags: readable Unsigned Integer. Range: 0 - 4294967295 Default: 0 last-message : The message describing current status flags: readable String. Default: null max-fps : Maximum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done flags: readable Double. Range: -1 - 1.797693e+308 Default: -1 message-forward : Forwards all children messages flags: readable, writable Boolean. Default: false min-fps : Minimum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done flags: readable Double. Range: -1 - 1.797693e+308 Default: -1 name : The name of the object flags: readable, writable, 0x2000 String. Default: "fpsdisplaysink0" parent : The parent of the object flags: readable, writable, 0x2000 Object of type "GstObject" signal-fps-measurements: If the fps-measurements signal should be emitted. flags: readable, writable Boolean. Default: false silent : Don't produce last_message events flags: readable, writable Boolean. Default: false sync : Sync on the clock (if the internally used sink doesn't have this property it will be ignored flags: readable, writable Boolean. Default: true text-overlay : Whether to use text-overlay flags: readable, writable Boolean. Default: true video-sink : Video sink to use (Must only be called on NULL state) flags: readable, writable Object of type "GstElement"
Signals GObject signals can be used to notify applications of events specific to this object. Note, however, that the application needs to be aware of signals and their meaning, so if you're looking for a generic way for application-element interaction, signals are probably not what you're looking for. In many cases, however, signals can be very useful. See the GObject documentation for all internals about signals.
"capsfilter caps=" 생략하고 쓰면 알아서 capsfilter로 인식하는 건가?
Example launch line gst-launch-1.0 videotestsrc ! capsfiltercaps=video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
Limits acceptable video from videotestsrc to be grayscale. Equivalent to gst-launch-1.0 videotestsrc ! video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
# tensor sink signal : new data callback tensor_sink = self.pipeline.get_by_name("tensor_sink") tensor_sink.connect("new-data", self.new_data_cb)
# @brief Callback for tensor sink signal. def new_data_cb(self, sink, buffer): """Callback for tensor sink signal.
:param sink: tensor sink element :param buffer: buffer from element :return: None """
parse쪽은 c 로는 아래의 함수를 쓰면 될 것 같은데
gst_parse_launch GstElement * gst_parse_launch (const gchar * pipeline_description, GError ** error) Create a new pipeline based on command line syntax. Please note that you might get a return value that is not NULL even though the error is set. In this case there was a recoverable parsing error and you can try to play the pipeline.
To create a sub-pipeline (bin) for embedding into an existing pipeline use gst_parse_bin_from_description.
Parameters:
pipeline_description – the command line describing the pipeline error – the error message in case of an erroneous pipeline. Returns ( [transfer: floating]) – a new element on success, NULL on failure. If more than one toplevel element is specified by the pipeline_description, all elements are put into a GstPipeline, which than is returned.
gst_bin_get_by_name GstElement * gst_bin_get_by_name (GstBin * bin, const gchar * name) Gets the element with the given name from a bin. This function recurses into child bins.
Parameters:
bin – a GstBin name – the element name to search for Returns ( [transfer: full][nullable]) – the GstElement with the given name
NNStreamer provides a set of GStreamerplugins so developers may apply neural networks, attach related frameworks (includingROS, IIO, FlatBuffers, and Protocol Buffers), and manipulate tensor data streams in GStreamer pipelines easily and execute such pipelines efficiently