SDK Version: 2.3.3
DxOutputSelector
DxOutputSelector is a GStreamer element used in multi-channel streaming pipelines. It receives a unified stream from DxInputSelector and redistributes the buffers to N output pads based on metadata, such as stream_id.
Key Features
Buffer Routing
- Buffers arriving at the single sink pad are routed to the correct
srcpad using thestream_idfield found in the associatedDXFrameMeta. - This enables seamless demultiplexing of multiple logical video streams within a unified pipeline.
Custom Event Handling
DxOutputSelectorprocesses sticky events (e.g., caps, segment) using custom routing events generated byDxInputSelector. This ensures that eachsrcpad receives the correct contextual information.
Hierarchy
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstDxOutputSelector
Properties
| Name | Description | Type | Default Value |
|---|---|---|---|
name | Sets the unique name of the DxOutputSelector element. | String | "dxoutputselector0" |
NOTE
DxOutputSelectorrequires asynchronous operation between its upstream and downstream elements. To achieve this, aqueueelement must be added to each of its src pads. Failure to do so may result in abnormal pipeline hangs.
-
The
stream_idfrom theDXFrameMetaof the buffer received on the sink pad is parsed and used as the index of the src pad. Therefore, if thestream_iddoes not correspond to a valid src pad index inDxOutputSelector, an error will occur. -
DxOSDremoves the original buffer and creates a new one for drawing. During this process,DXFrameMetais discarded, which can cause issues ifDxOSDis placed upstream ofDxOutputSelector.