gstevent.inc 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. {
  2. /* GStreamer
  3. * Copyright (C) 1999,2000 Erik Walthinsen <[email protected]>
  4. * 2000 Wim Taymans <[email protected]>
  5. * 2005 Wim Taymans <[email protected]>
  6. *
  7. * gstevent.h: Header for GstEvent subsystem
  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. PGstEvent = ^TGstEvent;
  27. PPGstEvent = ^PGstEvent;
  28. PGstEvent_autoptr = ^TGstEvent_autoptr;
  29. PGstEvent_listautoptr = ^TGstEvent_listautoptr;
  30. PGstEvent_queueautoptr = ^TGstEvent_queueautoptr;
  31. PGstEvent_slistautoptr = ^TGstEvent_slistautoptr;
  32. PGstQOSType = ^TGstQOSType;
  33. PGstStreamFlags = ^TGstStreamFlags;
  34. {$IFDEF FPC}
  35. {$PACKRECORDS C}
  36. {$ENDIF}
  37. TGstEvent_autoptr = PGstEvent;
  38. TGstEvent_listautoptr = PGList;
  39. TGstEvent_slistautoptr = PGSList;
  40. TGstEvent_queueautoptr = PGQueue;
  41. TGstEventTypeFlags = (
  42. GST_EVENT_TYPE_UPSTREAM := 1 shl 0,
  43. GST_EVENT_TYPE_DOWNSTREAM := 1 shl 1,
  44. GST_EVENT_TYPE_SERIALIZED := 1 shl 2,
  45. GST_EVENT_TYPE_STICKY := 1 shl 3,
  46. GST_EVENT_TYPE_STICKY_MULTI := 1 shl 4
  47. );
  48. TGstEventType = (
  49. GST_EVENT_UNKNOWN := (((0) shl (8)) or (0)),
  50. GST_EVENT_FLUSH_START := (((10) shl (8)) or (ord(GST_EVENT_TYPE_UPSTREAM) or ord(GST_EVENT_TYPE_DOWNSTREAM))),
  51. GST_EVENT_FLUSH_STOP := (((20) shl (8)) or ((ord(GST_EVENT_TYPE_UPSTREAM) or ord(GST_EVENT_TYPE_DOWNSTREAM)) or ord(GST_EVENT_TYPE_SERIALIZED))),
  52. GST_EVENT_STREAM_START := (((40) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY))),
  53. GST_EVENT_CAPS := (((50) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY))),
  54. GST_EVENT_SEGMENT := (((70) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY))),
  55. GST_EVENT_STREAM_COLLECTION := (((75) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY) or ord(GST_EVENT_TYPE_STICKY_MULTI))),
  56. GST_EVENT_TAG := (((80) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY) or ord(GST_EVENT_TYPE_STICKY_MULTI))),
  57. GST_EVENT_BUFFERSIZE := (((90) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY))),
  58. GST_EVENT_SINK_MESSAGE := (((100) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY) or ord(GST_EVENT_TYPE_STICKY_MULTI))),
  59. GST_EVENT_STREAM_GROUP_DONE := (((105) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY))),
  60. GST_EVENT_EOS := (((110) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY))),
  61. GST_EVENT_TOC := (((120) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY) or ord(GST_EVENT_TYPE_STICKY_MULTI))),
  62. GST_EVENT_PROTECTION := (((130) shl (8)) or (ord(GST_EVENT_TYPE_DOWNSTREAM) or ord(GST_EVENT_TYPE_SERIALIZED) or ord(GST_EVENT_TYPE_STICKY) or ord(GST_EVENT_TYPE_STICKY_MULTI))),
  63. GST_EVENT_SEGMENT_DONE := (((150) shl (8)) or Ord(GST_EVENT_TYPE_DOWNSTREAM) or Ord(GST_EVENT_TYPE_SERIALIZED)),
  64. GST_EVENT_GAP := (((160) shl (8)) or Ord(GST_EVENT_TYPE_DOWNSTREAM) or Ord(GST_EVENT_TYPE_SERIALIZED)),
  65. GST_EVENT_QOS := (((190) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  66. GST_EVENT_SEEK := (((200) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  67. GST_EVENT_NAVIGATION := (((210) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  68. GST_EVENT_LATENCY := (((220) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  69. GST_EVENT_STEP := (((230) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  70. GST_EVENT_RECONFIGURE := (((240) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  71. GST_EVENT_TOC_SELECT := (((250) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  72. GST_EVENT_SELECT_STREAMS := (((260) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  73. GST_EVENT_CUSTOM_UPSTREAM := (((270) shl (8)) or Ord(GST_EVENT_TYPE_UPSTREAM)),
  74. GST_EVENT_CUSTOM_DOWNSTREAM := (((280) shl (8)) or Ord(GST_EVENT_TYPE_DOWNSTREAM) or Ord(GST_EVENT_TYPE_SERIALIZED)),
  75. GST_EVENT_CUSTOM_DOWNSTREAM_OOB := (((290) shl (8)) or Ord(GST_EVENT_TYPE_DOWNSTREAM)),
  76. GST_EVENT_CUSTOM_DOWNSTREAM_STICKY := (((300) shl (8))
  77. or Ord(GST_EVENT_TYPE_DOWNSTREAM)
  78. or Ord(GST_EVENT_TYPE_SERIALIZED)
  79. or Ord(GST_EVENT_TYPE_STICKY)
  80. or Ord(GST_EVENT_TYPE_STICKY_MULTI)),
  81. GST_EVENT_CUSTOM_BOTH := (((310) shl (8)) or
  82. ((Ord(GST_EVENT_TYPE_UPSTREAM) or Ord(GST_EVENT_TYPE_DOWNSTREAM)) or Ord(GST_EVENT_TYPE_SERIALIZED))),
  83. GST_EVENT_CUSTOM_BOTH_OOB := (((320) shl (8)) or ((Ord(GST_EVENT_TYPE_UPSTREAM) or ord(GST_EVENT_TYPE_DOWNSTREAM))))
  84. );
  85. TGstQOSType = (
  86. GST_QOS_TYPE_OVERFLOW := 0,
  87. GST_QOS_TYPE_UNDERFLOW := 1,
  88. GST_QOS_TYPE_THROTTLE := 2
  89. );
  90. T_GstEvent = record
  91. mini_object : TGstMiniObject ;
  92. type_ : TGstEventType ;
  93. timestamp : tguint64 ;
  94. seqnum : tguint32 ;
  95. end;
  96. TGstEvent = T_GstEvent;
  97. {
  98. static inline gboolean
  99. gst_event_replace (GstEvent **old_event, GstEvent *new_event)
  100. return gst_mini_object_replace ((GstMiniObject **) old_event, (GstMiniObject *) new_event);
  101. # 347 "gstevent.h"
  102. static inline GstEvent *
  103. gst_event_steal (GstEvent **old_event)
  104. return ((GstEvent *)(gst_mini_object_steal ((GstMiniObject **) old_event)));
  105. # 368 "gstevent.h"
  106. static inline gboolean
  107. gst_event_take (GstEvent **old_event, GstEvent *new_event)
  108. return gst_mini_object_take ((GstMiniObject **) old_event, (GstMiniObject *) new_event);
  109. # 389 "gstevent.h"
  110. # 405 "gstevent.h"
  111. extern
  112. const gchar* gst_event_type_get_name (GstEventType type);
  113. extern
  114. GQuark gst_event_type_to_quark (GstEventType type);
  115. extern
  116. GstEventTypeFlags
  117. gst_event_type_get_flags (GstEventType type);
  118. # 435 "gstevent.h"
  119. static inline GstEvent *
  120. gst_event_ref (GstEvent * event)
  121. return (GstEvent *) gst_mini_object_ref (((GstMiniObject*)(event)));
  122. static inline void
  123. gst_event_unref (GstEvent * event)
  124. gst_mini_object_unref (((GstMiniObject*)(event)));
  125. # 466 "gstevent.h"
  126. static inline void
  127. gst_clear_event (GstEvent ** event_ptr)
  128. do _Static_assert (sizeof *(((GstMiniObject **) event_ptr)) == sizeof (gpointer), "Expression evaluates to false"); __typeof__((((GstMiniObject **) event_ptr))) _pp = (((GstMiniObject **) event_ptr)); __typeof__(*(((GstMiniObject **) event_ptr))) _ptr = *_pp; *_pp =
  129. # 469 "gstevent.h" 3 4
  130. ((void *)0)
  131. # 469 "gstevent.h"
  132. ; if (_ptr) (gst_mini_object_unref) (_ptr); while (0) ;
  133. # 481 "gstevent.h"
  134. static inline GstEvent *
  135. gst_event_copy (const GstEvent * event)
  136. return ((GstEvent *)(gst_mini_object_copy (((const GstMiniObject*)(event)))));
  137. }
  138. function gst_event_get_type:TGType;cdecl;external gstreamerlib name 'gst_event_get_type';
  139. function gst_event_new_custom(_type:TGstEventType; structure:PGstStructure):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_custom';
  140. (* Const before type ignored *)
  141. function gst_event_get_structure(event:PGstEvent):PGstStructure;cdecl;external gstreamerlib name 'gst_event_get_structure';
  142. function gst_event_writable_structure(event:PGstEvent):PGstStructure;cdecl;external gstreamerlib name 'gst_event_writable_structure';
  143. (* Const before type ignored *)
  144. function gst_event_has_name(event:PGstEvent; name:Pgchar):Tgboolean;cdecl;external gstreamerlib name 'gst_event_has_name';
  145. function gst_event_get_seqnum(event:PGstEvent):Tguint32;cdecl;external gstreamerlib name 'gst_event_get_seqnum';
  146. procedure gst_event_set_seqnum(event:PGstEvent; seqnum:Tguint32);cdecl;external gstreamerlib name 'gst_event_set_seqnum';
  147. function gst_event_get_running_time_offset(event:PGstEvent):Tgint64;cdecl;external gstreamerlib name 'gst_event_get_running_time_offset';
  148. procedure gst_event_set_running_time_offset(event:PGstEvent; offset:Tgint64);cdecl;external gstreamerlib name 'gst_event_set_running_time_offset';
  149. (* Const before type ignored *)
  150. function gst_event_new_stream_start(stream_id:Pgchar):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_stream_start';
  151. (* Const before type ignored *)
  152. procedure gst_event_parse_stream_start(event:PGstEvent; stream_id:PPgchar);cdecl;external gstreamerlib name 'gst_event_parse_stream_start';
  153. procedure gst_event_set_stream(event:PGstEvent; stream:PGstStream);cdecl;external gstreamerlib name 'gst_event_set_stream';
  154. procedure gst_event_parse_stream(event:PGstEvent; stream:PPGstStream);cdecl;external gstreamerlib name 'gst_event_parse_stream';
  155. procedure gst_event_set_stream_flags(event:PGstEvent; flags:TGstStreamFlags);cdecl;external gstreamerlib name 'gst_event_set_stream_flags';
  156. procedure gst_event_parse_stream_flags(event:PGstEvent; flags:PGstStreamFlags);cdecl;external gstreamerlib name 'gst_event_parse_stream_flags';
  157. procedure gst_event_set_group_id(event:PGstEvent; group_id:Tguint);cdecl;external gstreamerlib name 'gst_event_set_group_id';
  158. function gst_event_parse_group_id(event:PGstEvent; group_id:Pguint):Tgboolean;cdecl;external gstreamerlib name 'gst_event_parse_group_id';
  159. function gst_event_new_flush_start:PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_flush_start';
  160. function gst_event_new_flush_stop(reset_time:Tgboolean):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_flush_stop';
  161. procedure gst_event_parse_flush_stop(event:PGstEvent; reset_time:Pgboolean);cdecl;external gstreamerlib name 'gst_event_parse_flush_stop';
  162. function gst_event_new_stream_collection(collection:PGstStreamCollection):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_stream_collection';
  163. procedure gst_event_parse_stream_collection(event:PGstEvent; collection:PPGstStreamCollection);cdecl;external gstreamerlib name 'gst_event_parse_stream_collection';
  164. function gst_event_new_select_streams(streams:PGList):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_select_streams';
  165. procedure gst_event_parse_select_streams(event:PGstEvent; streams:PPGList);cdecl;external gstreamerlib name 'gst_event_parse_select_streams';
  166. function gst_event_new_stream_group_done(group_id:Tguint):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_stream_group_done';
  167. procedure gst_event_parse_stream_group_done(event:PGstEvent; group_id:Pguint);cdecl;external gstreamerlib name 'gst_event_parse_stream_group_done';
  168. function gst_event_new_eos:PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_eos';
  169. function gst_event_new_gap(timestamp:TGstClockTime; duration:TGstClockTime):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_gap';
  170. procedure gst_event_parse_gap(event:PGstEvent; timestamp:PGstClockTime; duration:PGstClockTime);cdecl;external gstreamerlib name 'gst_event_parse_gap';
  171. function gst_event_new_caps(caps:PGstCaps):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_caps';
  172. procedure gst_event_parse_caps(event:PGstEvent; caps:PPGstCaps);cdecl;external gstreamerlib name 'gst_event_parse_caps';
  173. (* Const before type ignored *)
  174. function gst_event_new_segment(segment:PGstSegment):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_segment';
  175. (* Const before type ignored *)
  176. procedure gst_event_parse_segment(event:PGstEvent; segment:PPGstSegment);cdecl;external gstreamerlib name 'gst_event_parse_segment';
  177. procedure gst_event_copy_segment(event:PGstEvent; segment:PGstSegment);cdecl;external gstreamerlib name 'gst_event_copy_segment';
  178. function gst_event_new_tag(taglist:PGstTagList):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_tag';
  179. procedure gst_event_parse_tag(event:PGstEvent; taglist:PPGstTagList);cdecl;external gstreamerlib name 'gst_event_parse_tag';
  180. function gst_event_new_toc(toc:PGstToc; updated:Tgboolean):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_toc';
  181. procedure gst_event_parse_toc(event:PGstEvent; toc:PPGstToc; updated:Pgboolean);cdecl;external gstreamerlib name 'gst_event_parse_toc';
  182. (* Const before type ignored *)
  183. (* Const before type ignored *)
  184. function gst_event_new_protection(system_id:Pgchar; data:PGstBuffer; origin:Pgchar):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_protection';
  185. (* Const before type ignored *)
  186. (* Const before type ignored *)
  187. procedure gst_event_parse_protection(event:PGstEvent; system_id:PPgchar; data:PPGstBuffer; origin:PPgchar);cdecl;external gstreamerlib name 'gst_event_parse_protection';
  188. function gst_event_new_buffer_size(format:TGstFormat; minsize:Tgint64; maxsize:Tgint64; async:Tgboolean):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_buffer_size';
  189. procedure gst_event_parse_buffer_size(event:PGstEvent; format:PGstFormat; minsize:Pgint64; maxsize:Pgint64; async:Pgboolean);cdecl;external gstreamerlib name 'gst_event_parse_buffer_size';
  190. (* Const before type ignored *)
  191. function gst_event_new_sink_message(name:Pgchar; msg:PGstMessage):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_sink_message';
  192. procedure gst_event_parse_sink_message(event:PGstEvent; msg:PPGstMessage);cdecl;external gstreamerlib name 'gst_event_parse_sink_message';
  193. function gst_event_new_qos(_type:TGstQOSType; proportion:Tgdouble; diff:TGstClockTimeDiff; timestamp:TGstClockTime):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_qos';
  194. procedure gst_event_parse_qos(event:PGstEvent; _type:PGstQOSType; proportion:Pgdouble; diff:PGstClockTimeDiff; timestamp:PGstClockTime);cdecl;external gstreamerlib name 'gst_event_parse_qos';
  195. function gst_event_new_seek(rate:Tgdouble; format:TGstFormat; flags:TGstSeekFlags; start_type:TGstSeekType; start:Tgint64;
  196. stop_type:TGstSeekType; stop:Tgint64):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_seek';
  197. procedure gst_event_parse_seek(event:PGstEvent; rate:Pgdouble; format:PGstFormat; flags:PGstSeekFlags; start_type:PGstSeekType;
  198. start:Pgint64; stop_type:PGstSeekType; stop:Pgint64);cdecl;external gstreamerlib name 'gst_event_parse_seek';
  199. procedure gst_event_set_seek_trickmode_interval(event:PGstEvent; interval:TGstClockTime);cdecl;external gstreamerlib name 'gst_event_set_seek_trickmode_interval';
  200. procedure gst_event_parse_seek_trickmode_interval(event:PGstEvent; interval:PGstClockTime);cdecl;external gstreamerlib name 'gst_event_parse_seek_trickmode_interval';
  201. function gst_event_new_navigation(structure:PGstStructure):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_navigation';
  202. function gst_event_new_latency(latency:TGstClockTime):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_latency';
  203. procedure gst_event_parse_latency(event:PGstEvent; latency:PGstClockTime);cdecl;external gstreamerlib name 'gst_event_parse_latency';
  204. function gst_event_new_step(format:TGstFormat; amount:Tguint64; rate:Tgdouble; flush:Tgboolean; intermediate:Tgboolean):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_step';
  205. procedure gst_event_parse_step(event:PGstEvent; format:PGstFormat; amount:Pguint64; rate:Pgdouble; flush:Pgboolean;
  206. intermediate:Pgboolean);cdecl;external gstreamerlib name 'gst_event_parse_step';
  207. function gst_event_new_reconfigure:PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_reconfigure';
  208. (* Const before type ignored *)
  209. function gst_event_new_toc_select(uid:Pgchar):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_toc_select';
  210. procedure gst_event_parse_toc_select(event:PGstEvent; uid:PPgchar);cdecl;external gstreamerlib name 'gst_event_parse_toc_select';
  211. function gst_event_new_segment_done(format:TGstFormat; position:Tgint64):PGstEvent;cdecl;external gstreamerlib name 'gst_event_new_segment_done';
  212. procedure gst_event_parse_segment_done(event:PGstEvent; format:PGstFormat; position:Pgint64);cdecl;external gstreamerlib name 'gst_event_parse_segment_done';
  213. var
  214. _gst_event_type : TGType;cvar;external;