mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 07:46:38 +00:00
379 lines
13 KiB
Text
379 lines
13 KiB
Text
public Query (Gst.GLib.Value val) : base (val) { }
|
|
|
|
private Gst.Structure cached_structure = null;
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_get_structure (IntPtr raw);
|
|
|
|
public Gst.Structure Structure {
|
|
get {
|
|
if (cached_structure != null)
|
|
return cached_structure;
|
|
|
|
IntPtr raw_ret = gst_query_get_structure (Handle);
|
|
Gst.Structure ret = raw_ret == IntPtr.Zero ? null : (Gst.Structure) Gst.GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Structure), true);
|
|
if (ret != null)
|
|
ret.FreeNative = false;
|
|
cached_structure = ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
~Query () {
|
|
if (cached_structure != null)
|
|
cached_structure.CreateNativeCopy ();
|
|
cached_structure = null;
|
|
}
|
|
|
|
public new string TypeName {
|
|
get {
|
|
return GetTypeName (Type);
|
|
}
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_application (QueryType type, IntPtr structure);
|
|
|
|
public static Query NewApplication (Gst.QueryType type, Structure structure) {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_application (type, (structure != null) ? structure.Handle : IntPtr.Zero), true);
|
|
query.cached_structure = structure;
|
|
structure.FreeNative = false;
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_convert (Gst.Format src_format, long value, Gst.Format dest_format);
|
|
|
|
public static Query NewConvert (Gst.Format src_format, long value, Gst.Format dest_format) {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_convert (src_format, value, dest_format), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_convert (IntPtr query, Gst.Format src_format, long src_value, Gst.Format dest_format, long dest_value);
|
|
|
|
public void SetConvert (Gst.Format src_format, long src_value, Gst.Format dest_format, long dest_value) {
|
|
if (Type != QueryType.Convert)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_convert (Handle, src_format, src_value, dest_format, dest_value);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_convert (IntPtr query, out Gst.Format src_format, out long src_value, out Gst.Format dest_format, out long dest_value);
|
|
|
|
public void ParseConvert (out Gst.Format src_format, out long src_value, out Gst.Format dest_format, out long dest_value) {
|
|
if (Type != QueryType.Convert)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_convert (Handle, out src_format, out src_value, out dest_format, out dest_value);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_position (Gst.Format format);
|
|
|
|
public static Query NewPosition (Gst.Format format) {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_position (format), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_position (IntPtr query, Gst.Format format, long cur);
|
|
|
|
public void SetPosition (Gst.Format format, long cur) {
|
|
if (Type != QueryType.Position)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_position (Handle, format, cur);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_position (IntPtr query, out Gst.Format format, out long cur);
|
|
|
|
public void ParsePosition (out Gst.Format format, out long cur) {
|
|
if (Type != QueryType.Position)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_position (Handle, out format, out cur);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_duration (Gst.Format format);
|
|
|
|
public static Query NewDuration (Gst.Format format) {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_duration (format), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_duration (IntPtr query, Gst.Format format, long duration);
|
|
|
|
public void SetDuration (Gst.Format format, long duration) {
|
|
if (Type != QueryType.Duration)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_duration (Handle, format, duration);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_duration (IntPtr query, out Gst.Format format, out long duration);
|
|
|
|
public void ParseDuration (out Gst.Format format, out long duration) {
|
|
if (Type != QueryType.Duration)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_duration (Handle, out format, out duration);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_latency ();
|
|
|
|
public static Query NewLatency() {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_latency (), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_latency (IntPtr query, bool live, ulong min, ulong max);
|
|
|
|
public void SetLatency (bool live, ulong min, ulong max) {
|
|
if (Type != QueryType.Latency)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_latency (Handle, live, min, max);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_latency (IntPtr query, out bool live, out ulong min, out ulong max);
|
|
|
|
public void ParseLatency (out bool live, out ulong min, out ulong max) {
|
|
if (Type != QueryType.Latency)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_latency (Handle, out live, out min, out max);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_seeking (Gst.Format format);
|
|
|
|
public static Query NewSeeking (Gst.Format format) {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_seeking (format), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_seeking (IntPtr query, Gst.Format format, bool seekable, long segment_start, long segment_stop);
|
|
|
|
public void SetSeeking (Gst.Format format, bool seekable, long segment_start, long segment_stop) {
|
|
if (Type != QueryType.Seeking)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_seeking (Handle, format, seekable, segment_start, segment_stop);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_seeking (IntPtr query, out Gst.Format format, out bool seekable, out long segment_start, out long segment_stop);
|
|
|
|
public void ParseSeeking (out Gst.Format format, out bool seekable, out long segment_start, out long segment_stop) {
|
|
if (Type != QueryType.Seeking)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_seeking (Handle, out format, out seekable, out segment_start, out segment_stop);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_formats ();
|
|
|
|
public static Query NewFormats() {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_formats (), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
public void SetFormats (Gst.Format[] formats) {
|
|
if (Type != QueryType.Formats)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
Structure s = this.Structure;
|
|
Gst.List l = new Gst.List (formats);
|
|
s["formats"] = l;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_formats_length (IntPtr query, out uint n_formats);
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_formats_nth (IntPtr query, uint nth, out Gst.Format format);
|
|
|
|
public void ParseFormats (out Gst.Format[] formats) {
|
|
if (Type != QueryType.Formats)
|
|
throw new ApplicationException ();
|
|
|
|
uint length;
|
|
gst_query_parse_formats_length (Handle, out length);
|
|
|
|
formats = new Gst.Format[length];
|
|
|
|
for (uint i = 0; i < length; i++)
|
|
gst_query_parse_formats_nth (Handle, i, out formats[i]);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_segment (Gst.Format format);
|
|
|
|
public static Query NewSegment (Gst.Format format) {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_segment (format), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_segment (IntPtr query, double rate, Gst.Format format, long segment_start, long segment_stop);
|
|
|
|
public void SetSegment (double rate, Gst.Format format, long segment_start, long segment_stop) {
|
|
if (Type != QueryType.Segment)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_segment (Handle, rate, format, segment_start, segment_stop);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_segment (IntPtr query, out double rate, out Gst.Format format, out long segment_start, out long segment_stop);
|
|
|
|
public void ParseSegment (out double rate, out Gst.Format format, out long segment_start, out long segment_stop) {
|
|
if (Type != QueryType.Segment)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_segment (Handle, out rate, out format, out segment_start, out segment_stop);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_buffering (Gst.Format format);
|
|
|
|
public static Query NewBuffering (Gst.Format format) {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_buffering (format), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_buffering_percent (IntPtr query, bool busy, int percent);
|
|
|
|
public void SetBufferingPercent (bool busy, int percent) {
|
|
if (Type != QueryType.Buffering)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_buffering_percent (Handle, busy, percent);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_buffering_percent (IntPtr query, out bool busy, out int percent);
|
|
|
|
public void ParseBufferingPercent (out bool busy, out int percent) {
|
|
if (Type != QueryType.Buffering)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_buffering_percent (Handle, out busy, out percent);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_buffering_stats (IntPtr query, Gst.BufferingMode mode, int avg_in, int avg_out, long buffering_left);
|
|
|
|
public void SetBufferingStats (Gst.BufferingMode mode, int avg_in, int avg_out, long buffering_left) {
|
|
if (Type != QueryType.Buffering)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_buffering_stats (Handle, mode, avg_in, avg_out, buffering_left);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_buffering_stats (IntPtr query, out Gst.BufferingMode mode, out int avg_in, out int avg_out, out long buffering_left);
|
|
|
|
public void ParseBufferingStats (out Gst.BufferingMode mode, out int avg_in, out int avg_out, out long buffering_left) {
|
|
if (Type != QueryType.Buffering)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_buffering_stats (Handle, out mode, out avg_in, out avg_out, out buffering_left);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_buffering_range (IntPtr query, Gst.Format format, long start, long stop, long estimated_total);
|
|
|
|
public void SetBufferingRange (Gst.Format format, long start, long stop, long estimated_total) {
|
|
if (Type != QueryType.Buffering)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_set_buffering_range (Handle, format, start, stop, estimated_total);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_buffering_range (IntPtr query, out Gst.Format format, out long start, out long stop, out long estimated_total);
|
|
|
|
public void ParseBufferingRange (out Gst.Format format, out long start, out long stop, out long estimated_total) {
|
|
if (Type != QueryType.Buffering)
|
|
throw new ApplicationException ();
|
|
|
|
gst_query_parse_buffering_range (Handle, out format, out start, out stop, out estimated_total);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern IntPtr gst_query_new_uri ();
|
|
|
|
public static Query NewUri() {
|
|
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_uri (), true);
|
|
|
|
return query;
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_set_uri (IntPtr query, IntPtr uri);
|
|
|
|
public void SetUri (string uri) {
|
|
if (Type != QueryType.Uri)
|
|
throw new ApplicationException ();
|
|
if (!IsWritable)
|
|
throw new ApplicationException ();
|
|
|
|
IntPtr raw_string = Gst.GLib.Marshaller.StringToPtrGStrdup (uri);
|
|
gst_query_set_uri (Handle, raw_string);
|
|
Gst.GLib.Marshaller.Free (raw_string);
|
|
}
|
|
|
|
[DllImport ("libgstreamer-0.10.dll") ]
|
|
static extern void gst_query_parse_uri (IntPtr query, out IntPtr uri);
|
|
|
|
public void ParseUri (out string uri) {
|
|
if (Type != QueryType.Uri)
|
|
throw new ApplicationException ();
|
|
|
|
IntPtr raw_string;
|
|
gst_query_parse_uri (Handle, out raw_string);
|
|
|
|
uri = Gst.GLib.Marshaller.Utf8PtrToString (raw_string);
|
|
}
|
|
|