context: // This file was generated by the Gtk# code generator.
  // Any changes made will be lost if regenerated.
  
  namespace Gst.PbUtils {
  
  	using System;
  	using System.Collections;
  	using System.Collections.Generic;
  	using System.Runtime.InteropServices;
  
  #region Autogenerated code
  	public partial class Global {
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_codec_utils_aac_caps_set_level_and_profile(IntPtr caps, byte[] audio_config, uint len);
  
  		public static bool CodecUtilsAacCapsSetLevelAndProfile(Gst.Caps caps, byte[] audio_config, uint len) {
  			bool raw_ret = gst_codec_utils_aac_caps_set_level_and_profile(caps == null ? IntPtr.Zero : caps.Handle, audio_config, len);
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern uint gst_codec_utils_aac_get_channels(byte[] audio_config, uint len);
  
  		public static uint CodecUtilsAacGetChannels(byte[] audio_config, uint len) {
  			uint raw_ret = gst_codec_utils_aac_get_channels(audio_config, len);
  			uint ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern int gst_codec_utils_aac_get_index_from_sample_rate(uint rate);
  
  		public static int CodecUtilsAacGetIndexFromSampleRate(uint rate) {
  			int raw_ret = gst_codec_utils_aac_get_index_from_sample_rate(rate);
  			int ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_aac_get_level(byte[] audio_config, uint len);
  
  		public static string CodecUtilsAacGetLevel(byte[] audio_config, uint len) {
  			IntPtr raw_ret = gst_codec_utils_aac_get_level(audio_config, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_aac_get_profile(byte[] audio_config, uint len);
  
  		public static string CodecUtilsAacGetProfile(byte[] audio_config, uint len) {
  			IntPtr raw_ret = gst_codec_utils_aac_get_profile(audio_config, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern uint gst_codec_utils_aac_get_sample_rate(byte[] audio_config, uint len);
  
  		public static uint CodecUtilsAacGetSampleRate(byte[] audio_config, uint len) {
  			uint raw_ret = gst_codec_utils_aac_get_sample_rate(audio_config, len);
  			uint ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern uint gst_codec_utils_aac_get_sample_rate_from_index(uint sr_idx);
  
  		public static uint CodecUtilsAacGetSampleRateFromIndex(uint sr_idx) {
  			uint raw_ret = gst_codec_utils_aac_get_sample_rate_from_index(sr_idx);
  			uint ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_codec_utils_h264_caps_set_level_and_profile(IntPtr caps, byte[] sps, uint len);
  
  		public static bool CodecUtilsH264CapsSetLevelAndProfile(Gst.Caps caps, byte[] sps, uint len) {
  			bool raw_ret = gst_codec_utils_h264_caps_set_level_and_profile(caps == null ? IntPtr.Zero : caps.Handle, sps, len);
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_h264_get_level(byte[] sps, uint len);
  
  		public static string CodecUtilsH264GetLevel(byte[] sps, uint len) {
  			IntPtr raw_ret = gst_codec_utils_h264_get_level(sps, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern byte gst_codec_utils_h264_get_level_idc(IntPtr level);
  
  		public static byte CodecUtilsH264GetLevelIdc(string level) {
  			IntPtr native_level = GLib.Marshaller.StringToPtrGStrdup (level);
  			byte raw_ret = gst_codec_utils_h264_get_level_idc(native_level);
  			byte ret = raw_ret;
  			GLib.Marshaller.Free (native_level);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_h264_get_profile(byte[] sps, uint len);
  
  		public static string CodecUtilsH264GetProfile(byte[] sps, uint len) {
  			IntPtr raw_ret = gst_codec_utils_h264_get_profile(sps, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_codec_utils_h265_caps_set_level_tier_and_profile(IntPtr caps, byte[] profile_tier_level, uint len);
  
  		public static bool CodecUtilsH265CapsSetLevelTierAndProfile(Gst.Caps caps, byte[] profile_tier_level, uint len) {
  			bool raw_ret = gst_codec_utils_h265_caps_set_level_tier_and_profile(caps == null ? IntPtr.Zero : caps.Handle, profile_tier_level, len);
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_h265_get_level(byte[] profile_tier_level, uint len);
  
  		public static string CodecUtilsH265GetLevel(byte[] profile_tier_level, uint len) {
  			IntPtr raw_ret = gst_codec_utils_h265_get_level(profile_tier_level, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern byte gst_codec_utils_h265_get_level_idc(IntPtr level);
  
  		public static byte CodecUtilsH265GetLevelIdc(string level) {
  			IntPtr native_level = GLib.Marshaller.StringToPtrGStrdup (level);
  			byte raw_ret = gst_codec_utils_h265_get_level_idc(native_level);
  			byte ret = raw_ret;
  			GLib.Marshaller.Free (native_level);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_h265_get_profile(byte[] profile_tier_level, uint len);
  
  		public static string CodecUtilsH265GetProfile(byte[] profile_tier_level, uint len) {
  			IntPtr raw_ret = gst_codec_utils_h265_get_profile(profile_tier_level, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_h265_get_tier(byte[] profile_tier_level, uint len);
  
  		public static string CodecUtilsH265GetTier(byte[] profile_tier_level, uint len) {
  			IntPtr raw_ret = gst_codec_utils_h265_get_tier(profile_tier_level, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_codec_utils_mpeg4video_caps_set_level_and_profile(IntPtr caps, byte[] vis_obj_seq, uint len);
  
  		public static bool CodecUtilsMpeg4videoCapsSetLevelAndProfile(Gst.Caps caps, byte[] vis_obj_seq, uint len) {
  			bool raw_ret = gst_codec_utils_mpeg4video_caps_set_level_and_profile(caps == null ? IntPtr.Zero : caps.Handle, vis_obj_seq, len);
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_mpeg4video_get_level(byte[] vis_obj_seq, uint len);
  
  		public static string CodecUtilsMpeg4videoGetLevel(byte[] vis_obj_seq, uint len) {
  			IntPtr raw_ret = gst_codec_utils_mpeg4video_get_level(vis_obj_seq, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_mpeg4video_get_profile(byte[] vis_obj_seq, uint len);
  
  		public static string CodecUtilsMpeg4videoGetProfile(byte[] vis_obj_seq, uint len) {
  			IntPtr raw_ret = gst_codec_utils_mpeg4video_get_profile(vis_obj_seq, len);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_opus_create_caps(uint rate, byte channels, byte channel_mapping_family, byte stream_count, byte coupled_count, byte[] channel_mapping);
  
  		public static Gst.Caps CodecUtilsOpusCreateCaps(uint rate, byte channels, byte channel_mapping_family, byte stream_count, byte coupled_count, byte[] channel_mapping) {
  			IntPtr raw_ret = gst_codec_utils_opus_create_caps(rate, channels, channel_mapping_family, stream_count, coupled_count, channel_mapping);
  			Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), true);
  			return ret;
  		}
  
  		public static Gst.Caps CodecUtilsOpusCreateCaps(uint rate, byte channels, byte channel_mapping_family, byte stream_count, byte coupled_count) {
  			return CodecUtilsOpusCreateCaps (rate, channels, channel_mapping_family, stream_count, coupled_count, null);
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_opus_create_caps_from_header(IntPtr header, IntPtr comments);
  
  		public static Gst.Caps CodecUtilsOpusCreateCapsFromHeader(Gst.Buffer header, Gst.Buffer comments) {
  			IntPtr raw_ret = gst_codec_utils_opus_create_caps_from_header(header == null ? IntPtr.Zero : header.Handle, comments == null ? IntPtr.Zero : comments.Handle);
  			Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), true);
  			return ret;
  		}
  
  		public static Gst.Caps CodecUtilsOpusCreateCapsFromHeader(Gst.Buffer header) {
  			return CodecUtilsOpusCreateCapsFromHeader (header, null);
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_codec_utils_opus_create_header(uint rate, byte channels, byte channel_mapping_family, byte stream_count, byte coupled_count, byte[] channel_mapping, ushort pre_skip, short output_gain);
  
  		public static Gst.Buffer CodecUtilsOpusCreateHeader(uint rate, byte channels, byte channel_mapping_family, byte stream_count, byte coupled_count, byte[] channel_mapping, ushort pre_skip, short output_gain) {
  			IntPtr raw_ret = gst_codec_utils_opus_create_header(rate, channels, channel_mapping_family, stream_count, coupled_count, channel_mapping, pre_skip, output_gain);
  			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
  			return ret;
  		}
  
  		public static Gst.Buffer CodecUtilsOpusCreateHeader(uint rate, byte channels, byte channel_mapping_family, byte stream_count, byte coupled_count, ushort pre_skip, short output_gain) {
  			return CodecUtilsOpusCreateHeader (rate, channels, channel_mapping_family, stream_count, coupled_count, null, pre_skip, output_gain);
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_encoding_list_all_targets(IntPtr categoryname);
  
  		public static Gst.PbUtils.EncodingTarget[] EncodingListAllTargets(string categoryname) {
  			IntPtr native_categoryname = GLib.Marshaller.StringToPtrGStrdup (categoryname);
  			IntPtr raw_ret = gst_encoding_list_all_targets(native_categoryname);
  			Gst.PbUtils.EncodingTarget[] ret = (Gst.PbUtils.EncodingTarget[]) GLib.Marshaller.ListPtrToArray (raw_ret, typeof(GLib.List), true, true, typeof(Gst.PbUtils.EncodingTarget));
  			GLib.Marshaller.Free (native_categoryname);
  			return ret;
  		}
  
  		public static Gst.PbUtils.EncodingTarget[] EncodingListAllTargets() {
  			return EncodingListAllTargets (null);
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_encoding_list_available_categories();
  
  		public static string[] EncodingListAvailableCategories() {
  			IntPtr raw_ret = gst_encoding_list_available_categories();
  			string[] ret = (string[]) GLib.Marshaller.ListPtrToArray (raw_ret, typeof(GLib.List), true, true, typeof(string));
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_install_plugins_installation_in_progress();
  
  		public static bool InstallPluginsInstallationInProgress() {
  			bool raw_ret = gst_install_plugins_installation_in_progress();
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_install_plugins_return_get_name(int _ret);
  
  		public static string InstallPluginsReturnGetName(Gst.PbUtils.InstallPluginsReturn _ret) {
  			IntPtr raw_ret = gst_install_plugins_return_get_name((int) _ret);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_install_plugins_supported();
  
  		public static bool InstallPluginsSupported() {
  			bool raw_ret = gst_install_plugins_supported();
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_is_missing_plugin_message(IntPtr msg);
  
  		public static bool IsMissingPluginMessage(Gst.Message msg) {
  			bool raw_ret = gst_is_missing_plugin_message(msg == null ? IntPtr.Zero : msg.Handle);
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("gstpbutils-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_missing_decoder_installer_detail_new(IntPtr decode_caps);
  
  		public static string MissingDecoderInstallerDetailNew(Gst.Caps decode_caps) {
  			IntPtr raw_ret = gst_missing_decoder_installer_detail_new(decode_caps == null ? IntPtr.Zero : decode_caps.Handle);
  
gt: 			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);