Setup information:
- Hardware Platform: Jetson
- DeepStream Version: 6.1
- JetPack Version (valid for Jetson only): 4.6-b197
- TensorRT Version: 8.0
- Issue Type: bugs
- How to reproduce the issue ?
Problem:
The below code is expected to rotate the video via flip-method. But When using nvtracker or nvstreamux, the pipeline starts producing empty files. I have to use both nvtracker and nvstreamux in my project.
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst, GLib
Gst.init(None)
def create_pipeline(elements):
pipeline = Gst.Pipeline()
prev_element = None
for element_info in elements:
element_name = element_info['name']
element_type = element_info['type']
properties = element_info.get('properties', {})
element = Gst.ElementFactory.make(element_type, element_name)
if not element:
print(f"Failed to create element {element_name} of type {element_type}")
continue
for prop_name, prop_value in properties.items():
element.set_property(prop_name, prop_value)
pipeline.add(element)
if prev_element:
prev_element.link(element)
prev_element = element
return pipeline
element_list_iva = [
{'name': "src", 'type': 'nvarguscamerasrc'},
{'name': "flip_conv", 'type': "nvvidconv", 'properties': {'flip-method': 1}},
{'name': "nvconv1", 'type': "nvvideoconvert"},
{'name': "streammux", 'type': "nvstreammux", 'properties': {'width': 1920, 'height': 1080, 'batch-size': 1}},
{'name': "nvconv2", 'type': "nvvideoconvert",},
{'name': "tracker", 'type': "nvtracker"},
{'name': "nvconv3", 'type': "nvvideoconvert",},
{'name': "enc", 'type': "nvjpegenc"},
{'name': "filesink", 'type': "filesink", 'properties': {'location': "output.jpg"}}
]
element_list_minimal = [
{'name': "src", 'type': 'nvarguscamerasrc'},
{'name': "flip_conv", 'type': "nvvidconv", 'properties': {'flip-method': 1}},
{'name': "enc", 'type': "nvjpegenc"},
{'name': "filesink", 'type': "filesink", 'properties': {'location': "output.jpg"}}
]
# element_list = element_list_minimal
element_list = element_list_iva
pipeline = create_pipeline(element_list)
pipeline.set_state(Gst.State.PLAYING)
loop = GLib.MainLoop()
try:
loop.run()
except:
pass
pipeline.set_state(Gst.State.NULL)