fix: 'have_data' may be used uninitialized [-Werror=maybe-uninitialized]
[platform/adaptation/emulator/gst-plugins-emulator.git] / src / gstmaruaudenc.c
index d58afeb..f64612e 100644 (file)
@@ -130,6 +130,9 @@ gst_maruaudenc_base_init (GstMaruAudEncClass *klass)
   gst_element_class_add_pad_template (element_class, srctempl);
   gst_element_class_add_pad_template (element_class, sinktempl);
 
+  gst_caps_unref (srccaps);
+  gst_caps_unref (sinkcaps);
+
   klass->codec = codec;
   klass->sinktempl = sinktempl;
   klass->srctempl = srctempl;
@@ -259,6 +262,11 @@ gst_maruaudenc_set_format (GstAudioEncoder *encoder, GstAudioInfo *info)
   GstCaps *icaps;
   gsize frame_size;
 
+  if (!maruaudenc) {
+    GST_ERROR("invalid maru audio encoder");
+    return FALSE;
+  }
+
   GstMaruAudEncClass *oclass =
     (GstMaruAudEncClass *) (G_OBJECT_GET_CLASS (maruaudenc));
 
@@ -292,9 +300,11 @@ gst_maruaudenc_set_format (GstAudioEncoder *encoder, GstAudioInfo *info)
   */
   if (!maruaudenc->context) {
     GST_ERROR("ctx NULL");
+    return FALSE;
   }
   if (!maruaudenc->context->codec) {
     GST_ERROR("codec NULL");
+    return FALSE;
   }
   gst_maru_audioinfo_to_context (info, maruaudenc->context);
 
@@ -413,7 +423,7 @@ gst_maruaudenc_encode_audio (GstMaruAudEnc *maruaudenc, guint8 *audio_in,
 static void
 gst_maruaudenc_drain (GstMaruAudEnc *maruaudenc)
 {
-  gint have_data, try = 0;
+  gint have_data = 0, try = 0;
 
   GST_LOG_OBJECT (maruaudenc,
     "codec has delay capabilities, calling until libav has drained everything");