flvmux, matroskamux, qtmux: if in doubt about downstream seekability default to strea...
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Mon, 27 Feb 2012 01:09:11 +0000 (01:09 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Mon, 27 Feb 2012 01:12:09 +0000 (01:12 +0000)
If downstream didn't answer our SEEKING query and told us
it's seekable, default to streaming=true. We couldn't do
this in 0.10 for backwards compatibility reasons, but we
can in 0.11. Play it safe.

gst/flv/gstflvmux.c
gst/isomp4/gstqtmux.c
gst/matroska/matroska-mux.c

index 554cae9..8119e9d 100644 (file)
@@ -1153,17 +1153,17 @@ gst_flv_mux_write_header (GstFlvMux * mux)
     if (gst_pad_peer_query (mux->srcpad, query)) {
       gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
       GST_INFO_OBJECT (mux, "downstream is %sseekable", seekable ? "" : "not ");
-      if (!seekable) {
-        mux->streamable = TRUE;
-        g_object_notify (G_OBJECT (mux), "streamable");
-        GST_WARNING_OBJECT (mux, "downstream is not seekable, but "
-            "streamable=false. Will ignore that and create streamable output "
-            "instead");
-      }
     } else {
       /* have to assume seeking is supported if query not handled downstream */
-      /* FIXME 0.11: change to query not handled => seeking not supported */
       GST_WARNING_OBJECT (mux, "downstream did not handle seeking query");
+      seekable = FALSE;
+    }
+    if (!seekable) {
+      mux->streamable = TRUE;
+      g_object_notify (G_OBJECT (mux), "streamable");
+      GST_WARNING_OBJECT (mux, "downstream is not seekable, but "
+          "streamable=false. Will ignore that and create streamable output "
+          "instead");
     }
   }
 
index e51f48c..9e56763 100644 (file)
@@ -1639,17 +1639,17 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
       gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
       GST_INFO_OBJECT (qtmux, "downstream is %sseekable",
           seekable ? "" : "not ");
-      if (!seekable) {
-        qtmux->streamable = TRUE;
-        g_object_notify (G_OBJECT (qtmux), "streamable");
-        GST_WARNING_OBJECT (qtmux, "downstream is not seekable, but "
-            "streamable=false. Will ignore that and create streamable output "
-            "instead");
-      }
     } else {
       /* have to assume seeking is supported if query not handled downstream */
-      /* FIXME 0.11: change to query not handled => seeking not supported */
       GST_WARNING_OBJECT (qtmux, "downstream did not handle seeking query");
+      seekable = FALSE;
+    }
+    if (!seekable) {
+      qtmux->streamable = TRUE;
+      g_object_notify (G_OBJECT (qtmux), "streamable");
+      GST_WARNING_OBJECT (qtmux, "downstream is not seekable, but "
+          "streamable=false. Will ignore that and create streamable output "
+          "instead");
     }
   }
 
index e7c42f3..4b5c8f6 100644 (file)
@@ -2349,17 +2349,17 @@ gst_matroska_mux_start (GstMatroskaMux * mux)
     if (gst_pad_peer_query (mux->srcpad, query)) {
       gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
       GST_INFO_OBJECT (mux, "downstream is %sseekable", seekable ? "" : "not ");
-      if (!seekable) {
-        mux->streamable = TRUE;
-        g_object_notify (G_OBJECT (mux), "streamable");
-        GST_WARNING_OBJECT (mux, "downstream is not seekable, but "
-            "streamable=false. Will ignore that and create streamable output "
-            "instead");
-      }
     } else {
       /* have to assume seeking is supported if query not handled downstream */
-      /* FIXME 0.11: change to query not handled => seeking not supported */
       GST_WARNING_OBJECT (mux, "downstream did not handle seeking query");
+      seekable = FALSE;
+    }
+    if (!seekable) {
+      mux->streamable = TRUE;
+      g_object_notify (G_OBJECT (mux), "streamable");
+      GST_WARNING_OBJECT (mux, "downstream is not seekable, but "
+          "streamable=false. Will ignore that and create streamable output "
+          "instead");
     }
   }