Missing custom/user meta after streammux new

• Hardware Platform (GPU)
• DeepStream Version (6.0)
• TensorRT Version (8)
• NVIDIA GPU Driver Version (510.85)
• Issue Type( question)
**• How to reproduce the issue ?

  • Switch from using default streammuxer to streammuxer new while attaching custom meta before the muxer, you will find that after the switch, the custom meta is missing after the muxer)

Initially I was using the default nvstreammux and I use to attach custom meta to GstBuffers before the muxer as follows:

 /* Attach custom_frame_metadata to gst buffer using gst_buffer_add_nvds_meta() */
    NvDsMeta *meta = gst_buffer_add_nvds_meta(buf, custom_frame_meta->custom_meta, nullptr,
                                              custom_frame_meta_copy_func, custom_frame_meta_release_func);

    /* Set metadata type */
    meta->meta_type = (GstNvDsMetaType)CUSTOM_FRAME_META_AS_NVDS_USER_META;

    /* Set transform function to transform custom_frame_meta from Gst meta to
     * nvds meta */
    meta->gst_to_nvds_meta_transform_func = custom_meta_to_nvds_meta_transform_func;

    /* Set release function to release the transformed nvds metadata */
    meta->gst_to_nvds_meta_release_func = custom_meta_nvds_meta_release_func;

And After the muxer I use the following code to retrieve it

static CustomMeta *get_custom_meta_from_nvds_frame_meta(
  NvDsFrameMeta *frame_meta) {
  NvDsMetaList *l_user_meta = nullptr;
  NvDsUserMeta *user_meta = nullptr;
  for (l_user_meta = frame_meta->frame_user_meta_list; l_user_meta; l_user_meta = l_user_meta->next) {
    user_meta = (NvDsUserMeta *)(l_user_meta->data);
    if (user_meta->base_meta.meta_type == CUSTOM_FRAME_META_AS_NVDS_USER_META) {
      CustomMeta *custom_frame_meta = (CustomMeta*)user_meta->user_meta_data;
      return custom_frame_meta;
    }
  }
  return nullptr;
}

Now switching to streammux new via setting the env var USE_NEW_NVSTREAMMUX=yes caused the list frame_meta->frame_user_meta_list to be always null thus the custom meta is missing.

Please note that /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-gst-metadata-test/deepstream_gst_metadata.c has been already referenced.

Please advise, Thanks in advance!
Best Regards

Actually it seems that GstMeta and NvDsMeta copy support was not enabled in DeepStream 6.0 but the support for it was added in 6.1
Sorry for the inconvenience :)

1 Like