From cb8f46507f7315b80684675a3fe99a2bcd017673 Mon Sep 17 00:00:00 2001 From: Hyunsoo Park Date: Fri, 10 Dec 2021 16:25:52 +0900 Subject: [PATCH] [rtsp-mediafa-factory] Remove g_strdup of no use and add g_autofree Change-Id: I0aacbccb733da1eeb4a5d56450e22670c7284cfb Signed-off-by: Hyunsoo Park --- gst/rtsp-server/rtsp-media-factory-wfd.c | 98 ++++++++------------------------ packaging/gst-rtsp-server.spec | 2 +- 2 files changed, 25 insertions(+), 75 deletions(-) diff --git a/gst/rtsp-server/rtsp-media-factory-wfd.c b/gst/rtsp-server/rtsp-media-factory-wfd.c index 9aa9f92..b6e087c 100644 --- a/gst/rtsp-server/rtsp-media-factory-wfd.c +++ b/gst/rtsp-server/rtsp-media-factory-wfd.c @@ -531,7 +531,7 @@ _rtsp_media_factory_wfd_create_audio_capture_bin (GstRTSPMediaFactoryWFD * guint channels = 0; gboolean is_enc_req = TRUE; guint freq = 0; - gchar *acodec = NULL; + g_autofree gchar *acodec = NULL; priv = factory->priv; @@ -541,7 +541,7 @@ _rtsp_media_factory_wfd_create_audio_capture_bin (GstRTSPMediaFactoryWFD * } priv->audio_srcbin = (GstBin *)gst_bin_new ("audio"); - + /* create audio src element */ audiosrc = gst_element_factory_make ("pulsesrc", "audiosrc"); if (!audiosrc) { @@ -700,8 +700,6 @@ _rtsp_media_factory_wfd_create_audio_capture_bin (GstRTSPMediaFactoryWFD * } priv->audio_queue = aqueue; - if (acodec) - g_free (acodec); if (audio_properties_name) gst_structure_free (audio_properties_name); return TRUE; @@ -709,8 +707,6 @@ _rtsp_media_factory_wfd_create_audio_capture_bin (GstRTSPMediaFactoryWFD * create_error: gst_object_unref (acaps); gst_object_unref (aqueue); - if (acodec) - g_free (acodec); if (audio_properties_name) gst_structure_free (audio_properties_name); return FALSE; @@ -724,7 +720,6 @@ _rtsp_media_factory_wfd_create_videotest_bin (GstRTSPMediaFactoryWFD * factory, GstElement *vcaps = NULL; GstElement *videoconvert = NULL; GstElement *venc_caps = NULL; - gchar *vcodec = NULL; GstElement *venc = NULL; GstElement *vparse = NULL; GstElement *vqueue = NULL; @@ -777,17 +772,12 @@ _rtsp_media_factory_wfd_create_videotest_bin (GstRTSPMediaFactoryWFD * factory, "framerate", GST_TYPE_FRACTION, priv->video_framerate, 1, NULL), NULL); - if (priv->video_codec == GST_WFD_VIDEO_H264) - vcodec = g_strdup (priv->video_encoder); - else { + if (priv->video_codec != GST_WFD_VIDEO_H264) { GST_ERROR_OBJECT (factory, "Yet to support other than H264 format"); goto create_error; } - venc = gst_element_factory_make (vcodec, "videoenc"); - if (vcodec) - g_free (vcodec); - + venc = gst_element_factory_make (priv->video_encoder, "videoenc"); if (!venc) { GST_ERROR_OBJECT (factory, "failed to create video encoder element"); goto create_error; @@ -840,7 +830,6 @@ _rtsp_media_factory_wfd_create_waylandsrc_bin (GstRTSPMediaFactoryWFD * factory, { GstElement *videosrc = NULL; GstElement *vcaps = NULL; - gchar *vcodec = NULL; GstElement *venc = NULL; GstElement *vparse = NULL; GstElement *vqueue = NULL; @@ -878,17 +867,12 @@ _rtsp_media_factory_wfd_create_waylandsrc_bin (GstRTSPMediaFactoryWFD * factory, "framerate", GST_TYPE_FRACTION, priv->video_framerate, 1, NULL), NULL); - if (priv->video_codec == GST_WFD_VIDEO_H264) - vcodec = g_strdup (priv->video_encoder); - else { + if (priv->video_codec != GST_WFD_VIDEO_H264) { GST_ERROR_OBJECT (factory, "Yet to support other than H264 format"); goto create_error; } - venc = gst_element_factory_make (vcodec, "videoenc"); - if (vcodec) - g_free (vcodec); - + venc = gst_element_factory_make (priv->video_encoder, "videoenc"); if (!venc) { GST_ERROR_OBJECT (factory, "failed to create video encoder element"); goto create_error; @@ -939,7 +923,6 @@ _rtsp_media_factory_wfd_create_camera_capture_bin (GstRTSPMediaFactoryWFD * GstElement *venc = NULL; GstElement *vparse = NULL; GstElement *vqueue = NULL; - gchar *vcodec = NULL; GstRTSPMediaFactoryWFDPrivate *priv = NULL; priv = factory->priv; @@ -967,17 +950,12 @@ _rtsp_media_factory_wfd_create_camera_capture_bin (GstRTSPMediaFactoryWFD * "framerate", GST_TYPE_FRACTION, priv->video_framerate, 1, NULL), NULL); - if (priv->video_codec == GST_WFD_VIDEO_H264) - vcodec = g_strdup (priv->video_encoder); - else { + if (priv->video_codec != GST_WFD_VIDEO_H264) { GST_ERROR_OBJECT (factory, "Yet to support other than H264 format"); goto create_error; } - venc = gst_element_factory_make (vcodec, "videoenc"); - if (vcodec) - g_free (vcodec); - + venc = gst_element_factory_make (priv->video_encoder, "videoenc"); if (!venc) { GST_ERROR_OBJECT (factory, "failed to create video encoder element"); goto create_error; @@ -1027,7 +1005,6 @@ _rtsp_media_factory_wfd_create_xcapture_bin (GstRTSPMediaFactoryWFD * factory, GstElement *vcaps = NULL; GstElement *venc_caps = NULL; GstElement *videoconvert = NULL, *videoscale = NULL; - gchar *vcodec = NULL; GstElement *venc = NULL; GstElement *vparse = NULL; GstElement *vqueue = NULL; @@ -1070,17 +1047,12 @@ _rtsp_media_factory_wfd_create_xcapture_bin (GstRTSPMediaFactoryWFD * factory, "framerate", GST_TYPE_FRACTION, priv->video_framerate, 1, NULL), NULL); - if (priv->video_codec == GST_WFD_VIDEO_H264) - vcodec = g_strdup (priv->video_encoder); - else { + if (priv->video_codec != GST_WFD_VIDEO_H264) { GST_ERROR_OBJECT (factory, "Yet to support other than H264 format"); goto create_error; } - venc = gst_element_factory_make (vcodec, "videoenc"); - if (vcodec) - g_free (vcodec); - + venc = gst_element_factory_make (priv->video_encoder, "videoenc"); if (!venc) { GST_ERROR_OBJECT (factory, "failed to create video encoder element"); goto create_error; @@ -1145,7 +1117,6 @@ _rtsp_media_factory_wfd_create_xvcapture_bin (GstRTSPMediaFactoryWFD * factory, { GstElement *videosrc = NULL; GstElement *vcaps = NULL; - gchar *vcodec = NULL; GstElement *venc = NULL; GstElement *vparse = NULL; GstElement *vqueue = NULL; @@ -1177,14 +1148,12 @@ _rtsp_media_factory_wfd_create_xvcapture_bin (GstRTSPMediaFactoryWFD * factory, "framerate", GST_TYPE_FRACTION, priv->video_framerate, 1, NULL), NULL); - if (priv->video_codec == GST_WFD_VIDEO_H264) { - vcodec = g_strdup (priv->video_encoder); - } else { + if (priv->video_codec != GST_WFD_VIDEO_H264) { GST_ERROR_OBJECT (factory, "Yet to support other than H264 format"); goto create_error; } - venc = gst_element_factory_make (vcodec, "videoenc"); + venc = gst_element_factory_make (priv->video_encoder, "videoenc"); if (!venc) { GST_ERROR_OBJECT (factory, "failed to create video encoder element"); goto create_error; @@ -1217,16 +1186,13 @@ _rtsp_media_factory_wfd_create_xvcapture_bin (GstRTSPMediaFactoryWFD * factory, priv->video_queue = vqueue; priv->venc = venc; - if (vcodec) - g_free (vcodec); return TRUE; create_error: gst_object_unref (videosrc); gst_object_unref (vqueue); - if (vcodec) - g_free (vcodec); + return FALSE; } @@ -1571,24 +1537,21 @@ _rtsp_media_factory_wfd_demux_pad_added_cb (GstElement *element, GstRTSPMediaWFDDirectPipelineData *pipe_data = NULL; GstCaps *caps = gst_pad_get_current_caps (pad); - gchar *pad_name = gst_pad_get_name (pad); - gchar *pad_caps = gst_caps_to_string (caps); - gchar *temp_caps = NULL; + g_autofree gchar *pad_name = gst_pad_get_name (pad); + g_autofree gchar *caps_string = gst_caps_to_string (caps); + g_autofree gchar *temp_caps = NULL; gst_caps_unref (caps); factory = (GstRTSPMediaFactoryWFD *) data; priv = factory->priv; pipe_data = priv->direct_pipe; - temp_caps = g_ascii_strdown(pad_caps, -1); + temp_caps = g_ascii_strdown(caps_string, -1); if (g_strrstr (temp_caps, "audio")) { sinkpad = gst_element_get_static_pad (pipe_data->ap, "sink"); if (gst_pad_is_linked (sinkpad)) { gst_object_unref (sinkpad); - g_free (pad_caps); - g_free (pad_name); - g_free (temp_caps); GST_DEBUG_OBJECT (factory, "pad linked"); return; } @@ -1609,10 +1572,6 @@ _rtsp_media_factory_wfd_demux_pad_added_cb (GstElement *element, sinkpad = NULL; } } - - g_free (pad_caps); - g_free (pad_name); - g_free (temp_caps); } static GstPadProbeReturn @@ -1732,13 +1691,13 @@ _rtsp_media_factory_wfd_create_direct_pipeline(GstRTSPMediaFactoryWFD * factory) { GstElement *src = NULL; GstElement *demux = NULL; - gchar *path = NULL; + g_autofree gchar *path = NULL; + g_autofree gchar *elem_name = NULL; GstPad *srcpad = NULL; GstPad *mux_vsinkpad = NULL; GstPad *mux_asinkpad = NULL; GstRTSPMediaFactoryWFDPrivate *priv = NULL; GstRTSPMediaWFDDirectPipelineData *pipe_data = NULL; - gchar *elem_name = NULL; priv = factory->priv; pipe_data = priv->direct_pipe; @@ -1769,16 +1728,12 @@ _rtsp_media_factory_wfd_create_direct_pipeline(GstRTSPMediaFactoryWFD * factory) if (path == NULL) { GST_ERROR_OBJECT(factory, "No file path"); - g_free (elem_name); return FALSE; } g_object_set (src, "location", path, NULL); - g_free (path); } else g_object_set (src, "uri", pipe_data->uri, NULL); - g_free (elem_name); - gst_bin_add_many (pipe_data->pipeline, src, demux, pipe_data->ap, pipe_data->vp, pipe_data->aq, pipe_data->vq, pipe_data->tsmux, pipe_data->mux_fs, NULL); @@ -1868,7 +1823,7 @@ static void _rtsp_media_factory_wfd_decodebin_element_added_cb (GstElement *decodebin, GstElement *child, void *user_data) { - gchar *elem_name = g_ascii_strdown(g_type_name(G_OBJECT_TYPE(child)), -1); + g_autofree gchar *elem_name = g_ascii_strdown(g_type_name(G_OBJECT_TYPE(child)), -1); GstRTSPMediaFactoryWFD *factory = NULL; GstRTSPMediaFactoryWFDPrivate *priv = NULL; @@ -1883,28 +1838,25 @@ _rtsp_media_factory_wfd_decodebin_element_added_cb (GstElement *decodebin, priv->res.ac3_found++; if (g_strrstr (elem_name, "demux")) priv->res.demux_fact = gst_element_get_factory(child); - - g_free (elem_name); } static void _rtsp_media_factory_wfd_uridecodebin_element_added_cb (GstElement *uridecodebin, GstElement *child, void *user_data) { + g_autofree gchar *elem_name = g_ascii_strdown(g_type_name(G_OBJECT_TYPE(child)), -1); GstRTSPMediaFactoryWFD *factory = NULL; GstRTSPMediaFactoryWFDPrivate *priv = NULL; factory = (GstRTSPMediaFactoryWFD *) user_data; priv = factory->priv; - gchar *elem_name = g_ascii_strdown(g_type_name(G_OBJECT_TYPE(child)), -1); + if (g_strrstr (elem_name, "src")) priv->res.src_fact = gst_element_get_factory(child); if (G_OBJECT_TYPE(child) == priv->decodebin_type) g_signal_connect_object (child, "element-added", G_CALLBACK (_rtsp_media_factory_wfd_decodebin_element_added_cb), factory, 0); - - g_free (elem_name); } static void @@ -1983,11 +1935,9 @@ _rtsp_media_factory_wfd_discover_pipe_bus_call (GstBus *bus, switch (GST_MESSAGE_TYPE (msg)) { case GST_MESSAGE_ERROR: { - gchar *debug; - GError *error; + GError *error = NULL; - gst_message_parse_error (msg, &error, &debug); - g_free (debug); + gst_message_parse_error (msg, &error, NULL); GST_ERROR_OBJECT (factory, "Error: %s", error->message); g_error_free (error); diff --git a/packaging/gst-rtsp-server.spec b/packaging/gst-rtsp-server.spec index 57c486f..d1b9d12 100644 --- a/packaging/gst-rtsp-server.spec +++ b/packaging/gst-rtsp-server.spec @@ -1,7 +1,7 @@ Name: gst-rtsp-server Summary: Multimedia Framework Library Version: 1.16.2 -Release: 8 +Release: 9 Url: http://gstreamer.freedesktop.org/ Group: System/Libraries License: LGPL-2.0+ -- 2.7.4