The code used to capture the image after parsing the nvdsanalytics meta data and determining an interesting event occurred is below and the obj_ctx_handle is created from nvds_obj_enc_create_context () function.
GstMapInfo inmap = GST_MAP_INFO_INIT;
if (!gst_buffer_map (buf, &inmap, GST_MAP_READ)) {
GST_ERROR ("input buffer mapinfo failed");
}else{
//strftime(tBuff, 10, "%d%m%Y", ptm);
NvBufSurface *ip_surf = (NvBufSurface *) inmap.data;
gst_buffer_unmap (buf, &inmap);
NvDsObjEncUsrArgs userData = { 0 };
/* To be set by user */
userData.saveImg = TRUE;
userData.attachUsrMeta = TRUE;
sprintf(userData.fileNameImg, "./images/%d_%lx_car.jpg", frame_meta->frame_num, obj_meta->object_id);
/* Preset */
userData.objNum = 1;
/*Main Function Call */
nvds_obj_enc_process (obj_ctx_handle, &userData, ip_surf, obj_meta, frame_meta);
}