mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
qtmux: Take lock around use of (non-threadsafe) tagsetter interface.
This commit is contained in:
parent
953aa983bb
commit
8b3aca9070
1 changed files with 11 additions and 1 deletions
|
@ -302,7 +302,10 @@ gst_qt_mux_reset (GstQTMux * qtmux, gboolean alloc)
|
||||||
fclose (qtmux->moov_recov_file);
|
fclose (qtmux->moov_recov_file);
|
||||||
qtmux->moov_recov_file = NULL;
|
qtmux->moov_recov_file = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GST_OBJECT_LOCK (qtmux);
|
||||||
gst_tag_setter_reset_tags (GST_TAG_SETTER (qtmux));
|
gst_tag_setter_reset_tags (GST_TAG_SETTER (qtmux));
|
||||||
|
GST_OBJECT_UNLOCK (qtmux);
|
||||||
|
|
||||||
/* reset pad data */
|
/* reset pad data */
|
||||||
for (walk = qtmux->sinkpads; walk; walk = g_slist_next (walk)) {
|
for (walk = qtmux->sinkpads; walk; walk = g_slist_next (walk)) {
|
||||||
|
@ -957,7 +960,9 @@ gst_qt_mux_setup_metadata (GstQTMux * qtmux)
|
||||||
{
|
{
|
||||||
const GstTagList *tags;
|
const GstTagList *tags;
|
||||||
|
|
||||||
|
GST_OBJECT_LOCK (qtmux);
|
||||||
tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (qtmux));
|
tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (qtmux));
|
||||||
|
GST_OBJECT_UNLOCK (qtmux);
|
||||||
|
|
||||||
GST_LOG_OBJECT (qtmux, "tags: %" GST_PTR_FORMAT, tags);
|
GST_LOG_OBJECT (qtmux, "tags: %" GST_PTR_FORMAT, tags);
|
||||||
|
|
||||||
|
@ -2450,11 +2455,16 @@ gst_qt_mux_sink_event (GstPad * pad, GstEvent * event)
|
||||||
case GST_EVENT_TAG:{
|
case GST_EVENT_TAG:{
|
||||||
GstTagList *list;
|
GstTagList *list;
|
||||||
GstTagSetter *setter = GST_TAG_SETTER (qtmux);
|
GstTagSetter *setter = GST_TAG_SETTER (qtmux);
|
||||||
const GstTagMergeMode mode = gst_tag_setter_get_tag_merge_mode (setter);
|
GstTagMergeMode mode;
|
||||||
|
|
||||||
|
GST_OBJECT_LOCK (qtmux);
|
||||||
|
mode = gst_tag_setter_get_tag_merge_mode (setter);
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (qtmux, "received tag event");
|
GST_DEBUG_OBJECT (qtmux, "received tag event");
|
||||||
gst_event_parse_tag (event, &list);
|
gst_event_parse_tag (event, &list);
|
||||||
|
|
||||||
gst_tag_setter_merge_tags (setter, list, mode);
|
gst_tag_setter_merge_tags (setter, list, mode);
|
||||||
|
GST_OBJECT_UNLOCK (qtmux);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue