{
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
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));
}
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;
}
}