/* rtp.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __PLUGINS_RTP_RTP_H__
#define __PLUGINS_RTP_RTP_H__

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include "xmpp-vala.h"
#include <gst/gst.h>
#include "libdino.h"
#include <gio/gio.h>
#include <gee.h>
#include <gmodule.h>
#include <gdk/gdk.h>
#include <float.h>
#include <math.h>
#include <gst/video/video.h>
#include <gtk/gtk.h>
#include <gst/base/base.h>
#include <gst/audio/audio.h>

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define DINO_PLUGINS_RTP_TYPE_CODEC_UTIL (dino_plugins_rtp_codec_util_get_type ())
#define DINO_PLUGINS_RTP_CODEC_UTIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_CODEC_UTIL, DinoPluginsRtpCodecUtil))
#define DINO_PLUGINS_RTP_CODEC_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_CODEC_UTIL, DinoPluginsRtpCodecUtilClass))
#define DINO_PLUGINS_RTP_IS_CODEC_UTIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_CODEC_UTIL))
#define DINO_PLUGINS_RTP_IS_CODEC_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_CODEC_UTIL))
#define DINO_PLUGINS_RTP_CODEC_UTIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_CODEC_UTIL, DinoPluginsRtpCodecUtilClass))

typedef struct _DinoPluginsRtpCodecUtil DinoPluginsRtpCodecUtil;
typedef struct _DinoPluginsRtpCodecUtilClass DinoPluginsRtpCodecUtilClass;
typedef struct _DinoPluginsRtpCodecUtilPrivate DinoPluginsRtpCodecUtilPrivate;
typedef enum  {
	DINO_PLUGINS_RTP_DEVICE_PROTOCOL_OTHER,
	DINO_PLUGINS_RTP_DEVICE_PROTOCOL_PIPEWIRE,
	DINO_PLUGINS_RTP_DEVICE_PROTOCOL_V4L2,
	DINO_PLUGINS_RTP_DEVICE_PROTOCOL_PULSEAUDIO,
	DINO_PLUGINS_RTP_DEVICE_PROTOCOL_ALSA
} DinoPluginsRtpDeviceProtocol;

#define DINO_PLUGINS_RTP_TYPE_DEVICE_PROTOCOL (dino_plugins_rtp_device_protocol_get_type ())

#define DINO_PLUGINS_RTP_TYPE_DEVICE (dino_plugins_rtp_device_get_type ())
#define DINO_PLUGINS_RTP_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_DEVICE, DinoPluginsRtpDevice))
#define DINO_PLUGINS_RTP_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_DEVICE, DinoPluginsRtpDeviceClass))
#define DINO_PLUGINS_RTP_IS_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_DEVICE))
#define DINO_PLUGINS_RTP_IS_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_DEVICE))
#define DINO_PLUGINS_RTP_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_DEVICE, DinoPluginsRtpDeviceClass))

typedef struct _DinoPluginsRtpDevice DinoPluginsRtpDevice;
typedef struct _DinoPluginsRtpDeviceClass DinoPluginsRtpDeviceClass;
typedef struct _DinoPluginsRtpDevicePrivate DinoPluginsRtpDevicePrivate;

#define DINO_PLUGINS_RTP_TYPE_PLUGIN (dino_plugins_rtp_plugin_get_type ())
#define DINO_PLUGINS_RTP_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_PLUGIN, DinoPluginsRtpPlugin))
#define DINO_PLUGINS_RTP_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_PLUGIN, DinoPluginsRtpPluginClass))
#define DINO_PLUGINS_RTP_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_PLUGIN))
#define DINO_PLUGINS_RTP_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_PLUGIN))
#define DINO_PLUGINS_RTP_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_PLUGIN, DinoPluginsRtpPluginClass))

typedef struct _DinoPluginsRtpPlugin DinoPluginsRtpPlugin;
typedef struct _DinoPluginsRtpPluginClass DinoPluginsRtpPluginClass;

#define DINO_PLUGINS_RTP_TYPE_MODULE (dino_plugins_rtp_module_get_type ())
#define DINO_PLUGINS_RTP_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_MODULE, DinoPluginsRtpModule))
#define DINO_PLUGINS_RTP_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_MODULE, DinoPluginsRtpModuleClass))
#define DINO_PLUGINS_RTP_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_MODULE))
#define DINO_PLUGINS_RTP_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_MODULE))
#define DINO_PLUGINS_RTP_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_MODULE, DinoPluginsRtpModuleClass))

typedef struct _DinoPluginsRtpModule DinoPluginsRtpModule;
typedef struct _DinoPluginsRtpModuleClass DinoPluginsRtpModuleClass;
typedef struct _DinoPluginsRtpModulePrivate DinoPluginsRtpModulePrivate;
typedef struct _DinoPluginsRtpPluginPrivate DinoPluginsRtpPluginPrivate;

#define DINO_PLUGINS_RTP_TYPE_STREAM (dino_plugins_rtp_stream_get_type ())
#define DINO_PLUGINS_RTP_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_STREAM, DinoPluginsRtpStream))
#define DINO_PLUGINS_RTP_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_STREAM, DinoPluginsRtpStreamClass))
#define DINO_PLUGINS_RTP_IS_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_STREAM))
#define DINO_PLUGINS_RTP_IS_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_STREAM))
#define DINO_PLUGINS_RTP_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_STREAM, DinoPluginsRtpStreamClass))

typedef struct _DinoPluginsRtpStream DinoPluginsRtpStream;
typedef struct _DinoPluginsRtpStreamClass DinoPluginsRtpStreamClass;
typedef struct _DinoPluginsRtpStreamPrivate DinoPluginsRtpStreamPrivate;

#define DINO_PLUGINS_RTP_TYPE_VIDEO_STREAM (dino_plugins_rtp_video_stream_get_type ())
#define DINO_PLUGINS_RTP_VIDEO_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_VIDEO_STREAM, DinoPluginsRtpVideoStream))
#define DINO_PLUGINS_RTP_VIDEO_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_VIDEO_STREAM, DinoPluginsRtpVideoStreamClass))
#define DINO_PLUGINS_RTP_IS_VIDEO_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_VIDEO_STREAM))
#define DINO_PLUGINS_RTP_IS_VIDEO_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_VIDEO_STREAM))
#define DINO_PLUGINS_RTP_VIDEO_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_VIDEO_STREAM, DinoPluginsRtpVideoStreamClass))

typedef struct _DinoPluginsRtpVideoStream DinoPluginsRtpVideoStream;
typedef struct _DinoPluginsRtpVideoStreamClass DinoPluginsRtpVideoStreamClass;
typedef struct _DinoPluginsRtpVideoStreamPrivate DinoPluginsRtpVideoStreamPrivate;

#define DINO_PLUGINS_RTP_TYPE_PAINTABLE (dino_plugins_rtp_paintable_get_type ())
#define DINO_PLUGINS_RTP_PAINTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_PAINTABLE, DinoPluginsRtpPaintable))
#define DINO_PLUGINS_RTP_PAINTABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_PAINTABLE, DinoPluginsRtpPaintableClass))
#define DINO_PLUGINS_RTP_IS_PAINTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_PAINTABLE))
#define DINO_PLUGINS_RTP_IS_PAINTABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_PAINTABLE))
#define DINO_PLUGINS_RTP_PAINTABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_PAINTABLE, DinoPluginsRtpPaintableClass))

typedef struct _DinoPluginsRtpPaintable DinoPluginsRtpPaintable;
typedef struct _DinoPluginsRtpPaintableClass DinoPluginsRtpPaintableClass;
typedef struct _DinoPluginsRtpPaintablePrivate DinoPluginsRtpPaintablePrivate;

#define DINO_PLUGINS_RTP_TYPE_SINK (dino_plugins_rtp_sink_get_type ())
#define DINO_PLUGINS_RTP_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_SINK, DinoPluginsRtpSink))
#define DINO_PLUGINS_RTP_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_SINK, DinoPluginsRtpSinkClass))
#define DINO_PLUGINS_RTP_IS_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_SINK))
#define DINO_PLUGINS_RTP_IS_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_SINK))
#define DINO_PLUGINS_RTP_SINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_SINK, DinoPluginsRtpSinkClass))

typedef struct _DinoPluginsRtpSink DinoPluginsRtpSink;
typedef struct _DinoPluginsRtpSinkClass DinoPluginsRtpSinkClass;
typedef struct _DinoPluginsRtpSinkPrivate DinoPluginsRtpSinkPrivate;

#define DINO_PLUGINS_RTP_TYPE_VIDEO_WIDGET (dino_plugins_rtp_video_widget_get_type ())
#define DINO_PLUGINS_RTP_VIDEO_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_VIDEO_WIDGET, DinoPluginsRtpVideoWidget))
#define DINO_PLUGINS_RTP_VIDEO_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_VIDEO_WIDGET, DinoPluginsRtpVideoWidgetClass))
#define DINO_PLUGINS_RTP_IS_VIDEO_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_VIDEO_WIDGET))
#define DINO_PLUGINS_RTP_IS_VIDEO_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_VIDEO_WIDGET))
#define DINO_PLUGINS_RTP_VIDEO_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_VIDEO_WIDGET, DinoPluginsRtpVideoWidgetClass))

typedef struct _DinoPluginsRtpVideoWidget DinoPluginsRtpVideoWidget;
typedef struct _DinoPluginsRtpVideoWidgetClass DinoPluginsRtpVideoWidgetClass;
typedef struct _DinoPluginsRtpVideoWidgetPrivate DinoPluginsRtpVideoWidgetPrivate;

#define DINO_PLUGINS_RTP_TYPE_ECHO_PROBE (dino_plugins_rtp_echo_probe_get_type ())
#define DINO_PLUGINS_RTP_ECHO_PROBE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_ECHO_PROBE, DinoPluginsRtpEchoProbe))
#define DINO_PLUGINS_RTP_ECHO_PROBE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_ECHO_PROBE, DinoPluginsRtpEchoProbeClass))
#define DINO_PLUGINS_RTP_IS_ECHO_PROBE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_ECHO_PROBE))
#define DINO_PLUGINS_RTP_IS_ECHO_PROBE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_ECHO_PROBE))
#define DINO_PLUGINS_RTP_ECHO_PROBE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_ECHO_PROBE, DinoPluginsRtpEchoProbeClass))

typedef struct _DinoPluginsRtpEchoProbe DinoPluginsRtpEchoProbe;
typedef struct _DinoPluginsRtpEchoProbeClass DinoPluginsRtpEchoProbeClass;
typedef struct _DinoPluginsRtpEchoProbePrivate DinoPluginsRtpEchoProbePrivate;

#define DINO_PLUGINS_RTP_TYPE_VOICE_PROCESSOR (dino_plugins_rtp_voice_processor_get_type ())
#define DINO_PLUGINS_RTP_VOICE_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_RTP_TYPE_VOICE_PROCESSOR, DinoPluginsRtpVoiceProcessor))
#define DINO_PLUGINS_RTP_VOICE_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_RTP_TYPE_VOICE_PROCESSOR, DinoPluginsRtpVoiceProcessorClass))
#define DINO_PLUGINS_RTP_IS_VOICE_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_RTP_TYPE_VOICE_PROCESSOR))
#define DINO_PLUGINS_RTP_IS_VOICE_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_RTP_TYPE_VOICE_PROCESSOR))
#define DINO_PLUGINS_RTP_VOICE_PROCESSOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_RTP_TYPE_VOICE_PROCESSOR, DinoPluginsRtpVoiceProcessorClass))

typedef struct _DinoPluginsRtpVoiceProcessor DinoPluginsRtpVoiceProcessor;
typedef struct _DinoPluginsRtpVoiceProcessorClass DinoPluginsRtpVoiceProcessorClass;
typedef struct _DinoPluginsRtpVoiceProcessorPrivate DinoPluginsRtpVoiceProcessorPrivate;

struct _DinoPluginsRtpCodecUtil {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DinoPluginsRtpCodecUtilPrivate * priv;
};

struct _DinoPluginsRtpCodecUtilClass {
	GTypeClass parent_class;
	void (*finalize) (DinoPluginsRtpCodecUtil *self);
};

struct _DinoPluginsRtpDevice {
	GObject parent_instance;
	DinoPluginsRtpDevicePrivate * priv;
};

struct _DinoPluginsRtpDeviceClass {
	GObjectClass parent_class;
};

struct _DinoPluginsRtpModule {
	XmppXepJingleRtpModule parent_instance;
	DinoPluginsRtpModulePrivate * priv;
};

struct _DinoPluginsRtpModuleClass {
	XmppXepJingleRtpModuleClass parent_class;
};

struct _DinoPluginsRtpPlugin {
	GObject parent_instance;
	DinoPluginsRtpPluginPrivate * priv;
};

struct _DinoPluginsRtpPluginClass {
	GObjectClass parent_class;
};

struct _DinoPluginsRtpStream {
	XmppXepJingleRtpStream parent_instance;
	DinoPluginsRtpStreamPrivate * priv;
};

struct _DinoPluginsRtpStreamClass {
	XmppXepJingleRtpStreamClass parent_class;
	void (*add_output) (DinoPluginsRtpStream* self, GstElement* element, XmppJid* participant);
	void (*remove_output) (DinoPluginsRtpStream* self, GstElement* element);
};

struct _DinoPluginsRtpVideoStream {
	DinoPluginsRtpStream parent_instance;
	DinoPluginsRtpVideoStreamPrivate * priv;
};

struct _DinoPluginsRtpVideoStreamClass {
	DinoPluginsRtpStreamClass parent_class;
};

struct _DinoPluginsRtpPaintable {
	GObject parent_instance;
	DinoPluginsRtpPaintablePrivate * priv;
};

struct _DinoPluginsRtpPaintableClass {
	GObjectClass parent_class;
};

struct _DinoPluginsRtpSink {
	GstVideoSink parent_instance;
	DinoPluginsRtpSinkPrivate * priv;
	DinoPluginsRtpPaintable* paintable;
};

struct _DinoPluginsRtpSinkClass {
	GstVideoSinkClass parent_class;
};

struct _DinoPluginsRtpVideoWidget {
	GtkWidget parent_instance;
	DinoPluginsRtpVideoWidgetPrivate * priv;
};

struct _DinoPluginsRtpVideoWidgetClass {
	GtkWidgetClass parent_class;
};

struct _DinoPluginsRtpEchoProbe {
	GstAudioFilter parent_instance;
	DinoPluginsRtpEchoProbePrivate * priv;
};

struct _DinoPluginsRtpEchoProbeClass {
	GstAudioFilterClass parent_class;
};

struct _DinoPluginsRtpVoiceProcessor {
	GstAudioFilter parent_instance;
	DinoPluginsRtpVoiceProcessorPrivate * priv;
};

struct _DinoPluginsRtpVoiceProcessorClass {
	GstAudioFilterClass parent_class;
};

VALA_EXTERN gpointer dino_plugins_rtp_codec_util_ref (gpointer instance);
VALA_EXTERN void dino_plugins_rtp_codec_util_unref (gpointer instance);
VALA_EXTERN GParamSpec* dino_plugins_rtp_param_spec_codec_util (const gchar* name,
                                                    const gchar* nick,
                                                    const gchar* blurb,
                                                    GType object_type,
                                                    GParamFlags flags);
VALA_EXTERN void dino_plugins_rtp_value_set_codec_util (GValue* value,
                                            gpointer v_object);
VALA_EXTERN void dino_plugins_rtp_value_take_codec_util (GValue* value,
                                             gpointer v_object);
VALA_EXTERN gpointer dino_plugins_rtp_value_get_codec_util (const GValue* value);
VALA_EXTERN GType dino_plugins_rtp_codec_util_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpCodecUtil, dino_plugins_rtp_codec_util_unref)
VALA_EXTERN GstCaps* dino_plugins_rtp_codec_util_get_caps (const gchar* media,
                                               XmppXepJingleRtpPayloadType* payload_type,
                                               gboolean incoming);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_codec_from_payload (const gchar* media,
                                                           XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_media_type_from_payload (const gchar* media,
                                                                XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_media_type (const gchar* media,
                                                   const gchar* codec);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_rtp_pay_element_name_from_payload (const gchar* media,
                                                                          XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_pay_candidate (const gchar* media,
                                                      const gchar* codec);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_rtp_depay_element_name_from_payload (const gchar* media,
                                                                            XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_depay_candidate (const gchar* media,
                                                        const gchar* codec);
VALA_EXTERN gchar** dino_plugins_rtp_codec_util_get_encode_candidates (const gchar* media,
                                                           const gchar* codec,
                                                           gint* result_length1);
VALA_EXTERN gchar** dino_plugins_rtp_codec_util_get_decode_candidates (const gchar* media,
                                                           const gchar* codec,
                                                           gint* result_length1);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_encode_prefix (const gchar* media,
                                                      const gchar* codec,
                                                      const gchar* encode,
                                                      XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_encode_args (const gchar* media,
                                                    const gchar* codec,
                                                    const gchar* encode,
                                                    XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_encode_suffix (const gchar* media,
                                                      const gchar* codec,
                                                      const gchar* encode,
                                                      XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN guint dino_plugins_rtp_codec_util_update_bitrate (DinoPluginsRtpCodecUtil* self,
                                                  const gchar* media,
                                                  XmppXepJingleRtpPayloadType* payload_type,
                                                  GstElement* encode_element,
                                                  guint bitrate);
VALA_EXTERN void dino_plugins_rtp_codec_util_update_rescale_caps (DinoPluginsRtpCodecUtil* self,
                                                      GstElement* encode_element,
                                                      GstCaps* caps);
VALA_EXTERN GstCaps* dino_plugins_rtp_codec_util_get_rescale_caps (DinoPluginsRtpCodecUtil* self,
                                                       GstElement* encode_element);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_decode_prefix (const gchar* media,
                                                      const gchar* codec,
                                                      const gchar* decode,
                                                      XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_decode_args (const gchar* media,
                                                    const gchar* codec,
                                                    const gchar* decode,
                                                    XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_decode_suffix (const gchar* media,
                                                      const gchar* codec,
                                                      const gchar* encode,
                                                      XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_depay_args (const gchar* media,
                                                   const gchar* codec,
                                                   const gchar* encode,
                                                   XmppXepJingleRtpPayloadType* payload_type);
VALA_EXTERN gboolean dino_plugins_rtp_codec_util_is_element_supported (DinoPluginsRtpCodecUtil* self,
                                                           const gchar* element_name);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_encode_element_name (DinoPluginsRtpCodecUtil* self,
                                                            const gchar* media,
                                                            const gchar* codec);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_pay_element_name (DinoPluginsRtpCodecUtil* self,
                                                         const gchar* media,
                                                         const gchar* codec);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_decode_element_name (DinoPluginsRtpCodecUtil* self,
                                                            const gchar* media,
                                                            const gchar* codec);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_depay_element_name (DinoPluginsRtpCodecUtil* self,
                                                           const gchar* media,
                                                           const gchar* codec);
VALA_EXTERN void dino_plugins_rtp_codec_util_mark_element_unsupported (DinoPluginsRtpCodecUtil* self,
                                                           const gchar* element_name);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_decode_bin_description (DinoPluginsRtpCodecUtil* self,
                                                               const gchar* media,
                                                               const gchar* codec,
                                                               XmppXepJingleRtpPayloadType* payload_type,
                                                               const gchar* element_name,
                                                               const gchar* name);
VALA_EXTERN GstElement* dino_plugins_rtp_codec_util_get_decode_bin (DinoPluginsRtpCodecUtil* self,
                                                        const gchar* media,
                                                        XmppXepJingleRtpPayloadType* payload_type,
                                                        const gchar* name);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_encode_bin_description (DinoPluginsRtpCodecUtil* self,
                                                               const gchar* media,
                                                               const gchar* codec,
                                                               XmppXepJingleRtpPayloadType* payload_type,
                                                               const gchar* element_name,
                                                               const gchar* name);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_payloader_bin_description (DinoPluginsRtpCodecUtil* self,
                                                                  const gchar* media,
                                                                  const gchar* codec,
                                                                  XmppXepJingleRtpPayloadType* payload_type,
                                                                  const gchar* name);
VALA_EXTERN gchar* dino_plugins_rtp_codec_util_get_encode_bin_without_payloader_description (DinoPluginsRtpCodecUtil* self,
                                                                                 const gchar* media,
                                                                                 const gchar* codec,
                                                                                 XmppXepJingleRtpPayloadType* payload_type,
                                                                                 const gchar* element_name,
                                                                                 const gchar* name);
VALA_EXTERN GstElement* dino_plugins_rtp_codec_util_get_encode_bin (DinoPluginsRtpCodecUtil* self,
                                                        const gchar* media,
                                                        XmppXepJingleRtpPayloadType* payload_type,
                                                        const gchar* name);
VALA_EXTERN GstElement* dino_plugins_rtp_codec_util_get_encode_bin_without_payloader (DinoPluginsRtpCodecUtil* self,
                                                                          const gchar* media,
                                                                          XmppXepJingleRtpPayloadType* payload_type,
                                                                          const gchar* name);
VALA_EXTERN GstElement* dino_plugins_rtp_codec_util_get_payloader_bin (DinoPluginsRtpCodecUtil* self,
                                                           const gchar* media,
                                                           XmppXepJingleRtpPayloadType* payload_type,
                                                           const gchar* name);
VALA_EXTERN DinoPluginsRtpCodecUtil* dino_plugins_rtp_codec_util_new (void);
VALA_EXTERN DinoPluginsRtpCodecUtil* dino_plugins_rtp_codec_util_construct (GType object_type);
VALA_EXTERN GType dino_plugins_rtp_device_protocol_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType dino_plugins_rtp_device_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpDevice, g_object_unref)
VALA_EXTERN GType dino_plugins_rtp_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpPlugin, g_object_unref)
VALA_EXTERN DinoPluginsRtpDevice* dino_plugins_rtp_device_new (DinoPluginsRtpPlugin* plugin,
                                                   GstDevice* device);
VALA_EXTERN DinoPluginsRtpDevice* dino_plugins_rtp_device_construct (GType object_type,
                                                         DinoPluginsRtpPlugin* plugin,
                                                         GstDevice* device);
VALA_EXTERN gboolean dino_plugins_rtp_device_matches (DinoPluginsRtpDevice* self,
                                          GstDevice* device);
VALA_EXTERN void dino_plugins_rtp_device_update (DinoPluginsRtpDevice* self,
                                     GstDevice* device);
VALA_EXTERN GstElement* dino_plugins_rtp_device_link_sink (DinoPluginsRtpDevice* self);
VALA_EXTERN GstElement* dino_plugins_rtp_device_link_source (DinoPluginsRtpDevice* self,
                                                 XmppXepJingleRtpPayloadType* payload_type,
                                                 guint ssrc,
                                                 gint seqnum_offset,
                                                 guint32 timestamp_offset);
VALA_EXTERN void dino_plugins_rtp_device_update_bitrate (DinoPluginsRtpDevice* self,
                                             XmppXepJingleRtpPayloadType* payload_type,
                                             guint bitrate);
VALA_EXTERN void dino_plugins_rtp_device_unlink (DinoPluginsRtpDevice* self,
                                     GstElement* link);
VALA_EXTERN DinoPluginsRtpPlugin* dino_plugins_rtp_device_get_plugin (DinoPluginsRtpDevice* self);
VALA_EXTERN DinoPluginsRtpCodecUtil* dino_plugins_rtp_device_get_codec_util (DinoPluginsRtpDevice* self);
VALA_EXTERN GstDevice* dino_plugins_rtp_device_get_device (DinoPluginsRtpDevice* self);
VALA_EXTERN GstPipeline* dino_plugins_rtp_device_get_pipe (DinoPluginsRtpDevice* self);
VALA_EXTERN gboolean dino_plugins_rtp_device_get_is_source (DinoPluginsRtpDevice* self);
VALA_EXTERN gboolean dino_plugins_rtp_device_get_is_sink (DinoPluginsRtpDevice* self);
VALA_EXTERN gboolean dino_plugins_rtp_device_get_is_monitor (DinoPluginsRtpDevice* self);
VALA_EXTERN gboolean dino_plugins_rtp_device_get_is_default (DinoPluginsRtpDevice* self);
VALA_EXTERN DinoPluginsRtpDeviceProtocol dino_plugins_rtp_device_get_protocol (DinoPluginsRtpDevice* self);
VALA_EXTERN GType dino_plugins_rtp_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpModule, g_object_unref)
VALA_EXTERN DinoPluginsRtpModule* dino_plugins_rtp_module_new (DinoPluginsRtpPlugin* plugin);
VALA_EXTERN DinoPluginsRtpModule* dino_plugins_rtp_module_construct (GType object_type,
                                                         DinoPluginsRtpPlugin* plugin);
VALA_EXTERN void dino_plugins_rtp_module_add_if_supported (DinoPluginsRtpModule* self,
                                               GeeList* list,
                                               const gchar* media,
                                               XmppXepJingleRtpPayloadType* payload_type,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_);
VALA_EXTERN void dino_plugins_rtp_module_add_if_supported_finish (DinoPluginsRtpModule* self,
                                                      GAsyncResult* _res_);
VALA_EXTERN XmppXepJingleRtpPayloadType* dino_plugins_rtp_module_adjust_payload_type (DinoPluginsRtpModule* self,
                                                                          const gchar* media,
                                                                          XmppXepJingleRtpPayloadType* type);
VALA_EXTERN DinoPluginsRtpPlugin* dino_plugins_rtp_module_get_plugin (DinoPluginsRtpModule* self);
VALA_EXTERN DinoPluginsRtpCodecUtil* dino_plugins_rtp_module_get_codec_util (DinoPluginsRtpModule* self);
VALA_EXTERN void dino_plugins_rtp_plugin_pause (DinoPluginsRtpPlugin* self);
VALA_EXTERN void dino_plugins_rtp_plugin_unpause (DinoPluginsRtpPlugin* self);
VALA_EXTERN void dino_plugins_rtp_plugin_destroy_call_pipe_if_unused (DinoPluginsRtpPlugin* self);
VALA_EXTERN guint8 dino_plugins_rtp_plugin_next_free_id (DinoPluginsRtpPlugin* self);
VALA_EXTERN GType dino_plugins_rtp_stream_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpStream, g_object_unref)
VALA_EXTERN DinoPluginsRtpStream* dino_plugins_rtp_plugin_open_stream (DinoPluginsRtpPlugin* self,
                                                           XmppXepJingleContent* content);
VALA_EXTERN void dino_plugins_rtp_plugin_close_stream (DinoPluginsRtpPlugin* self,
                                           DinoPluginsRtpStream* stream);
VALA_EXTERN GeeList* dino_plugins_rtp_plugin_get_audio_devices (DinoPluginsRtpPlugin* self,
                                                    gboolean incoming);
VALA_EXTERN GeeList* dino_plugins_rtp_plugin_get_video_sources (DinoPluginsRtpPlugin* self);
VALA_EXTERN DinoPluginsRtpPlugin* dino_plugins_rtp_plugin_new (void);
VALA_EXTERN DinoPluginsRtpPlugin* dino_plugins_rtp_plugin_construct (GType object_type);
VALA_EXTERN DinoApplication* dino_plugins_rtp_plugin_get_app (DinoPluginsRtpPlugin* self);
VALA_EXTERN DinoPluginsRtpCodecUtil* dino_plugins_rtp_plugin_get_codec_util (DinoPluginsRtpPlugin* self);
VALA_EXTERN GstDeviceMonitor* dino_plugins_rtp_plugin_get_device_monitor (DinoPluginsRtpPlugin* self);
VALA_EXTERN GstPipeline* dino_plugins_rtp_plugin_get_pipe (DinoPluginsRtpPlugin* self);
VALA_EXTERN GstBin* dino_plugins_rtp_plugin_get_rtpbin (DinoPluginsRtpPlugin* self);
VALA_EXTERN GstElement* dino_plugins_rtp_plugin_get_echoprobe (DinoPluginsRtpPlugin* self);
VALA_EXTERN GType register_plugin (GModule* module);
VALA_EXTERN DinoPluginsRtpStream* dino_plugins_rtp_stream_new (DinoPluginsRtpPlugin* plugin,
                                                   XmppXepJingleContent* content);
VALA_EXTERN DinoPluginsRtpStream* dino_plugins_rtp_stream_construct (GType object_type,
                                                         DinoPluginsRtpPlugin* plugin,
                                                         XmppXepJingleContent* content);
VALA_EXTERN void dino_plugins_rtp_stream_on_senders_changed (DinoPluginsRtpStream* self);
VALA_EXTERN void dino_plugins_rtp_stream_on_ssrc_pad_added (DinoPluginsRtpStream* self,
                                                guint32 ssrc,
                                                GstPad* pad);
VALA_EXTERN void dino_plugins_rtp_stream_on_send_rtp_src_added (DinoPluginsRtpStream* self,
                                                    GstPad* pad);
VALA_EXTERN void dino_plugins_rtp_stream_set_input (DinoPluginsRtpStream* self,
                                        GstElement* input);
VALA_EXTERN void dino_plugins_rtp_stream_pause (DinoPluginsRtpStream* self);
VALA_EXTERN void dino_plugins_rtp_stream_unpause (DinoPluginsRtpStream* self);
VALA_EXTERN guint dino_plugins_rtp_stream_get_participant_ssrc (DinoPluginsRtpStream* self,
                                                    XmppJid* participant);
VALA_EXTERN void dino_plugins_rtp_stream_add_output (DinoPluginsRtpStream* self,
                                         GstElement* element,
                                         XmppJid* participant);
VALA_EXTERN void dino_plugins_rtp_stream_remove_output (DinoPluginsRtpStream* self,
                                            GstElement* element);
VALA_EXTERN guint8 dino_plugins_rtp_stream_get_rtpid (DinoPluginsRtpStream* self);
VALA_EXTERN DinoPluginsRtpPlugin* dino_plugins_rtp_stream_get_plugin (DinoPluginsRtpStream* self);
VALA_EXTERN GstPipeline* dino_plugins_rtp_stream_get_pipe (DinoPluginsRtpStream* self);
VALA_EXTERN GstElement* dino_plugins_rtp_stream_get_rtpbin (DinoPluginsRtpStream* self);
VALA_EXTERN DinoPluginsRtpCodecUtil* dino_plugins_rtp_stream_get_codec_util (DinoPluginsRtpStream* self);
VALA_EXTERN DinoPluginsRtpDevice* dino_plugins_rtp_stream_get_input_device (DinoPluginsRtpStream* self);
VALA_EXTERN void dino_plugins_rtp_stream_set_input_device (DinoPluginsRtpStream* self,
                                               DinoPluginsRtpDevice* value);
VALA_EXTERN DinoPluginsRtpDevice* dino_plugins_rtp_stream_get_output_device (DinoPluginsRtpStream* self);
VALA_EXTERN void dino_plugins_rtp_stream_set_output_device (DinoPluginsRtpStream* self,
                                                DinoPluginsRtpDevice* value);
VALA_EXTERN gboolean dino_plugins_rtp_stream_get_created (DinoPluginsRtpStream* self);
VALA_EXTERN gboolean dino_plugins_rtp_stream_get_paused (DinoPluginsRtpStream* self);
VALA_EXTERN GType dino_plugins_rtp_video_stream_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpVideoStream, g_object_unref)
VALA_EXTERN DinoPluginsRtpVideoStream* dino_plugins_rtp_video_stream_new (DinoPluginsRtpPlugin* plugin,
                                                              XmppXepJingleContent* content);
VALA_EXTERN DinoPluginsRtpVideoStream* dino_plugins_rtp_video_stream_construct (GType object_type,
                                                                    DinoPluginsRtpPlugin* plugin,
                                                                    XmppXepJingleContent* content);
VALA_EXTERN GType dino_plugins_rtp_paintable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpPaintable, g_object_unref)
VALA_EXTERN void dino_plugins_rtp_paintable_queue_set_texture (DinoPluginsRtpPaintable* self,
                                                   GdkTexture* texture,
                                                   gdouble pixel_aspect_ratio);
VALA_EXTERN DinoPluginsRtpPaintable* dino_plugins_rtp_paintable_new (void);
VALA_EXTERN DinoPluginsRtpPaintable* dino_plugins_rtp_paintable_construct (GType object_type);
VALA_EXTERN GType dino_plugins_rtp_sink_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpSink, g_object_unref)
VALA_EXTERN DinoPluginsRtpSink* dino_plugins_rtp_sink_new (void);
VALA_EXTERN DinoPluginsRtpSink* dino_plugins_rtp_sink_construct (GType object_type);
VALA_EXTERN GType dino_plugins_rtp_video_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpVideoWidget, g_object_unref)
VALA_EXTERN gboolean dino_plugins_rtp_video_widget_has_instances (void);
VALA_EXTERN DinoPluginsRtpVideoWidget* dino_plugins_rtp_video_widget_new (DinoPluginsRtpPlugin* plugin);
VALA_EXTERN DinoPluginsRtpVideoWidget* dino_plugins_rtp_video_widget_construct (GType object_type,
                                                                    DinoPluginsRtpPlugin* plugin);
VALA_EXTERN void dino_plugins_rtp_video_widget_input_caps_changed (DinoPluginsRtpVideoWidget* self,
                                                       GObject* pad,
                                                       GParamSpec* spec);
VALA_EXTERN guint dino_plugins_rtp_video_widget_get_id (DinoPluginsRtpVideoWidget* self);
VALA_EXTERN DinoPluginsRtpPlugin* dino_plugins_rtp_video_widget_get_plugin (DinoPluginsRtpVideoWidget* self);
VALA_EXTERN GstPipeline* dino_plugins_rtp_video_widget_get_pipe (DinoPluginsRtpVideoWidget* self);
GstBuffer* dino_plugins_rtp_adjust_to_running_time (GstBaseTransform* transform,
                                                    GstBuffer* buf);
VALA_EXTERN GType dino_plugins_rtp_echo_probe_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpEchoProbe, g_object_unref)
VALA_EXTERN DinoPluginsRtpEchoProbe* dino_plugins_rtp_echo_probe_new (void);
VALA_EXTERN DinoPluginsRtpEchoProbe* dino_plugins_rtp_echo_probe_construct (GType object_type);
VALA_EXTERN GstAudioInfo* dino_plugins_rtp_echo_probe_get_audio_info (DinoPluginsRtpEchoProbe* self);
VALA_EXTERN gint dino_plugins_rtp_echo_probe_get_delay (DinoPluginsRtpEchoProbe* self);
VALA_EXTERN GType dino_plugins_rtp_voice_processor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsRtpVoiceProcessor, g_object_unref)
VALA_EXTERN DinoPluginsRtpVoiceProcessor* dino_plugins_rtp_voice_processor_new (DinoPluginsRtpEchoProbe* echo_probe,
                                                                    GstStreamVolume* stream_volume);
VALA_EXTERN DinoPluginsRtpVoiceProcessor* dino_plugins_rtp_voice_processor_construct (GType object_type,
                                                                          DinoPluginsRtpEchoProbe* echo_probe,
                                                                          GstStreamVolume* stream_volume);
VALA_EXTERN GstAudioInfo* dino_plugins_rtp_voice_processor_get_audio_info (DinoPluginsRtpVoiceProcessor* self);

G_END_DECLS

#endif
