gstreamer向appsrc傳送資料的程式碼
阿新 • • 發佈:2018-12-09
有一位朋友看了吾《gstreamer向appsrc傳送幀畫面的程式碼》,表示不知道怎麼填充資料。這個吾正好也做了(當時能找到辦法也是運氣好),就開放出來,希望能給朋友們帶來幫助:
#define BUFFER_SIZE 4096 static void callback_feed_data_start (GstElement * source, guint size, void * arg) { GstFlowReturn ret; GstMapInfo gst_map; GstBuffer *gst_buffer = NULL; char data_buffer[BUFFER_SIZE]; int data_size = BUFFER_SIZE; //需要時加執行緒鎖、條件鎖。 gst_buffer = gst_buffer_new_allocate (NULL, data_size, NULL); gst_buffer_map (gst_buffer, &gst_map, GST_MAP_WRITE); memset(data_buffer, 0x80, data_size); memcpy( (guchar *)gst_map.data, data_buffer, data_size); g_signal_emit_by_name (source, "push-buffer", gst_buffer, &ret); gst_buffer_unmap (gst_buffer, &gst_map); gst_buffer_unref (gst_buffer); //釋放執行緒鎖、條件鎖。 }