[Bug 779668] New: GST_DEBUG_BIN_TO_DOT: creates invalid .dot file when GstStructure parameter contains string with "@"

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Mar 6 20:18:59 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=779668

            Bug ID: 779668
           Summary: GST_DEBUG_BIN_TO_DOT: creates invalid .dot file when
                    GstStructure parameter contains string with "@"
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: brendan.shanks at teradek.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

When GST_DEBUG_BIN_TO_DOT_FILE dumps a bin containing an element with a
GstStructure parameter, if the GstStructure contains a string value with "@" in
it, the resulting .dot file is invalid. xdot gives the error "unexpected char
'\'"

I came across this bug when dumping the media-pipeline of a GStreamer RTSP
server. The GstRtpSession sdes parameter is a GstStructure with a string
parameter ("cname") that has an "@" symbol in it.

I haven't investigated why this happens, but it looks like GstStructure 
does extra quoting on the output string when it contains "@", and then
g_strescape() adds too many backslashes when escaping.

Here's the invalid label line from the .dot file when the string doesn't
contain "@": label="GstCapsFilter\nhi@\n[0]\nparent=(GstPipeline)
pipeline\ncaps=application/x-rtp-source-sdes, cname=(string)user2341dqw";

And with "@":
label="GstCapsFilter\ncapsfilter0\n[0]\nparent=(GstPipeline)
pipeline\ncaps=application/x-rtp-source-sdes,
cname=(string)\\\"user2341\\\\@dqw\\\"";


According to the DOT language guide
(http://www.graphviz.org/content/dot-language): "In quoted strings in DOT, the
only escaped character is double-quote ("). That is, in quoted strings, the
dyad \" is converted to "; all other characters are left unchanged. In
particular, \\ remains \\"

-- 
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