qsv: Remove strcpy for DRM device path
authorSeungha Yang <seungha@centricular.com>
Wed, 2 Mar 2022 19:22:15 +0000 (04:22 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 3 Mar 2022 11:29:33 +0000 (11:29 +0000)
Simplify code. It's just one-time allocation, so don't need to worry
about leaking.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1835>

subprojects/gst-plugins-bad/sys/qsv/gstqsvdecoder.h
subprojects/gst-plugins-bad/sys/qsv/gstqsvencoder.h
subprojects/gst-plugins-bad/sys/qsv/gstqsvh264dec.cpp
subprojects/gst-plugins-bad/sys/qsv/gstqsvh264enc.cpp
subprojects/gst-plugins-bad/sys/qsv/gstqsvh265enc.cpp
subprojects/gst-plugins-bad/sys/qsv/gstqsvvp9enc.cpp

index 8b5138f..89bf2e7 100644 (file)
@@ -66,7 +66,7 @@ struct _GstQsvDecoderClass
   gint64 adapter_luid;
 
   /* VA display device path, for Linux */
-  gchar display_path[64];
+  gchar *display_path;
 };
 
 GType gst_qsv_decoder_get_type (void);
index e0ed95b..2f301ba 100644 (file)
@@ -66,7 +66,7 @@ struct _GstQsvEncoderClass
   gint64 adapter_luid;
 
   /* VA display device path, for Linux */
-  gchar display_path[64];
+  gchar *display_path;
 
   gboolean (*set_format)       (GstQsvEncoder * encoder,
                                 GstVideoCodecState * state,
index 80f5384..d17f0b0 100644 (file)
@@ -54,10 +54,7 @@ gst_qsv_h264_dec_class_init (GstQsvH264DecClass * klass, gpointer data)
   qsvdec_class->codec_id = MFX_CODEC_AVC;
   qsvdec_class->impl_index = cdata->impl_index;
   qsvdec_class->adapter_luid = cdata->adapter_luid;
-  if (cdata->display_path) {
-    strncpy (qsvdec_class->display_path, cdata->display_path,
-        sizeof (qsvdec_class->display_path));
-  }
+  qsvdec_class->display_path = cdata->display_path;
 
   gst_element_class_set_static_metadata (element_class,
       "Intel Quick Sync Video H.264 Decoder",
@@ -74,7 +71,6 @@ gst_qsv_h264_dec_class_init (GstQsvH264DecClass * klass, gpointer data)
 
   gst_caps_unref (cdata->sink_caps);
   gst_caps_unref (cdata->src_caps);
-  g_free (cdata->display_path);
   g_free (cdata);
 }
 
index 53e1794..8184739 100644 (file)
@@ -272,8 +272,7 @@ gst_qsv_h264_enc_class_init (GstQsvH264EncClass * klass, gpointer data)
   qsvenc_class->codec_id = MFX_CODEC_AVC;
   qsvenc_class->impl_index = cdata->impl_index;
   qsvenc_class->adapter_luid = cdata->adapter_luid;
-  if (cdata->display_path)
-    strcpy (qsvenc_class->display_path, cdata->display_path);
+  qsvenc_class->display_path = cdata->display_path;
 
   object_class->finalize = gst_qsv_h264_enc_finalize;
   object_class->set_property = gst_qsv_h264_enc_set_property;
@@ -452,7 +451,6 @@ gst_qsv_h264_enc_class_init (GstQsvH264EncClass * klass, gpointer data)
 
   gst_caps_unref (cdata->sink_caps);
   gst_caps_unref (cdata->src_caps);
-  g_free (cdata->display_path);
   g_free (cdata);
 }
 
index b01e801..1fd726d 100644 (file)
@@ -192,8 +192,7 @@ gst_qsv_h265_enc_class_init (GstQsvH265EncClass * klass, gpointer data)
   qsvenc_class->codec_id = MFX_CODEC_AVC;
   qsvenc_class->impl_index = cdata->impl_index;
   qsvenc_class->adapter_luid = cdata->adapter_luid;
-  if (cdata->display_path)
-    strcpy (qsvenc_class->display_path, cdata->display_path);
+  qsvenc_class->display_path = cdata->display_path;
 
   object_class->finalize = gst_qsv_h265_enc_finalize;
   object_class->set_property = gst_qsv_h265_enc_set_property;
@@ -280,7 +279,6 @@ gst_qsv_h265_enc_class_init (GstQsvH265EncClass * klass, gpointer data)
 
   gst_caps_unref (cdata->sink_caps);
   gst_caps_unref (cdata->src_caps);
-  g_free (cdata->display_path);
   g_free (cdata);
 }
 
index 8dfc55f..c3ed19c 100644 (file)
@@ -146,8 +146,7 @@ gst_qsv_vp9_enc_class_init (GstQsvVP9EncClass * klass, gpointer data)
   qsvenc_class->codec_id = MFX_CODEC_VP9;
   qsvenc_class->impl_index = cdata->impl_index;
   qsvenc_class->adapter_luid = cdata->adapter_luid;
-  if (cdata->display_path)
-    strcpy (qsvenc_class->display_path, cdata->display_path);
+  qsvenc_class->display_path = cdata->display_path;
 
   object_class->finalize = gst_qsv_vp9_enc_finalize;
   object_class->set_property = gst_qsv_vp9_enc_set_property;
@@ -220,7 +219,6 @@ gst_qsv_vp9_enc_class_init (GstQsvVP9EncClass * klass, gpointer data)
 
   gst_caps_unref (cdata->sink_caps);
   gst_caps_unref (cdata->src_caps);
-  g_free (cdata->display_path);
   g_free (cdata);
 }