tiovxmultiscaler - TexasInstruments/edgeai-gst-plugins GitHub Wiki
TIOVX Multi Scaler
tiovxvmultiscaler
is used to convert video frames between different video resolutions (downscaling only).
Constraints
The element can only:
- Perform downscale
- Downscale by a maximum of 4x
The downscale supported source caps the node can compute it's also available to the user by an INFO debug level message, i.e, it could be obtained this way:
GST_DEBUG=tiovxmultiscaler:4 gst-launch-1.0 videotestsrc ! video/x-raw,width=1280,height=720 ! \
tiovxmultiscaler ! video/x-raw,width=320,height=240 ! fakesink -e
Hierarchy
GObject
β°ββGInitiallyUnowned
β°ββGstObject
β°ββGstElement
β°ββGstTIOVXSimo
β°ββGstTIOVXMultiScaler
Pad templates
sink
video/x-raw
format: { (string)NV12, (string)GRAY8, (string)GRAY16_LE }
width: [ 1, 8192 ]
height: [ 1, 8192 ]
video/x-raw(memory:batched)
format: { (string)NV12, (string)GRAY8, (string)GRAY16_LE }
width: [ 1, 8192 ]
height: [ 1, 8192 ]
num-channels: [ 1, 16 ]
Availability β always
Direction β sink
Object type β GstTIOVXMultiScalerPad
Pad properties:
- pool-size: Size of the buffer pool
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 2 - 16
ββ β Default: 2
- roi-height: Height of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
- roi-startx: Starting X coordinate of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
- roi-starty: Starting Y coordinate of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
- roi-width: Width of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
src_%u
video/x-raw
format: { (string)NV12, (string)GRAY8, (string)GRAY16_LE }
width: [ 1, 8192 ]
height: [ 1, 8192 ]
video/x-raw(memory:batched)
format: { (string)NV12, (string)GRAY8, (string)GRAY16_LE }
width: [ 1, 8192 ]
height: [ 1, 8192 ]
num-channels: [ 1, 16 ]
Availability β On Request
Direction β src
Object type β GstTIOVXMultiScalerPad
Pad properties:
- pool-size: Size of the buffer pool
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 2 - 16
ββ β Default: 2
- roi-height: Height of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
- roi-startx: Starting X coordinate of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
- roi-starty: Starting Y coordinate of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
- roi-width: Width of the cropped region of interest
ββ βflags: readable, writable
ββ β Unsigned Integer.
ββ β Range: 0 - 4294967295
ββ β Default: 0
Properties
name
The name of the object
String
Default value : "tiovxmultiscaler0"
parent
The parent of the object
Flags : Read / Write
GstObject
Default value : N/A
target
TIOVX target to use by this element
Flags : Read / Write
Enum
Enum "GstTIOVXColorConvertTarget
(0): VPAC_MSC1
(1): VPAC_MSC2
Default value : VPAC_MSC1 (0)
Pipeline examples
Single output
gst-launch-1.0 \
videotestsrc is-live=true num-buffers=5 ! "video/x-raw,format=NV12,width=1280,height=720" ! \
tiovxmultiscaler name=multi \
multi. ! "video/x-raw,format=NV12,width=640,height=480" ! queue ! fakesink silent=false -v -e
5 outputs
gst-launch-1.0 \
videotestsrc is-live=true num-buffers=5 ! "video/x-raw,width=1920,height=1080" ! \
tiovxmultiscaler name=multi \
multi.src_0 ! "video/x-raw,width=1280, height=720" ! queue ! filesink location=out0_1280x720_nv12.raw \
multi.src_1 ! "video/x-raw, width=640, height=480" ! queue ! filesink location=out1_640x480_nv12.raw \
multi.src_2 ! "video/x-raw,width=1920,height=1080" ! queue ! filesink location=out2_320x240_nv12.raw \
multi.src_3 ! "video/x-raw, width=640, height=480" ! queue ! filesink location=out3_640x480_nv12.raw \
multi.src_4 ! "video/x-raw,width=1280, height=720" ! queue ! filesink location=out4_1280x720_nv12.raw -v -e
Batched processing
gst-launch-1.0 \
videotestsrc is-live=true num-buffers=10 pattern=ball ! video/x-raw, width=1280, height=720, format=NV12 ! mux. \
videotestsrc is-live=true num-buffers=10 pattern=0 ! video/x-raw, width=1280, height=720, format=NV12 ! mux. \
tiovxmux name=mux ! "video/x-raw(memory:batched), width=1280, height=720, format=NV12" ! \
tiovxmultiscaler name=multi \
multi. ! "video/x-raw(memory:batched), width=640, height=480" ! tiovxdemux name=demux_a \
demux_a. ! queue ! filesink location=/tmp/test.raw \
demux_a. ! queue ! filesink location=/tmp/test1.raw \
multi. ! "video/x-raw(memory:batched), width=320, height=240" ! tiovxdemux name=demux_b \
demux_b. ! queue ! filesink location=/tmp/test2.raw \
demux_b. ! queue ! filesink location=/tmp/test3.raw
ROI
gst-launch-1.0 \
videotestsrc is-live=true num-buffers=5 ! "video/x-raw,format=NV12,width=1280,height=720" ! \
tiovxmultiscaler name=multi src_0::roi-startx=100 src_0::roi-starty=100 src_0::roi-width=640 src_0::roi-height=480 \
multi. ! "video/x-raw,format=NV12,width=320,height=240" ! queue ! fakesink silent=false -v -e