opusenc: fix segmentation fault at x86 version
authorMarcos Kintschner <marcos.ktn@gmail.com>
Thu, 13 Sep 2018 23:34:08 +0000 (20:34 -0300)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 14 Sep 2018 00:00:02 +0000 (20:00 -0400)
The argument 0x0 is interpreted by the x86 compiler as a 32-bit int, but
it is consumed as a 64-bit uint causing a segmentation fault. We need to
explicit cast it to guint64 in order for the va_list to be built correctly.

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

ext/opus/gstopusenc.c

index 2282873b32f986ef26fa58e16cba499882dc0479..e1aa9307eed05f513d4eead9ac2e504d77857329 100644 (file)
@@ -877,12 +877,12 @@ gst_opus_enc_get_sink_template_caps (void)
        * treated as a set of individual mono channels */
       s = gst_structure_copy (s2);
       gst_structure_set (s, "channels", G_TYPE_INT, i, "channel-mask",
-          GST_TYPE_BITMASK, 0x0, NULL);
+          GST_TYPE_BITMASK, G_GUINT64_CONSTANT(0), NULL);
       gst_caps_append_structure (caps, s);
 
       s = gst_structure_copy (s1);
       gst_structure_set (s, "channels", G_TYPE_INT, i, "channel-mask",
-          GST_TYPE_BITMASK, 0x0, NULL);
+          GST_TYPE_BITMASK, G_GUINT64_CONSTANT(0), NULL);
       gst_caps_append_structure (caps, s);
     }