[Bug 794331] New: log_omx_performance: GstOMXBuffer and OMX-buffer fields always displayed as NULL
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Mar 14 13:58:07 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=794331
Bug ID: 794331
Summary: log_omx_performance: GstOMXBuffer and OMX-buffer
fields always displayed as NULL
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-omx
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: gdesmott at gnome.org
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Here is the logging code used by the OMX_PERFORMANCE category to log infos
about OMX buffers:
https://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomx.c#n648
Unfortunately this is not working with G_TYPE_POINTER fields which appear as
NULL and raise warnings:
0:00:00.443497969 11812 0x2538d40 WARN structure
gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform to
serialize field 'GstOMXBuffer' of type 'gpointer'
0:00:00.443510229 11812 0x2538d40 WARN structure
gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform to
serialize field 'OMX-buffer' of type 'gpointer'
0:00:00.443465370 11812 0x2538d40 TRACE OMX_PERFORMANCE
gstomx.c:673:log_omx_performance:<omxh264enc-omxh264enc0> FillThisBuffer,
GstOMXBuffer=(gpointer)NULL, OMX-buffer=(gpointer)NULL, TimeStamp=(guint64)0,
AllocLen=(uint)360448, FilledLen=(uint)0, flags=(uint)0, flags-str=(string)"";
I initially assumed this was because I was using a old gst version on my board
as I added support to display pointers a while ago in the leaks tracer (
https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=aa336008b378ebe24d56896f96240fc3bd96d5d4
)
But actually tracers use a different code path,
priv__gst_structure_append_template_to_gstring(), which is a private API while
GST_PTR_FORMAT() uses gst_value_serialize() not supporting pointers
serialization.
It doesn't really make sense for gst_value_serialize() to serialize pointers so
I think we have two options here:
a) convert pointers to strings using g_strdup_printf() and store them as
G_TYPE_STRING in the structure.
b) manually handle pointers in priv_gst_structure_append_to_gstring() (used by
gst_structure_to_string()) to display them properly
--
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