qtmux: Always update reserved-duration-remaining
If a reserved-max-duration is set, we should always track
and update the reserved-duration-remaining estimate, even
if we're not sending periodic moov updates downstream for
full robust muxing.
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index 31c8de0..f9364f3 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -3780,6 +3780,18 @@
guint64 mdat_offset = qtmux->mdat_pos + 16 + qtmux->mdat_size;
GST_OBJECT_LOCK (qtmux);
+
+ /* Update the offset of how much we've muxed, so the
+ * report of remaining space keeps counting down */
+ if (position > qtmux->last_moov_update &&
+ position - qtmux->last_moov_update > qtmux->muxed_since_last_update) {
+ GST_LOG_OBJECT (qtmux,
+ "Muxed time %" G_GUINT64_FORMAT " since last moov update",
+ qtmux->muxed_since_last_update);
+ qtmux->muxed_since_last_update = position - qtmux->last_moov_update;
+ }
+
+ /* Next, check if we're supposed to send periodic moov updates downstream */
if (qtmux->reserved_moov_update_period == GST_CLOCK_TIME_NONE) {
GST_OBJECT_UNLOCK (qtmux);
return GST_FLOW_OK;
@@ -3790,15 +3802,6 @@
(position <= qtmux->last_moov_update ||
(position - qtmux->last_moov_update) <
qtmux->reserved_moov_update_period)) {
- /* Update the offset of how much we've muxed, so the
- * report of remaining space keeps counting down */
- if (position > qtmux->last_moov_update &&
- position - qtmux->last_moov_update > qtmux->muxed_since_last_update) {
- GST_LOG_OBJECT (qtmux,
- "Muxed time %" G_GUINT64_FORMAT " since last moov update",
- qtmux->muxed_since_last_update);
- qtmux->muxed_since_last_update = position - qtmux->last_moov_update;
- }
GST_OBJECT_UNLOCK (qtmux);
return GST_FLOW_OK; /* No update needed yet */
}