va: Fix path leak
authorEdward Hervey <edward@centricular.com>
Thu, 19 Jan 2023 14:36:40 +0000 (15:36 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Thu, 19 Jan 2023 15:41:44 +0000 (16:41 +0100)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3755>

subprojects/gst-plugins-bad/sys/va/gstvah264enc.c
subprojects/gst-plugins-bad/sys/va/gstvah265enc.c

index 17120cb5937706ecc754963f0126f084da23ac06..5e57d4482eb41f6eff0c33d7df8b45d88a3a2457 100644 (file)
@@ -3514,16 +3514,18 @@ gst_va_h264_enc_class_init (gpointer g_klass, gpointer class_data)
         va_enc_class->entrypoint);
     if (gst_va_encoder_get_rate_control_enum (encoder,
             vah264enc_class->rate_control)) {
+      gchar *basename = g_path_get_basename (va_enc_class->render_device_path);
       g_snprintf (vah264enc_class->rate_control_type_name,
           G_N_ELEMENTS (vah264enc_class->rate_control_type_name) - 1,
           "GstVaEncoderRateControl_%" GST_FOURCC_FORMAT "%s_%s",
           GST_FOURCC_ARGS (va_enc_class->codec),
           (va_enc_class->entrypoint == VAEntrypointEncSliceLP) ? "_LP" : "",
-          g_path_get_basename (va_enc_class->render_device_path));
+          basename);
       vah264enc_class->rate_control_type =
           g_enum_register_static (vah264enc_class->rate_control_type_name,
           vah264enc_class->rate_control);
       gst_type_mark_as_plugin_api (vah264enc_class->rate_control_type, 0);
+      g_free (basename);
     }
     gst_object_unref (encoder);
     gst_object_unref (display);
index 6d6537cdc36ea7b1ec270e4a88e730b85b467fa8..f5421581762ddfa84863e5c747fdbf83857a13a2 100644 (file)
@@ -4987,16 +4987,18 @@ gst_va_h265_enc_class_init (gpointer g_klass, gpointer class_data)
         va_enc_class->entrypoint);
     if (gst_va_encoder_get_rate_control_enum (encoder,
             vah265enc_class->rate_control)) {
+      gchar *basename = g_path_get_basename (va_enc_class->render_device_path);
       g_snprintf (vah265enc_class->rate_control_type_name,
           G_N_ELEMENTS (vah265enc_class->rate_control_type_name) - 1,
           "GstVaEncoderRateControl_%" GST_FOURCC_FORMAT "%s_%s",
           GST_FOURCC_ARGS (va_enc_class->codec),
           (va_enc_class->entrypoint == VAEntrypointEncSliceLP) ? "_LP" : "",
-          g_path_get_basename (va_enc_class->render_device_path));
+          basename);
       vah265enc_class->rate_control_type =
           g_enum_register_static (vah265enc_class->rate_control_type_name,
           vah265enc_class->rate_control);
       gst_type_mark_as_plugin_api (vah265enc_class->rate_control_type, 0);
+      g_free (basename);
     }
     gst_object_unref (encoder);
     gst_object_unref (display);