From ca3744f8be44d47f66ce33a6ac03439b5537fbcb Mon Sep 17 00:00:00 2001 From: Barney Date: Tue, 9 Aug 2022 14:18:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gstreamer_player/jni/gst_player.c | 25 ++++++------------- .../hisharp/gstreamer_player/GstLibrary.java | 3 ++- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/gstreamer_player/jni/gst_player.c b/gstreamer_player/jni/gst_player.c index ed7e66b..1a63752 100644 --- a/gstreamer_player/jni/gst_player.c +++ b/gstreamer_player/jni/gst_player.c @@ -253,8 +253,7 @@ static void *app_function(void *userdata) { /* Build pipeline */ data->pipeline = gst_parse_launch("playbin", &error); if (error) { - gchar *message = - g_strdup_printf("Unable to build pipeline: %s", error->message); + gchar *message = g_strdup_printf("Unable to build pipeline: %s", error->message); g_clear_error(&error); set_ui_message(message, data); g_free(message); @@ -280,12 +279,9 @@ static void *app_function(void *userdata) { g_signal_connect (G_OBJECT(bus), "message::error", (GCallback) error_cb, data); g_signal_connect (G_OBJECT(bus), "message::eos", (GCallback) eos_cb, data); - g_signal_connect (G_OBJECT(bus), "message::state-changed", - (GCallback) state_changed_cb, data); - g_signal_connect (G_OBJECT(bus), "message::buffering", - (GCallback) buffering_cb, data); - g_signal_connect (G_OBJECT(bus), "message::clock-lost", - (GCallback) clock_lost_cb, data); + g_signal_connect (G_OBJECT(bus), "message::state-changed", (GCallback) state_changed_cb, data); + g_signal_connect (G_OBJECT(bus), "message::buffering", (GCallback) buffering_cb, data); + g_signal_connect (G_OBJECT(bus), "message::clock-lost", (GCallback) clock_lost_cb, data); gst_object_unref(bus); /* Create a GLib Main Loop and set it to run */ @@ -378,14 +374,10 @@ static void gst_native_pause(JNIEnv *env, jobject thiz) { /* Static class initializer: retrieve method and field IDs */ static jboolean gst_native_class_init(JNIEnv *env, jclass klass) { - custom_data_field_id = - (*env)->GetFieldID(env, klass, "native_custom_data", "J"); - set_message_method_id = - (*env)->GetMethodID(env, klass, "setMessage", "(Ljava/lang/String;)V"); - on_gstreamer_initialized_method_id = - (*env)->GetMethodID(env, klass, "onGStreamerInitialized", "()V"); - on_media_size_changed_method_id = - (*env)->GetMethodID(env, klass, "onMediaSizeChanged", "(II)V"); + custom_data_field_id = (*env)->GetFieldID(env, klass, "native_custom_data", "J"); + set_message_method_id = (*env)->GetMethodID(env, klass, "setMessage", "(Ljava/lang/String;)V"); + on_gstreamer_initialized_method_id = (*env)->GetMethodID(env, klass, "onGStreamerInitialized", "()V"); + on_media_size_changed_method_id = (*env)->GetMethodID(env, klass, "onMediaSizeChanged", "(II)V"); if (!custom_data_field_id || !set_message_method_id || !on_gstreamer_initialized_method_id || !on_media_size_changed_method_id) { @@ -414,7 +406,6 @@ static void gst_native_surface_init(JNIEnv *env, jobject thiz, jobject surface) data->native_window); if (data->pipeline) { gst_video_overlay_expose(GST_VIDEO_OVERLAY (data->pipeline)); - gst_video_overlay_expose(GST_VIDEO_OVERLAY (data->pipeline)); } return; } else { diff --git a/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java b/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java index e23256f..76e33a3 100644 --- a/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java +++ b/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java @@ -128,12 +128,13 @@ public class GstLibrary implements SurfaceHolder.Callback { } public void surfaceCreated(SurfaceHolder holder) { - nativeSurfaceInit (holder.getSurface()); Log.d("GStreamer", "Surface created: " + holder.getSurface()); + nativeSurfaceInit (holder.getSurface()); } public void surfaceDestroyed(SurfaceHolder holder) { Log.d("GStreamer", "Surface destroyed"); + nativePause(); nativeSurfaceFinalize(); } }