gstutils.inc 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. {
  2. /* GStreamer
  3. * Copyright (C) 1999,2000 Erik Walthinsen <[email protected]>
  4. * 2000 Wim Taymans <[email protected]>
  5. * 2002 Thomas Vander Stichele <[email protected]>
  6. *
  7. * gstutils.h: Header for various utility functions
  8. *
  9. * This library is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU Library General Public
  11. * License as published by the Free Software Foundation; either
  12. * version 2 of the License, or (at your option) any later version.
  13. *
  14. * This library is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  17. * Library General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU Library General Public
  20. * License along with this library; if not, write to the
  21. * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
  22. * Boston, MA 02110-1301, USA.
  23. */
  24. }
  25. Type
  26. PPGValueArray = ^PGValueArray;
  27. {$IFDEF FPC}
  28. {$PACKRECORDS C}
  29. {$ENDIF}
  30. type
  31. PGstSearchMode = ^TGstSearchMode;
  32. TGstSearchMode = (GST_SEARCH_MODE_EXACT := 0,GST_SEARCH_MODE_BEFORE,
  33. GST_SEARCH_MODE_AFTER);
  34. (* Const before type ignored *)
  35. procedure gst_util_set_value_from_string(value:PGValue; value_str:Pgchar);cdecl;external gstreamerlib name 'gst_util_set_value_from_string';
  36. (* Const before type ignored *)
  37. (* Const before type ignored *)
  38. procedure gst_util_set_object_arg(object_:PGObject; name:Pgchar; value:Pgchar);cdecl;external gstreamerlib name 'gst_util_set_object_arg';
  39. (* Const before type ignored *)
  40. (* Const before type ignored *)
  41. function gst_util_set_object_array(object_:PGObject; name:Pgchar; array_:PGValueArray):Tgboolean;cdecl;external gstreamerlib name 'gst_util_set_object_array';
  42. (* Const before type ignored *)
  43. function gst_util_get_object_array(object_:PGObject; name:Pgchar; array_:PPGValueArray):Tgboolean;cdecl;external gstreamerlib name 'gst_util_get_object_array';
  44. (* Const before type ignored *)
  45. procedure gst_util_dump_mem(mem:Pguchar; size:Tguint);cdecl;external gstreamerlib name 'gst_util_dump_mem';
  46. procedure gst_util_dump_buffer(buf:PGstBuffer);cdecl;external gstreamerlib name 'gst_util_dump_buffer';
  47. function gst_util_gdouble_to_guint64(value:Tgdouble):Tguint64;cdecl;external gstreamerlib name 'gst_util_gdouble_to_guint64';
  48. function gst_util_guint64_to_gdouble(value:Tguint64):Tgdouble;cdecl;external gstreamerlib name 'gst_util_guint64_to_gdouble';
  49. function gst_util_uint64_scale(val:Tguint64; num:Tguint64; denom:Tguint64):Tguint64;cdecl;external gstreamerlib name 'gst_util_uint64_scale';
  50. function gst_util_uint64_scale_round(val:Tguint64; num:Tguint64; denom:Tguint64):Tguint64;cdecl;external gstreamerlib name 'gst_util_uint64_scale_round';
  51. function gst_util_uint64_scale_ceil(val:Tguint64; num:Tguint64; denom:Tguint64):Tguint64;cdecl;external gstreamerlib name 'gst_util_uint64_scale_ceil';
  52. function gst_util_uint64_scale_int(val:Tguint64; num:Tgint; denom:Tgint):Tguint64;cdecl;external gstreamerlib name 'gst_util_uint64_scale_int';
  53. function gst_util_uint64_scale_int_round(val:Tguint64; num:Tgint; denom:Tgint):Tguint64;cdecl;external gstreamerlib name 'gst_util_uint64_scale_int_round';
  54. function gst_util_uint64_scale_int_ceil(val:Tguint64; num:Tgint; denom:Tgint):Tguint64;cdecl;external gstreamerlib name 'gst_util_uint64_scale_int_ceil';
  55. function gst_util_seqnum_next:Tguint32;cdecl;external gstreamerlib name 'gst_util_seqnum_next';
  56. function gst_util_seqnum_compare(s1:Tguint32; s2:Tguint32):Tgint32;cdecl;external gstreamerlib name 'gst_util_seqnum_compare';
  57. function gst_util_group_id_next:Tguint;cdecl;external gstreamerlib name 'gst_util_group_id_next';
  58. {
  59. static inline guint16 __gst_fast_read16(const guint8 *v)
  60. return *(const guint16*)(const void*)(v);
  61. static inline guint32 __gst_fast_read32(const guint8 *v)
  62. return *(const guint32*)(const void*)(v);
  63. static inline guint64 __gst_fast_read64(const guint8 *v)
  64. return *(const guint64*)(const void*)(v);
  65. static inline guint16 __gst_fast_read_swap16(const guint8 *v)
  66. return (((guint16) ( (guint16) ((guint16) (*(const guint16*)(const void*)(v)) >> 8) | (guint16) ((guint16) (*(const guint16*)(const void*)(v)) << 8))));
  67. static inline guint32 __gst_fast_read_swap32(const guint8 *v)
  68. return (((guint32) ( (((guint32) (*(const guint32*)(const void*)(v)) & (guint32) 0x000000ffU) << 24) | (((guint32) (*(const guint32*)(const void*)(v)) & (guint32) 0x0000ff00U) << 8) | (((guint32) (*(const guint32*)(const void*)(v)) & (guint32) 0x00ff0000U) >> 8) | (((guint32) (*(const guint32*)(const void*)(v)) & (guint32) 0xff000000U) >> 24))));
  69. static inline guint64 __gst_fast_read_swap64(const guint8 *v)
  70. return (((guint64) ( (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0x00000000000000ffUL)) << 56) | (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0x000000000000ff00UL)) << 40) | (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0x0000000000ff0000UL)) << 24) | (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0x00000000ff000000UL)) << 8) | (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0x000000ff00000000UL)) >> 8) | (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0x0000ff0000000000UL)) >> 24) | (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0x00ff000000000000UL)) >> 40) | (((guint64) (*(const guint64*)(const void*)(v)) & (guint64) (0xff00000000000000UL)) >> 56))));
  71. static inline void __gst_fast_write16 (guint8 *p, guint16 v)
  72. *(guint16*)(void*)(p) = v;
  73. static inline void __gst_fast_write32 (guint8 *p, guint32 v)
  74. *(guint32*)(void*)(p) = v;
  75. static inline void __gst_fast_write64 (guint8 *p, guint64 v)
  76. *(guint64*)(void*)(p) = v;
  77. static inline void __gst_fast_write_swap16 (guint8 *p, guint16 v)
  78. *(guint16*)(void*)(p) = (((guint16) ( (guint16) ((guint16) (v) >> 8) | (guint16) ((guint16) (v) << 8))));
  79. static inline void __gst_fast_write_swap32 (guint8 *p, guint32 v)
  80. *(guint32*)(void*)(p) = (((guint32) ( (((guint32) (v) & (guint32) 0x000000ffU) << 24) | (((guint32) (v) & (guint32) 0x0000ff00U) << 8) | (((guint32) (v) & (guint32) 0x00ff0000U) >> 8) | (((guint32) (v) & (guint32) 0xff000000U) >> 24))));
  81. static inline void __gst_fast_write_swap64 (guint8 *p, guint64 v)
  82. *(guint64*)(void*)(p) = (((guint64) ( (((guint64) (v) & (guint64) (0x00000000000000ffUL)) << 56) | (((guint64) (v) & (guint64) (0x000000000000ff00UL)) << 40) | (((guint64) (v) & (guint64) (0x0000000000ff0000UL)) << 24) | (((guint64) (v) & (guint64) (0x00000000ff000000UL)) << 8) | (((guint64) (v) & (guint64) (0x000000ff00000000UL)) >> 8) | (((guint64) (v) & (guint64) (0x0000ff0000000000UL)) >> 24) | (((guint64) (v) & (guint64) (0x00ff000000000000UL)) >> 40) | (((guint64) (v) & (guint64) (0xff00000000000000UL)) >> 56))));
  83. # 321 "gstutils.h"
  84. static inline guint32 __gst_slow_read24_be (const guint8 * data)
  85. return ((((guint32) (((const guint8 *) (data))[0])) << (16)) | (((guint32) (((const guint8 *) (data))[1])) << (8)) | (((guint32) (((const guint8 *) (data))[2])) << (0)));
  86. # 336 "gstutils.h"
  87. static inline guint32 __gst_slow_read24_le (const guint8 * data)
  88. return ((((guint32) (((const guint8 *) (data))[2])) << (16)) | (((guint32) (((const guint8 *) (data))[1])) << (8)) | (((guint32) (((const guint8 *) (data))[0])) << (0)));
  89. # 568 "gstutils.h"
  90. static inline gfloat
  91. GFLOAT_SWAP_LE_BE(gfloat in)
  92. union
  93. guint32 i;
  94. gfloat f;
  95. u;
  96. u.f = in;
  97. u.i = (((guint32) ( (((guint32) (u.i) & (guint32) 0x000000ffU) << 24) | (((guint32) (u.i) & (guint32) 0x0000ff00U) << 8) | (((guint32) (u.i) & (guint32) 0x00ff0000U) >> 8) | (((guint32) (u.i) & (guint32) 0xff000000U) >> 24))));
  98. return u.f;
  99. # 590 "gstutils.h"
  100. static inline gdouble
  101. GDOUBLE_SWAP_LE_BE(gdouble in)
  102. union
  103. guint64 i;
  104. gdouble d;
  105. u;
  106. u.d = in;
  107. u.i = (((guint64) ( (((guint64) (u.i) & (guint64) (0x00000000000000ffUL)) << 56) | (((guint64) (u.i) & (guint64) (0x000000000000ff00UL)) << 40) | (((guint64) (u.i) & (guint64) (0x0000000000ff0000UL)) << 24) | (((guint64) (u.i) & (guint64) (0x00000000ff000000UL)) << 8) | (((guint64) (u.i) & (guint64) (0x000000ff00000000UL)) >> 8) | (((guint64) (u.i) & (guint64) (0x0000ff0000000000UL)) >> 24) | (((guint64) (u.i) & (guint64) (0x00ff000000000000UL)) >> 40) | (((guint64) (u.i) & (guint64) (0xff00000000000000UL)) >> 56))));
  108. return u.d;
  109. # 693 "gstutils.h"
  110. static inline gfloat
  111. GST_READ_FLOAT_LE(const guint8 *data)
  112. union
  113. guint32 i;
  114. gfloat f;
  115. u;
  116. u.i = __gst_fast_read32((const guint8 *)(data));
  117. return u.f;
  118. # 714 "gstutils.h"
  119. static inline gfloat
  120. GST_READ_FLOAT_BE(const guint8 *data)
  121. union
  122. guint32 i;
  123. gfloat f;
  124. u;
  125. u.i = __gst_fast_read_swap32((const guint8 *)(data));
  126. return u.f;
  127. # 735 "gstutils.h"
  128. static inline gdouble
  129. GST_READ_DOUBLE_LE(const guint8 *data)
  130. union
  131. guint64 i;
  132. gdouble d;
  133. u;
  134. u.i = __gst_fast_read64((const guint8 *)(data));
  135. return u.d;
  136. # 756 "gstutils.h"
  137. static inline gdouble
  138. GST_READ_DOUBLE_BE(const guint8 *data)
  139. union
  140. guint64 i;
  141. gdouble d;
  142. u;
  143. u.i = __gst_fast_read_swap64((const guint8 *)(data));
  144. return u.d;
  145. # 776 "gstutils.h"
  146. static inline void
  147. GST_WRITE_FLOAT_LE(guint8 *data, gfloat num)
  148. union
  149. guint32 i;
  150. gfloat f;
  151. u;
  152. u.f = num;
  153. __gst_fast_write32((guint8 *)(data), (u.i));
  154. # 796 "gstutils.h"
  155. static inline void
  156. GST_WRITE_FLOAT_BE(guint8 *data, gfloat num)
  157. union
  158. guint32 i;
  159. gfloat f;
  160. u;
  161. u.f = num;
  162. __gst_fast_write_swap32((guint8 *)(data), (u.i));
  163. # 816 "gstutils.h"
  164. static inline void
  165. GST_WRITE_DOUBLE_LE(guint8 *data, gdouble num)
  166. union
  167. guint64 i;
  168. gdouble d;
  169. u;
  170. u.d = num;
  171. __gst_fast_write64((guint8 *)(data), (u.i));
  172. # 836 "gstutils.h"
  173. static inline void
  174. GST_WRITE_DOUBLE_BE(guint8 *data, gdouble num)
  175. union
  176. guint64 i;
  177. gdouble d;
  178. u;
  179. u.d = num;
  180. __gst_fast_write_swap64((guint8 *)(data), (u.i));
  181. }
  182. (* Const before type ignored *)
  183. (* Const before type ignored *)
  184. procedure gst_object_default_error(source:PGstObject; error:PGError; debug:Pgchar);cdecl;external gstreamerlib name 'gst_object_default_error';
  185. procedure gst_element_create_all_pads(element:PGstElement);cdecl;external gstreamerlib name 'gst_element_create_all_pads';
  186. function gst_element_get_compatible_pad(element:PGstElement; pad:PGstPad; caps:PGstCaps):PGstPad;cdecl;external gstreamerlib name 'gst_element_get_compatible_pad';
  187. function gst_element_get_compatible_pad_template(element:PGstElement; compattempl:PGstPadTemplate):PGstPadTemplate;cdecl;external gstreamerlib name 'gst_element_get_compatible_pad_template';
  188. (* Const before type ignored *)
  189. function gst_element_state_get_name(state:TGstState):Pgchar;cdecl;external gstreamerlib name 'gst_element_state_get_name';
  190. (* Const before type ignored *)
  191. function gst_element_state_change_return_get_name(state_ret:TGstStateChangeReturn):Pgchar;cdecl;external gstreamerlib name 'gst_element_state_change_return_get_name';
  192. (* Const before type ignored *)
  193. function gst_state_change_get_name(transition:TGstStateChange):Pgchar;cdecl;external gstreamerlib name 'gst_state_change_get_name';
  194. function gst_element_link(src:PGstElement; dest:PGstElement):Tgboolean;cdecl;external gstreamerlib name 'gst_element_link';
  195. function gst_element_link_many(element_1:PGstElement; element_2:PGstElement; args:array of const):Tgboolean;cdecl;external gstreamerlib name 'gst_element_link_many';
  196. function gst_element_link_many(element_1:PGstElement; element_2:PGstElement):Tgboolean;cdecl;external gstreamerlib name 'gst_element_link_many';
  197. function gst_element_link_filtered(src:PGstElement; dest:PGstElement; filter:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_element_link_filtered';
  198. procedure gst_element_unlink(src:PGstElement; dest:PGstElement);cdecl;external gstreamerlib name 'gst_element_unlink';
  199. procedure gst_element_unlink_many(element_1:PGstElement; element_2:PGstElement; args:array of const);cdecl;external gstreamerlib name 'gst_element_unlink_many';
  200. procedure gst_element_unlink_many(element_1:PGstElement; element_2:PGstElement);cdecl;external gstreamerlib name 'gst_element_unlink_many';
  201. (* Const before type ignored *)
  202. (* Const before type ignored *)
  203. function gst_element_link_pads(src:PGstElement; srcpadname:Pgchar; dest:PGstElement; destpadname:Pgchar):Tgboolean;cdecl;external gstreamerlib name 'gst_element_link_pads';
  204. (* Const before type ignored *)
  205. (* Const before type ignored *)
  206. function gst_element_link_pads_full(src:PGstElement; srcpadname:Pgchar; dest:PGstElement; destpadname:Pgchar; flags:TGstPadLinkCheck):Tgboolean;cdecl;external gstreamerlib name 'gst_element_link_pads_full';
  207. (* Const before type ignored *)
  208. (* Const before type ignored *)
  209. procedure gst_element_unlink_pads(src:PGstElement; srcpadname:Pgchar; dest:PGstElement; destpadname:Pgchar);cdecl;external gstreamerlib name 'gst_element_unlink_pads';
  210. (* Const before type ignored *)
  211. (* Const before type ignored *)
  212. function gst_element_link_pads_filtered(src:PGstElement; srcpadname:Pgchar; dest:PGstElement; destpadname:Pgchar; filter:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_element_link_pads_filtered';
  213. function gst_element_seek_simple(element:PGstElement; format:TGstFormat; seek_flags:TGstSeekFlags; seek_pos:Tgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_element_seek_simple';
  214. (* Const before type ignored *)
  215. function gst_element_factory_can_sink_all_caps(factory:PGstElementFactory; caps:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_element_factory_can_sink_all_caps';
  216. (* Const before type ignored *)
  217. function gst_element_factory_can_src_all_caps(factory:PGstElementFactory; caps:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_element_factory_can_src_all_caps';
  218. (* Const before type ignored *)
  219. function gst_element_factory_can_sink_any_caps(factory:PGstElementFactory; caps:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_element_factory_can_sink_any_caps';
  220. (* Const before type ignored *)
  221. function gst_element_factory_can_src_any_caps(factory:PGstElementFactory; caps:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_element_factory_can_src_any_caps';
  222. function gst_element_query_position(element:PGstElement; format:TGstFormat; cur:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_element_query_position';
  223. function gst_element_query_duration(element:PGstElement; format:TGstFormat; duration:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_element_query_duration';
  224. function gst_element_query_convert(element:PGstElement; src_format:TGstFormat; src_val:Tgint64; dest_format:TGstFormat; dest_val:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_element_query_convert';
  225. procedure gst_pad_use_fixed_caps(pad:PGstPad);cdecl;external gstreamerlib name 'gst_pad_use_fixed_caps';
  226. function gst_pad_get_parent_element(pad:PGstPad):PGstElement;cdecl;external gstreamerlib name 'gst_pad_get_parent_element';
  227. function gst_pad_proxy_query_accept_caps(pad:PGstPad; query:PGstQuery):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_proxy_query_accept_caps';
  228. function gst_pad_proxy_query_caps(pad:PGstPad; query:PGstQuery):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_proxy_query_caps';
  229. function gst_pad_query_position(pad:PGstPad; format:TGstFormat; cur:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_query_position';
  230. function gst_pad_query_duration(pad:PGstPad; format:TGstFormat; duration:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_query_duration';
  231. function gst_pad_query_convert(pad:PGstPad; src_format:TGstFormat; src_val:Tgint64; dest_format:TGstFormat; dest_val:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_query_convert';
  232. function gst_pad_query_caps(pad:PGstPad; filter:PGstCaps):PGstCaps;cdecl;external gstreamerlib name 'gst_pad_query_caps';
  233. function gst_pad_query_accept_caps(pad:PGstPad; caps:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_query_accept_caps';
  234. function gst_pad_link_maybe_ghosting(src:PGstPad; sink:PGstPad):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_link_maybe_ghosting';
  235. function gst_pad_link_maybe_ghosting_full(src:PGstPad; sink:PGstPad; flags:TGstPadLinkCheck):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_link_maybe_ghosting_full';
  236. function gst_pad_peer_query_position(pad:PGstPad; format:TGstFormat; cur:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_peer_query_position';
  237. function gst_pad_peer_query_duration(pad:PGstPad; format:TGstFormat; duration:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_peer_query_duration';
  238. function gst_pad_peer_query_convert(pad:PGstPad; src_format:TGstFormat; src_val:Tgint64; dest_format:TGstFormat; dest_val:Pgint64):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_peer_query_convert';
  239. function gst_pad_peer_query_caps(pad:PGstPad; filter:PGstCaps):PGstCaps;cdecl;external gstreamerlib name 'gst_pad_peer_query_caps';
  240. function gst_pad_peer_query_accept_caps(pad:PGstPad; caps:PGstCaps):Tgboolean;cdecl;external gstreamerlib name 'gst_pad_peer_query_accept_caps';
  241. (* Const before type ignored *)
  242. function gst_pad_create_stream_id(pad:PGstPad; parent:PGstElement; stream_id:Pgchar):Pgchar;cdecl;external gstreamerlib name 'gst_pad_create_stream_id';
  243. (* Const before type ignored *)
  244. function gst_pad_create_stream_id_printf(pad:PGstPad; parent:PGstElement; stream_id:Pgchar; args:array of const):Pgchar;cdecl;external gstreamerlib name 'gst_pad_create_stream_id_printf';
  245. function gst_pad_create_stream_id_printf(pad:PGstPad; parent:PGstElement; stream_id:Pgchar):Pgchar;cdecl;external gstreamerlib name 'gst_pad_create_stream_id_printf';
  246. (* Const before type ignored *)
  247. function gst_pad_create_stream_id_printf_valist(pad:PGstPad; parent:PGstElement; stream_id:Pgchar; var_args:Tva_list):Pgchar;cdecl;external gstreamerlib name 'gst_pad_create_stream_id_printf_valist';
  248. function gst_pad_get_stream_id(pad:PGstPad):Pgchar;cdecl;external gstreamerlib name 'gst_pad_get_stream_id';
  249. function gst_pad_get_stream(pad:PGstPad):PGstStream;cdecl;external gstreamerlib name 'gst_pad_get_stream';
  250. procedure gst_bin_add_many(bin:PGstBin; element_1:PGstElement; args:array of const);cdecl;external gstreamerlib name 'gst_bin_add_many';
  251. procedure gst_bin_add_many(bin:PGstBin; element_1:PGstElement);cdecl;external gstreamerlib name 'gst_bin_add_many';
  252. procedure gst_bin_remove_many(bin:PGstBin; element_1:PGstElement; args:array of const);cdecl;external gstreamerlib name 'gst_bin_remove_many';
  253. procedure gst_bin_remove_many(bin:PGstBin; element_1:PGstElement);cdecl;external gstreamerlib name 'gst_bin_remove_many';
  254. function gst_bin_find_unlinked_pad(bin:PGstBin; direction:TGstPadDirection):PGstPad;cdecl;external gstreamerlib name 'gst_bin_find_unlinked_pad';
  255. function gst_bin_sync_children_states(bin:PGstBin):Tgboolean;cdecl;external gstreamerlib name 'gst_bin_sync_children_states';
  256. (* Const before type ignored *)
  257. function gst_parse_bin_from_description(bin_description:Pgchar; ghost_unlinked_pads:Tgboolean; err:PPGError):PGstElement;cdecl;external gstreamerlib name 'gst_parse_bin_from_description';
  258. (* Const before type ignored *)
  259. function gst_parse_bin_from_description_full(bin_description:Pgchar; ghost_unlinked_pads:Tgboolean; context:PGstParseContext; flags:TGstParseFlags; err:PPGError):PGstElement;cdecl;external gstreamerlib name 'gst_parse_bin_from_description_full';
  260. function gst_util_get_timestamp:TGstClockTime;cdecl;external gstreamerlib name 'gst_util_get_timestamp';
  261. function gst_util_array_binary_search(array_:Tgpointer; num_elements:Tguint; element_size:Tgsize; search_func:TGCompareDataFunc; mode:TGstSearchMode;
  262. search_data:Tgconstpointer; user_data:Tgpointer):Tgpointer;cdecl;external gstreamerlib name 'gst_util_array_binary_search';
  263. function gst_util_greatest_common_divisor(a:Tgint; b:Tgint):Tgint;cdecl;external gstreamerlib name 'gst_util_greatest_common_divisor';
  264. function gst_util_greatest_common_divisor_int64(a:Tgint64; b:Tgint64):Tgint64;cdecl;external gstreamerlib name 'gst_util_greatest_common_divisor_int64';
  265. procedure gst_util_fraction_to_double(src_n:Tgint; src_d:Tgint; dest:Pgdouble);cdecl;external gstreamerlib name 'gst_util_fraction_to_double';
  266. procedure gst_util_double_to_fraction(src:Tgdouble; dest_n:Pgint; dest_d:Pgint);cdecl;external gstreamerlib name 'gst_util_double_to_fraction';
  267. function gst_util_fraction_multiply(a_n:Tgint; a_d:Tgint; b_n:Tgint; b_d:Tgint; res_n:Pgint;
  268. res_d:Pgint):Tgboolean;cdecl;external gstreamerlib name 'gst_util_fraction_multiply';
  269. function gst_util_fraction_add(a_n:Tgint; a_d:Tgint; b_n:Tgint; b_d:Tgint; res_n:Pgint;
  270. res_d:Pgint):Tgboolean;cdecl;external gstreamerlib name 'gst_util_fraction_add';
  271. function gst_util_fraction_compare(a_n:Tgint; a_d:Tgint; b_n:Tgint; b_d:Tgint):Tgint;cdecl;external gstreamerlib name 'gst_util_fraction_compare';
  272. (* Const before type ignored *)
  273. function gst_calculate_linear_regression(xy:PGstClockTime; temp:PGstClockTime; n:Tguint; m_num:PGstClockTime; m_denom:PGstClockTime;
  274. b:PGstClockTime; xbase:PGstClockTime; r_squared:Pgdouble):Tgboolean;cdecl;external gstreamerlib name 'gst_calculate_linear_regression';