From 318190b9c10290f4cc6cb33f6a6f09fd8e4fca9a Mon Sep 17 00:00:00 2001 From: cxh Date: Thu, 20 Nov 2025 08:47:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=98=BB=E5=A1=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mqtt_client.cpp | 2 +- src/rtsp_manager.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mqtt_client.cpp b/src/mqtt_client.cpp index 00d1b7e..1e3ec10 100644 --- a/src/mqtt_client.cpp +++ b/src/mqtt_client.cpp @@ -35,7 +35,7 @@ void MQTTClient::connect() auto connOpts = mqtt::connect_options_builder() .clean_session(config_.clean_session) .automatic_reconnect(true) - .keep_alive_interval(std::chrono::seconds(config_.keep_alive)) + .keep_alive_interval(std::chrono::seconds(30)) .user_name(config_.username) .password(config_.password) .finalize(); diff --git a/src/rtsp_manager.cpp b/src/rtsp_manager.cpp index 88ab873..9b6f5d0 100644 --- a/src/rtsp_manager.cpp +++ b/src/rtsp_manager.cpp @@ -59,6 +59,8 @@ GstRTSPMediaFactory *RTSPManager::create_media_factory(const Camera &cam) gst_rtsp_media_factory_set_launch(factory, launch_str.c_str()); gst_rtsp_media_factory_set_shared(factory, TRUE); + gst_rtsp_media_factory_set_suspend_mode(factory, GST_RTSP_MEDIA_SUSPEND_MODE_RESET); + // 使用 media-configure 信号代替 media-created g_signal_connect_data(factory, "media-configure", G_CALLBACK(on_media_created), g_strdup(cam.name.c_str()), (GClosureNotify)g_free, static_cast(0)); @@ -190,8 +192,7 @@ gboolean RTSPManager::unmount_camera_in_main(gpointer data) { for (GstRTSPMedia *media : it->second) { - gst_element_set_state(gst_rtsp_media_get_element(media), GST_STATE_NULL); - // g_object_unref(media); + gst_rtsp_media_unprepare(media); } it->second.clear(); media_map.erase(it);