From: Marco Ballesio Date: Wed, 29 Apr 2009 12:58:10 +0000 (+0300) Subject: qtdemux: fix byte order swapping in 3GPP classification entity tag X-Git-Tag: RELEASE-0.10.15~220 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e7273076d14444d2fa5ba764bbc09ad4fefa6d4;p=platform%2Fupstream%2Fgst-plugins-good.git qtdemux: fix byte order swapping in 3GPP classification entity tag Fixes #580746. --- diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 775626e..e74712f 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -4492,12 +4492,12 @@ qtdemux_tag_add_classification (GstQTDemux * qtdemux, const char *tag, { int offset; char *tag_str = NULL; - guint32 entity; + guint8 *entity; guint16 table; offset = 12; - entity = QT_FOURCC ((guint8 *) node->data + offset); + entity = (guint8 *) node->data + offset; offset += 4; table = QT_UINT16 ((guint8 *) node->data + offset); @@ -4510,8 +4510,11 @@ qtdemux_tag_add_classification (GstQTDemux * qtdemux, const char *tag, * XXXX: classification entity, fixed length 4 chars. * Y[YYYY]: classification table, max 5 chars. */ - tag_str = g_strdup_printf ("%" GST_FOURCC_FORMAT "://%u/%s", - GST_FOURCC_ARGS (entity), table, (char *) node->data + offset); + tag_str = g_strdup_printf ("----://%u/%s", + table, (char *) node->data + offset); + + /* memcpy To be sure we're preserving byte order */ + memcpy (tag_str, entity, 4); GST_DEBUG_OBJECT (qtdemux, "classification info: %s", tag_str); gst_tag_list_add (qtdemux->tag_list, GST_TAG_MERGE_APPEND, tag,