summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2021-01-15 20:53:27 +1100
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-08-23 04:17:36 +0000
commit0d27e6f86ef9719b816a808709d9accddf11cc9f (patch)
treea7c128b713b87e8db3989ca97ba519a3d2f0076a
parentd806486503c50b40b115b5340e633d7b228bf93f (diff)
downloadgstreamer-plugins-good-0d27e6f86ef9719b816a808709d9accddf11cc9f.tar.gz
isomp4: actually make streamable fallback work
We weren't setting the fragment_mode field anymore now that the implementation doesn't change based on the value of the streamable property. This lead to invalid files. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1060>
-rw-r--r--gst/isomp4/gstqtmux.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index 01e510199..1130071ac 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -3077,11 +3077,14 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
if (qtmux->fragment_mode == GST_QT_MUX_FRAGMENT_STREAMABLE)
break;
if (!qtmux->downstream_seekable) {
- GST_WARNING_OBJECT (qtmux, "downstream is not seekable, but "
- "streamable=false. Will ignore that and create streamable output "
- "instead");
- qtmux->streamable = TRUE;
- g_object_notify (G_OBJECT (qtmux), "streamable");
+ if (qtmux->fragment_mode == GST_QT_MUX_FRAGMENT_DASH_OR_MSS) {
+ GST_WARNING_OBJECT (qtmux, "downstream is not seekable, but "
+ "streamable=false. Will ignore that and create streamable output "
+ "instead");
+ qtmux->streamable = TRUE;
+ g_object_notify (G_OBJECT (qtmux), "streamable");
+ qtmux->fragment_mode = GST_QT_MUX_FRAGMENT_STREAMABLE;
+ }
}
break;
case GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL: