How to retrieve attached custom meta information on receiver side?
Борис
bumatov at gmail.com
Wed Mar 18 11:54:05 UTC 2020
Hi. I added my custom meta data and can't retrieve it on receiver side
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):
buffer = gst_buffer_new_wrapped(frame.data, size);
...
GST_BUFFER_PTS (buffer) = ts;
GST_BUFFER_DTS (buffer) = ts;
qint64 duration = ((double)1 / params.framerate) * GST_SECOND;
GST_BUFFER_DURATION(buffer) = duration;
GST_BUFFER_OFFSET(buffer) = currentFrameCount;
// ADD META
GstMetaMarking* meta = GST_META_MARKING_ADD(buffer);
meta->in_timestamp = it->time;
if (currentFrameCount >= needFrameCount)
{
meta->last = true;
}
else
{
meta->last = false;
}
// here i check that meta added correctly
GstMetaMarking* metaCheck = GST_META_MARKING_GET(buffer);
qDebug() << metaCheck->in_timestamp << metaCheck->last;
g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret);
gst_buffer_unref (buffer);
On receiver side i modified part where i retrieve frame:
...
sample = gst_app_sink_pull_sample(GST_APP_SINK(sink));
...
GstBuffer * buf = gst_sample_get_buffer(sample);
if (!buf)
return false;
// RETRIEVE META
GstMetaMarking* meta = GST_META_MARKING_GET(buf);
if (meta)
{
CV_WARN("GStreamer: META EXISTS");
tsMeta = meta->in_timestamp;
isLastMeta = meta->last;
}
else
{
CV_WARN("GStreamer: META IS EMPTY"); // so i'm always here
}
GstMapInfo info;
if (!gst_buffer_map(buf, &info, GST_MAP_READ))
{
//something weird went wrong here. abort. abort.
CV_WARN("Failed to map GStreamerbuffer to system memory");
return false;
}
{
Mat src;
if (isOutputByteBuffer)
src = Mat(Size(info.size, 1), CV_8UC1, info.data);
else
src = Mat(sz, CV_MAKETYPE(CV_8U, channels), info.data);
CV_Assert(src.isContinuous());
src.copyTo(dst);
}
gst_buffer_unmap(buf, &info);
So, here
GstMetaMarking* meta = GST_META_MARKING_GET(buf);
i always get empty pointer. What is wrong here?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200318/3d19e4c3/attachment.htm>
More information about the gstreamer-devel
mailing list