qtmux: Adding some ifs for protection

Adding somes ifs to protect against warning conditions
that might happen when upstream element is not sane

Fixes #600895
diff --git a/gst/quicktime/atoms.c b/gst/quicktime/atoms.c
index 838b50f..2f69098 100644
--- a/gst/quicktime/atoms.c
+++ b/gst/quicktime/atoms.c
@@ -2425,9 +2425,13 @@
 {
   trak->mdia.mdhd.time_info.duration =
       atom_stts_get_total_duration (&trak->mdia.minf.stbl.stts);
-  trak->tkhd.duration =
-      gst_util_uint64_scale (trak->mdia.mdhd.time_info.duration, moov_timescale,
-      trak->mdia.mdhd.time_info.timescale);
+  if (trak->mdia.mdhd.time_info.timescale != 0) {
+    trak->tkhd.duration =
+        gst_util_uint64_scale (trak->mdia.mdhd.time_info.duration,
+        moov_timescale, trak->mdia.mdhd.time_info.timescale);
+  } else {
+    trak->tkhd.duration = 0;
+  }
 }
 
 static guint32
diff --git a/gst/quicktime/gstqtmux.c b/gst/quicktime/gstqtmux.c
index b52b871..41ea97f 100644
--- a/gst/quicktime/gstqtmux.c
+++ b/gst/quicktime/gstqtmux.c
@@ -1126,7 +1126,7 @@
         GST_PAD_NAME (qtpad->collect.pad));
     ret = gst_qt_mux_add_buffer (qtmux, qtpad, NULL);
     if (ret != GST_FLOW_OK)
-      GST_DEBUG_OBJECT (qtmux, "Failed to send last buffer for %s, "
+      GST_WARNING_OBJECT (qtmux, "Failed to send last buffer for %s, "
           "flow return: %s", GST_PAD_NAME (qtpad->collect.pad),
           gst_flow_get_name (ret));
   }
@@ -1405,7 +1405,8 @@
     GST_ELEMENT_ERROR (qtmux, CORE, NEGOTIATION, (NULL),
         ("format wasn't negotiated before buffer flow on pad %s",
             GST_PAD_NAME (pad->collect.pad)));
-    gst_buffer_unref (buf);
+    if (buf)
+      gst_buffer_unref (buf);
     return GST_FLOW_NOT_NEGOTIATED;
   }
 }