<div dir="ltr">Hi. I added my custom meta data and can't retrieve it on receiver side<div>On sender side i have rtsp server and i'm adding meta info to frame buffers (i skip some of not important parts of code):</div><div><br></div><div>    buffer = gst_buffer_new_wrapped(frame.data, size);<br>...<br></div><div>        GST_BUFFER_PTS (buffer) = ts;<br>        GST_BUFFER_DTS (buffer) = ts;<br><br>        qint64 duration = ((double)1 / params.framerate) * GST_SECOND;<br>        GST_BUFFER_DURATION(buffer) = duration;<br>        GST_BUFFER_OFFSET(buffer) = currentFrameCount;<br><br>        // ADD META<br>        GstMetaMarking* meta = GST_META_MARKING_ADD(buffer);<br>        meta->in_timestamp = it->time;<br>        if (currentFrameCount >= needFrameCount)<br>        {<br>            meta->last = true;<br>        }<br>        else<br>        {<br>            meta->last = false;<br>        }</div><div>      // here i check that meta added correctly<br>        GstMetaMarking* metaCheck = GST_META_MARKING_GET(buffer);<br>        qDebug() << metaCheck->in_timestamp << metaCheck->last;<br>        g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret);<br>        gst_buffer_unref (buffer);<br></div><div><br></div><div>On receiver side i modified part where i retrieve frame:</div><div>...</div><div>sample = gst_app_sink_pull_sample(GST_APP_SINK(sink));<br></div><div>...</div><div>GstBuffer * buf = gst_sample_get_buffer(sample);<br>if (!buf)<br>        return false;</div><div><br></div><div>// RETRIEVE META<br>  GstMetaMarking* meta = GST_META_MARKING_GET(buf);<br>     if (meta)<br>     {<br>             CV_WARN("GStreamer: META EXISTS");<br>          tsMeta = meta->in_timestamp;<br>               isLastMeta = meta->last;<br>   }       <br>      else<br>  {<br>             CV_WARN("GStreamer: META IS EMPTY"); // so i'm always here<br>      }<br>    GstMapInfo info;<br>    if (!gst_buffer_map(buf, &info, GST_MAP_READ))<br>    {<br>        //something weird went wrong here. abort. abort.<br>        CV_WARN("Failed to map GStreamerbuffer to system memory");<br>        return false;<br>    }<br><br>    {<br>        Mat src;<br>        if (isOutputByteBuffer)<br>            src = Mat(Size(info.size, 1), CV_8UC1, info.data);<br>        else<br>            src = Mat(sz, CV_MAKETYPE(CV_8U, channels), info.data);<br>        CV_Assert(src.isContinuous());<br>        src.copyTo(dst);<br>    }<br>    gst_buffer_unmap(buf, &info);<br></div><div><br></div><div><br></div><div><br></div><div>So, here</div><div>  GstMetaMarking* meta = GST_META_MARKING_GET(buf); </div><div><br></div><div>i always get empty pointer. What is wrong here? <br></div></div>