[Bug 762793] New: taginject does not copy the tag list it sends, so changes by other elements are propagated later
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sat Feb 27 20:25:38 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=762793
Bug ID: 762793
Summary: taginject does not copy the tag list it sends, so
changes by other elements are propagated later
Classification: Platform
Product: GStreamer
Version: git master
OS: Mac OS
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-good
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: gnome-bugzilla at sjor.sg
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created attachment 322552
--> https://bugzilla.gnome.org/attachment.cgi?id=322552&action=edit
Patch: "When sending a tag event in GstTagInject, ensure that changes by other
elements do not influence the tags sent in the future."
taginject, a debugtools element, is configured to add specific tags to the
pipeline. Upon init(), it converts this to a GstTagList* (self->tags), which it
pushes towards the elements after it in gst_tag_inject_transform_ip().
However, since it does not make a copy of this list, any changes to the list by
further elements effectively influence self->tags. Thus, upon pipeline changes,
when it decides to re-send its tag list, it does not send the tags from the
configured 'tags' property, but the tags as modified by further elements.
The attached patch fixes this.
I reported a bug resulting from this issue against GStreamer Editing Services
at <https://phabricator.freedesktop.org/T7332>. There, taginject is used to
inject replaygain peak, gain and reference levels, which are then interpreted
by rgvolume to apply the correct volume normalizations and subsequently removed
from the tag list. However, as soon as NLE makes a pipeline change, the tag
list no longer contains the values to correctly compute the replay gain
normalization, causing the normalization to fall away. More details can be
found at the link above.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list