Nvarguscamerasrc Buffer Metadata is missing

@CarlosR92: So you know what is stored in sensor_data?

Hi CarlosR92,

We just filed the request. It may take time in review/evaulation. Will update once it is scheduled. Thanks.

@DaneLLL, thanks for submitting the request! It is a valuable feature and it is a blocker for us not having it in JP 4.2. Looking forward for the fix.

@alex.sack, no, I don’t know what is stored in sensor_data, I haven’t used it before, it might be related to the sensor configuration.

@DaneLLL, Do you know what is stored in sensor_data in the metadata returned by nvcamerasrc (in Jetpack 3.3)?

Hi,
sensor_data is clarified to be private in
[url]https://devtalk.nvidia.com/default/topic/1056912/jetson-tx2/gst-plugin-question-do-timestamp-true-enable-meta-true-/post/5359462/#5359462[/url]

Hi DaneLLL,

Is there any update on the status of enabling metadata in nvarguscamerasrc or an expected release date?

Hi,
We should have it ready in next r32.3 release.

Hi @DaneLLL, do you have an ETA for Jetpack 4.3 release including this feature?

Also, is there any chance you can share a binary of nvarguscamerasrc including this feature? It would be really helpful, because it is becoming a showstopper for us.

Thanks for your help.

Same here, I’d like to know if this is going to be added as well as any other fixes.

Hi,
Please try attachment on r32.2.1. It is verified by adding prob callback to the sample

static GQuark gst_buffer_metadata_quark = 0;
typedef struct AuxBufferData {
  gint64 frame_num;
  gint64 timestamp;
} AuxData;
static GstPadProbeReturn
nvargus_src_pad_buffer_probe (GstPad * pad, GstPadProbeInfo * info,
    gpointer u_data)
{
    AuxData *meta = NULL;
    GstBuffer *buf = (GstBuffer *) info->data;
    gst_buffer_metadata_quark = g_quark_from_static_string ("GstBufferMetaData");
    meta = (AuxData *) gst_mini_object_get_qdata (GST_MINI_OBJECT_CAST (buf),
							   gst_buffer_metadata_quark);

   printf(">>> Gstreamer:Frame #%lu : Timestamp: %lu\n", meta->frame_num, meta->timestamp);
   return GST_PAD_PROBE_OK;
}
GstElement* src = gst_bin_get_by_name(GST_BIN(gst_pipeline), "mysource");
GstPad *src_pad = gst_element_get_static_pad (src, "src");
gst_pad_add_probe (src_pad, GST_PAD_PROBE_TYPE_BUFFER,
    nvargus_src_pad_buffer_probe, NULL, NULL);

r32_21_TEST_libgstnvarguscamerasrc.zip (28.7 KB)

Hi @DaneLLL, thank you so much for the binary and the example code, it worked great, we will integrate it into our application!

Just as a note, consider creating a GstMeta with this information instead of a quark, since it is more standard, and DeepStream makes use of GstMetas very well, so would be nice to have a single way to handle metas over the pipeline when using the whole NVIDIA’s GStreamer ecosystem.

Thanks again for you help!

Hi @DaneLLL, thank you so much for the binary and the example code, it worked great, we will integrate it into our application!

Just as a note, consider creating a GstMeta with this information instead of a quark, since it is more standard, and DeepStream makes use of GstMetas very well, so would be nice to have a single way to handle metas over the pipeline when using the whole NVIDIA’s GStreamer ecosystem.

Thanks again for you help!