下述代码使用场景:
用于需要采集当前设备camera数据,并做后续处理
// 采集导数据后处理
GstFlowReturn handle_sample(GstElement *sink, gpointer user_data, gboolean isH264)
{
ICameraSdkEvent *_event = (ICameraSdkEvent *)user_data;
if (!_event) {
return GST_FLOW_OK;
}
GstSample *sample = NULL;
GstBuffer *buffer = NULL;
g_signal_emit_by_name(sink, "pull-sample", &sample);
if (!sample) {
g_printerr("[camera_sdk_impl.cpp][handle_sample], sample is NULL!!!");
return GST_FLOW_OK;
}
GstBuffer *buf = gst_sample_get_buffer(sample);
GstMapInfo map_info;
if (!gst_buffer_map(buf, &map_info, GST_MAP_READ)) {
g_printerr("[camera_sdk_impl.cpp][handle_sample], frameData map error");
return GST_FLOW_OK;
}
// 发送或做其他处理,数据map_info.data,数据大小map_info.size
gst_buffer_unmap(buf, &map_info);
gst_sample_unref(sample);
return GST_FLOW_OK;
}
// 初始化 pipeline
// |------------------pipeli