mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 14:36:24 +00:00
qtmux: Fix deadlock in gst_qt_mux_prepare_moov_recovery
Regression from 5766731bd4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1288>
This commit is contained in:
parent
ffa363edf7
commit
0805ffdce9
1 changed files with 1 additions and 5 deletions
|
@ -2437,6 +2437,7 @@ gst_qt_mux_downstream_is_seekable (GstQTMux * qtmux)
|
||||||
return seekable;
|
return seekable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Must be called with object lock */
|
||||||
static void
|
static void
|
||||||
gst_qt_mux_prepare_moov_recovery (GstQTMux * qtmux)
|
gst_qt_mux_prepare_moov_recovery (GstQTMux * qtmux)
|
||||||
{
|
{
|
||||||
|
@ -2457,21 +2458,17 @@ gst_qt_mux_prepare_moov_recovery (GstQTMux * qtmux)
|
||||||
|
|
||||||
gst_qt_mux_prepare_ftyp (qtmux, &ftyp, &prefix);
|
gst_qt_mux_prepare_ftyp (qtmux, &ftyp, &prefix);
|
||||||
|
|
||||||
GST_OBJECT_LOCK (qtmux);
|
|
||||||
if (!atoms_recov_write_headers (qtmux->moov_recov_file, ftyp, prefix,
|
if (!atoms_recov_write_headers (qtmux->moov_recov_file, ftyp, prefix,
|
||||||
qtmux->moov, qtmux->timescale,
|
qtmux->moov, qtmux->timescale,
|
||||||
g_list_length (GST_ELEMENT (qtmux)->sinkpads))) {
|
g_list_length (GST_ELEMENT (qtmux)->sinkpads))) {
|
||||||
GST_WARNING_OBJECT (qtmux, "Failed to write moov recovery file " "headers");
|
GST_WARNING_OBJECT (qtmux, "Failed to write moov recovery file " "headers");
|
||||||
GST_OBJECT_UNLOCK (qtmux);
|
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
GST_OBJECT_UNLOCK (qtmux);
|
|
||||||
|
|
||||||
atom_ftyp_free (ftyp);
|
atom_ftyp_free (ftyp);
|
||||||
if (prefix)
|
if (prefix)
|
||||||
gst_buffer_unref (prefix);
|
gst_buffer_unref (prefix);
|
||||||
|
|
||||||
GST_OBJECT_LOCK (qtmux);
|
|
||||||
for (l = GST_ELEMENT_CAST (qtmux)->sinkpads; l; l = l->next) {
|
for (l = GST_ELEMENT_CAST (qtmux)->sinkpads; l; l = l->next) {
|
||||||
GstQTMuxPad *qpad = (GstQTMuxPad *) l->data;
|
GstQTMuxPad *qpad = (GstQTMuxPad *) l->data;
|
||||||
/* write info for each stream */
|
/* write info for each stream */
|
||||||
|
@ -2482,7 +2479,6 @@ gst_qt_mux_prepare_moov_recovery (GstQTMux * qtmux)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GST_OBJECT_UNLOCK (qtmux);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue