From 1c4765281443e2a184157f319825c9b68665f9f5 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 23 Dec 2021 06:39:18 +0100 Subject: [PATCH] Fix build with older Vala compilers - Older versions seem to assume a wrong type for Nice messages - Older versions have broken bindings for Gst.Value.set_fraction --- plugins/ice/src/transport_parameters.vala | 6 ++++-- plugins/rtp/src/video_widget.vala | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/ice/src/transport_parameters.vala b/plugins/ice/src/transport_parameters.vala index f684e411..73cf6166 100644 --- a/plugins/ice/src/transport_parameters.vala +++ b/plugins/ice/src/transport_parameters.vala @@ -45,11 +45,13 @@ public class Dino.Plugins.Ice.TransportParameters : JingleIceUdp.IceUdpTransport if (encrypted_data == null) return; // TODO: Nonblocking might require certain libnice versions? GLib.OutputVector[] vectors = {{ encrypted_data, encrypted_data.length }}; - Nice.OutputMessage[] messages = {{ vectors }}; + Nice.OutputMessage message = { vectors }; + Nice.OutputMessage[] messages = { message }; agent.send_messages_nonblocking(stream_id, component_id, messages); } else { GLib.OutputVector[] vectors = {{ datagram.get_data(), datagram.get_size() }}; - Nice.OutputMessage[] messages = {{ vectors }}; + Nice.OutputMessage message = { vectors }; + Nice.OutputMessage[] messages = { message }; agent.send_messages_nonblocking(stream_id, component_id, messages); } bytes_sent += datagram.length; diff --git a/plugins/rtp/src/video_widget.vala b/plugins/rtp/src/video_widget.vala index 3daf5284..76e4dcca 100644 --- a/plugins/rtp/src/video_widget.vala +++ b/plugins/rtp/src/video_widget.vala @@ -1,3 +1,8 @@ +#if !VALA_0_52 +[CCode (cheader_filename = "gst/gst.h")] +private static extern void gst_value_set_fraction(ref GLib.Value value, int numerator, int denominator); +#endif + public class Dino.Plugins.Rtp.VideoWidget : Gtk.Bin, Dino.Plugins.VideoCallWidget { private static uint last_id = 0; @@ -50,7 +55,11 @@ public class Dino.Plugins.Rtp.VideoWidget : Gtk.Bin, Dino.Plugins.VideoCallWidge Gst.Element crop = ((Gst.Bin)prepare).get_by_name(@"video_widget_$(id)_crop"); if (crop != null) { Value ratio = new Value(typeof(Gst.Fraction)); +#if VALA_0_52 Gst.Value.set_fraction(ref ratio, allocation.width, allocation.height); +#else + gst_value_set_fraction(ref ratio, allocation.width, allocation.height); +#endif crop.set_property("aspect-ratio", ratio); } }