【发布时间】:2020-02-14 09:40:31
【问题描述】:
我正在尝试显示从 UDP 套接字接收到的数据(它已经标记 通过来自 AppSink 的回调)
这是我的代码,应该显示接收到的数据:
静态无效 gst_native_receive_video_data(JNIEnv *env, jobject thiz, jbyteArray 数组) {
jbyte *data = (*env)->GetByteArrayElements(env, array, NULL);
jsize size = (*env)->GetArrayLength(env, array);
GstBuffer *buffer = gst_buffer_new_allocate(NULL, size, NULL);
gst_buffer_fill(buffer, 0, data, size);
gchar *videoConsumerString = g_strdup_printf(
"appsrc name=source is-live=true do-timestamp=true min-latency=0 max-latency=100000000 ! video/x-raw,format=RGB,width=320,height=240,framerate=30/1 ! videoconvert ! autovideosink");
GstElement *consumer = gst_parse_launch(videoConsumerString, NULL);
g_free(videoConsumerString);
GstElement *source = gst_bin_get_by_name(GST_BIN(consumer), "source");
gst_app_src_push_buffer(GST_APP_SRC(source), buffer);
gst_element_set_state(consumer, GST_STATE_PLAYING);
gst_object_unref(source);
gst_object_unref(consumer);
(*env)->ReleaseByteArrayElements(env, array, data, JNI_ABORT);
}
请给我正确的显示接收数据的方式。
提前感谢您的帮助。
PS:我是 Gstreamer 社区的新手
【问题讨论】:
标签: android c java-native-interface gstreamer