I am working with Python APIs, Deepstream 6.0.1, Tesla T4, and Deepstream official develop container.
appsrc to feed numpy arrays to my pipeline:
img = cv2.imread("/opt/nvidia/deepstream/deepstream-6.0/samples/streams/sample_720p.jpg") img = cv2.resize(img, (1080, 1920)) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGBA) buffer = Gst.Buffer.new_wrapped(img.tobytes()) self.source_bin_appsrc.emit("push-buffer", buffer)
The pipeline works fine, and I am able to retrieve the numpy image as well as the metadata from an object of type
I am using this pipeline to create REST API that feeds numpy arrays to Deepstream.
Consider that situation where I have 2 API calls. The API call
A generates a
numpy_array_A and sends it to the
appsrc element in the pipeline. The API call
B generates a
numpy_array_B and sends it to the
appsrc element in the pipeline.
My pipeline process correctly the numpy arrays.
The problem is that when I retrieve the metadata, I haven’t found a way to know to which one of the two arrays (
numpy_array_B) the metadata refers to.
In other works, is there a way to associated an instance of type
NvDsFrameMeta to my original gstreamer buffer (created in the sample code above)? I am looking for something like an identifier that remains equal when deepstream converts the gstreamer buffer to a
NvDsBatchMeta. This is needed to return the correct metadata to each user of my REST API. If I had 20 concurrent calls, I need to know what metadata corresponds to every specific request.