gstreamer_core/gst/gstmessage.h
branchRCL_3
changeset 30 7e817e7e631c
parent 29 567bb019e3e3
equal deleted inserted replaced
29:567bb019e3e3 30:7e817e7e631c
    56  *                             never forwarded to the application.
    56  *                             never forwarded to the application.
    57  * @GST_MESSAGE_CLOCK_LOST: The current clock as selected by the pipeline became
    57  * @GST_MESSAGE_CLOCK_LOST: The current clock as selected by the pipeline became
    58  *                          unusable. The pipeline will select a new clock on
    58  *                          unusable. The pipeline will select a new clock on
    59  *                          the next PLAYING state change.
    59  *                          the next PLAYING state change.
    60  * @GST_MESSAGE_NEW_CLOCK: a new clock was selected in the pipeline.
    60  * @GST_MESSAGE_NEW_CLOCK: a new clock was selected in the pipeline.
    61  * @GST_MESSAGE_STRUCTURE_CHANGE: the structure of the pipeline changed. This
    61  * @GST_MESSAGE_STRUCTURE_CHANGE: the structure of the pipeline changed. Not
    62  * message is used internally and never forwarded to the application.
    62  * implemented yet.
    63  * @GST_MESSAGE_STREAM_STATUS: status about a stream, emitted when it starts,
    63  * @GST_MESSAGE_STREAM_STATUS: status about a stream, emitted when it starts,
    64  *                             stops, errors, etc.. Not implemented yet.
    64  *                             stops, errors, etc.. Not implemented yet.
    65  * @GST_MESSAGE_APPLICATION: message posted by the application, possibly
    65  * @GST_MESSAGE_APPLICATION: message posted by the application, possibly
    66  *                           via an application-specific element.
    66  *                           via an application-specific element.
    67  * @GST_MESSAGE_ELEMENT: element-specific message, see the specific element's
    67  * @GST_MESSAGE_ELEMENT: element-specific message, see the specific element's
    79  * @GST_MESSAGE_ASYNC_DONE: Posted by elements when they complete an ASYNC state
    79  * @GST_MESSAGE_ASYNC_DONE: Posted by elements when they complete an ASYNC state
    80  * change. The application will only receive this message from the toplevel
    80  * change. The application will only receive this message from the toplevel
    81  * pipeline. Since: 0.10.13
    81  * pipeline. Since: 0.10.13
    82  * @GST_MESSAGE_LATENCY: Posted by elements when their latency changes. The
    82  * @GST_MESSAGE_LATENCY: Posted by elements when their latency changes. The
    83  * pipeline will calculate and distribute a new latency. Since: 0.10.12
    83  * pipeline will calculate and distribute a new latency. Since: 0.10.12
    84  * @GST_MESSAGE_REQUEST_STATE: Posted by elements when they want the pipeline to
       
    85  * change state. This message is a suggestion to the application which can
       
    86  * decide to perform the state change on (part of) the pipeline. Since: 0.10.23.
       
    87  * @GST_MESSAGE_STEP_START: A stepping operation was started.
       
    88  * @GST_MESSAGE_ANY: mask for all of the above messages.
    84  * @GST_MESSAGE_ANY: mask for all of the above messages.
    89  *
    85  *
    90  * The different message types that are available.
    86  * The different message types that are available.
    91  */
    87  */
    92 /* NOTE: keep in sync with quark registration in gstmessage.c 
    88 /* NOTE: keep in sync with quark registration in gstmessage.c 
   115   GST_MESSAGE_SEGMENT_DONE      = (1 << 17),
   111   GST_MESSAGE_SEGMENT_DONE      = (1 << 17),
   116   GST_MESSAGE_DURATION          = (1 << 18),
   112   GST_MESSAGE_DURATION          = (1 << 18),
   117   GST_MESSAGE_LATENCY           = (1 << 19),
   113   GST_MESSAGE_LATENCY           = (1 << 19),
   118   GST_MESSAGE_ASYNC_START       = (1 << 20),
   114   GST_MESSAGE_ASYNC_START       = (1 << 20),
   119   GST_MESSAGE_ASYNC_DONE        = (1 << 21),
   115   GST_MESSAGE_ASYNC_DONE        = (1 << 21),
   120   GST_MESSAGE_REQUEST_STATE     = (1 << 22),
       
   121   GST_MESSAGE_STEP_START        = (1 << 23),
       
   122   GST_MESSAGE_ANY               = ~0
   116   GST_MESSAGE_ANY               = ~0
   123 } GstMessageType;
   117 } GstMessageType;
   124 
   118 
   125 #include <gst/gstminiobject.h>
   119 #include <gst/gstminiobject.h>
   126 #include <gst/gstobject.h>
   120 #include <gst/gstobject.h>
   182  * @message: a #GstMessage
   176  * @message: a #GstMessage
   183  *
   177  *
   184  * Get the object that posted @message.
   178  * Get the object that posted @message.
   185  */
   179  */
   186 #define GST_MESSAGE_SRC(message)	(GST_MESSAGE(message)->src)
   180 #define GST_MESSAGE_SRC(message)	(GST_MESSAGE(message)->src)
   187 /**
       
   188  * GST_MESSAGE_SRC_NAME:
       
   189  * @message: a #GstMessage
       
   190  *
       
   191  * Get the name of the object that posted @message. Returns "(NULL)" if
       
   192  * the message has no source object set.
       
   193  *
       
   194  * Since: 0.10.24
       
   195  */
       
   196 #define GST_MESSAGE_SRC_NAME(message)	(GST_MESSAGE_SRC(message) ? \
       
   197     GST_OBJECT_NAME (GST_MESSAGE_SRC(message)) : "(NULL)")
       
   198 
       
   199 /**
       
   200  * GstStructureChangeType:
       
   201  * @GST_STRUCTURE_CHANGE_TYPE_PAD_LINK: Pad linking is starting or done.
       
   202  * @GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK: Pad unlinking is starting or done.
       
   203  *
       
   204  * The type of a #GstMessageStructureChange.
       
   205  *
       
   206  * Since: 0.10.22
       
   207  */
       
   208 typedef enum {
       
   209   GST_STRUCTURE_CHANGE_TYPE_PAD_LINK   = 0,
       
   210   GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK = 1
       
   211 } GstStructureChangeType;
       
   212 
       
   213 /**
       
   214  * GstStreamStatusType:
       
   215  * @GST_STREAM_STATUS_TYPE_CREATE: A new thread need to be created.
       
   216  * @GST_STREAM_STATUS_TYPE_ENTER: a thread entered its loop function
       
   217  * @GST_STREAM_STATUS_TYPE_LEAVE: a thread left its loop function
       
   218  * @GST_STREAM_STATUS_TYPE_DESTROY: a thread is destroyed
       
   219  * @GST_STREAM_STATUS_TYPE_START: a thread is started
       
   220  * @GST_STREAM_STATUS_TYPE_PAUSE: a thread is paused
       
   221  * @GST_STREAM_STATUS_TYPE_STOP: a thread is stopped
       
   222  *
       
   223  * The type of a #GstMessageStreamStatus. The stream status messages inform the
       
   224  * application of new streaming threads and their status.
       
   225  *
       
   226  * Since: 0.10.24
       
   227  */
       
   228 typedef enum {
       
   229   GST_STREAM_STATUS_TYPE_CREATE   = 0,
       
   230   GST_STREAM_STATUS_TYPE_ENTER    = 1,
       
   231   GST_STREAM_STATUS_TYPE_LEAVE    = 2,
       
   232   GST_STREAM_STATUS_TYPE_DESTROY  = 3,
       
   233 
       
   234   GST_STREAM_STATUS_TYPE_START    = 8,
       
   235   GST_STREAM_STATUS_TYPE_PAUSE    = 9,
       
   236   GST_STREAM_STATUS_TYPE_STOP     = 10
       
   237 } GstStreamStatusType;
       
   238 
   181 
   239 /**
   182 /**
   240  * GstMessage:
   183  * GstMessage:
   241  * @mini_object: the parent structure
   184  * @mini_object: the parent structure
   242  * @type: the #GstMessageType of the message
   185  * @type: the #GstMessageType of the message
   248  */
   191  */
   249 struct _GstMessage
   192 struct _GstMessage
   250 {
   193 {
   251   GstMiniObject mini_object;
   194   GstMiniObject mini_object;
   252 
   195 
   253   /*< private >*//* with MESSAGE_LOCK */
   196   /*< private > *//* with MESSAGE_LOCK */
   254   GMutex *lock;                 /* lock and cond for async delivery */
   197   GMutex *lock;                 /* lock and cond for async delivery */
   255   GCond *cond;
   198   GCond *cond;
   256 
   199 
   257   /*< public > *//* with COW */
   200   /*< public > *//* with COW */
   258   GstMessageType type;
   201   GstMessageType type;
   259   guint64 timestamp;
   202   guint64 timestamp;
   260   GstObject *src;
   203   GstObject *src;
   261 
   204 
   262   GstStructure *structure;
   205   GstStructure *structure;
   263 
   206 
   264   /*< private >*/
   207   /*< private > */
   265   union {
   208   gpointer _gst_reserved[GST_PADDING];
   266     struct {
       
   267       guint32 seqnum;
       
   268     } ABI;
       
   269     /* + 0 to mark ABI change for future greppage */
       
   270     gpointer _gst_reserved[GST_PADDING + 0];
       
   271   } abidata;
       
   272 };
   209 };
   273 
   210 
   274 struct _GstMessageClass {
   211 struct _GstMessageClass {
   275   GstMiniObjectClass mini_object_class;
   212   GstMiniObjectClass mini_object_class;
   276 
   213 
   277   /*< private >*/
   214   /*< private > */
   278   gpointer _gst_reserved[GST_PADDING];
   215   gpointer _gst_reserved[GST_PADDING];
   279 };
   216 };
   280 #ifdef __SYMBIAN32__
   217 #ifdef __SYMBIAN32__
   281 IMPORT_C
   218 IMPORT_C
   282 #endif
   219 #endif
   309 #endif
   246 #endif
   310 
   247 
   311 static inline GstMessage *
   248 static inline GstMessage *
   312 gst_message_ref (GstMessage * msg)
   249 gst_message_ref (GstMessage * msg)
   313 {
   250 {
       
   251   /* not using a macro here because gcc-4.1 will complain
       
   252    * if the return value isn't used (because of the cast) */
   314   return (GstMessage *) gst_mini_object_ref (GST_MINI_OBJECT (msg));
   253   return (GstMessage *) gst_mini_object_ref (GST_MINI_OBJECT (msg));
   315 }
   254 }
   316 
   255 
   317 /**
   256 /**
   318  * gst_message_unref:
   257  * gst_message_unref:
   319  * @msg: the message to unref
   258  * @msg: the message to unref
   320  *
   259  *
   321  * Convenience macro to decrease the reference count of the message, possibly
   260  * Convenience macro to decrease the reference count of the message, possibly
   322  * freeing it.
   261  * freeing it.
   323  */
   262  */
   324 #ifdef _FOOL_GTK_DOC_
   263 #define         gst_message_unref(msg)		gst_mini_object_unref (GST_MINI_OBJECT (msg))
   325 G_INLINE_FUNC void gst_message_unref (GstMessage * msg);
       
   326 #endif
       
   327 
       
   328 static inline void
       
   329 gst_message_unref (GstMessage * msg)
       
   330 {
       
   331   gst_mini_object_unref (GST_MINI_OBJECT_CAST (msg));
       
   332 }
       
   333 
       
   334 /* copy message */
   264 /* copy message */
   335 /**
   265 /**
   336  * gst_message_copy:
   266  * gst_message_copy:
   337  * @msg: the message to copy
   267  * @msg: the message to copy
   338  *
   268  *
   339  * Creates a copy of the message. Returns a copy of the message.
   269  * Creates a copy of the message. Returns a copy of the message.
   340  *
   270  *
   341  * Returns: a new copy of @msg.
       
   342  *
       
   343  * MT safe
   271  * MT safe
   344  */
   272  */
   345 #ifdef _FOOL_GTK_DOC_
   273 #define         gst_message_copy(msg)		GST_MESSAGE (gst_mini_object_copy (GST_MINI_OBJECT (msg)))
   346 G_INLINE_FUNC GstMessage * gst_message_copy (const GstMessage * msg);
       
   347 #endif
       
   348 
       
   349 static inline GstMessage *
       
   350 gst_message_copy (const GstMessage * msg)
       
   351 {
       
   352   return GST_MESSAGE (gst_mini_object_copy (GST_MINI_OBJECT_CAST (msg)));
       
   353 }
       
   354 
       
   355 /**
   274 /**
   356  * gst_message_make_writable:
   275  * gst_message_make_writable:
   357  * @msg: the message to make writable
   276  * @msg: the message to make writable
   358  *
   277  *
   359  * Checks if a message is writable. If not, a writable copy is made and
   278  * Checks if a message is writable. If not, a writable copy is made and
   361  *
   280  *
   362  * MT safe
   281  * MT safe
   363  */
   282  */
   364 #define         gst_message_make_writable(msg)	GST_MESSAGE (gst_mini_object_make_writable (GST_MINI_OBJECT (msg)))
   283 #define         gst_message_make_writable(msg)	GST_MESSAGE (gst_mini_object_make_writable (GST_MINI_OBJECT (msg)))
   365 
   284 
   366 /* identifiers for events and messages */
       
   367 #ifdef __SYMBIAN32__
       
   368 IMPORT_C
       
   369 #endif
       
   370 
       
   371 guint32         gst_message_get_seqnum          (GstMessage *message);
       
   372 #ifdef __SYMBIAN32__
       
   373 IMPORT_C
       
   374 #endif
       
   375 
       
   376 void            gst_message_set_seqnum          (GstMessage *message, guint32 seqnum);
       
   377 
       
   378 /* EOS */
       
   379 #ifdef __SYMBIAN32__
       
   380 IMPORT_C
       
   381 #endif
       
   382 
       
   383 GstMessage *	gst_message_new_eos		(GstObject * src);
   285 GstMessage *	gst_message_new_eos		(GstObject * src);
   384 
   286 #ifdef __SYMBIAN32__
   385 /* ERROR */
   287 IMPORT_C
   386 #ifdef __SYMBIAN32__
   288 #endif
   387 IMPORT_C
   289 
   388 #endif
   290 GstMessage *	gst_message_new_error		(GstObject * src, GError * error, gchar * debug);
   389 
   291 #ifdef __SYMBIAN32__
   390 
   292 IMPORT_C
   391 GstMessage *	gst_message_new_error		(GstObject * src, GError * error, const gchar * debug);
   293 #endif
   392 #ifdef __SYMBIAN32__
   294 
   393 IMPORT_C
   295 GstMessage *	gst_message_new_warning		(GstObject * src, GError * error, gchar * debug);
   394 #endif
   296 #ifdef __SYMBIAN32__
   395 
   297 IMPORT_C
   396 void		gst_message_parse_error		(GstMessage *message, GError **gerror, gchar **debug);
   298 #endif
   397 
   299 
   398 /* WARNING */
   300 GstMessage *	gst_message_new_info		(GstObject * src, GError * error, gchar * debug);
   399 #ifdef __SYMBIAN32__
       
   400 IMPORT_C
       
   401 #endif
       
   402 
       
   403 GstMessage *	gst_message_new_warning		(GstObject * src, GError * error, const gchar * debug);
       
   404 #ifdef __SYMBIAN32__
       
   405 IMPORT_C
       
   406 #endif
       
   407 
       
   408 void		gst_message_parse_warning	(GstMessage *message, GError **gerror, gchar **debug);
       
   409 
       
   410 /* INFO */
       
   411 #ifdef __SYMBIAN32__
       
   412 IMPORT_C
       
   413 #endif
       
   414 
       
   415 GstMessage *	gst_message_new_info		(GstObject * src, GError * error, const gchar * debug);
       
   416 #ifdef __SYMBIAN32__
       
   417 IMPORT_C
       
   418 #endif
       
   419 
       
   420 void		gst_message_parse_info 		(GstMessage *message, GError **gerror, gchar **debug);
       
   421 
       
   422 /* TAG */
       
   423 #ifdef __SYMBIAN32__
   301 #ifdef __SYMBIAN32__
   424 IMPORT_C
   302 IMPORT_C
   425 #endif
   303 #endif
   426 
   304 
   427 GstMessage *	gst_message_new_tag		(GstObject * src, GstTagList * tag_list);
   305 GstMessage *	gst_message_new_tag		(GstObject * src, GstTagList * tag_list);
   428 #ifdef __SYMBIAN32__
   306 #ifdef __SYMBIAN32__
   429 IMPORT_C
   307 IMPORT_C
   430 #endif
   308 #endif
   431 
   309 
   432 GstMessage *	gst_message_new_tag_full	(GstObject * src, GstPad *pad, GstTagList * tag_list);
   310 GstMessage *	gst_message_new_buffering	(GstObject * src, gint percent);
   433 #ifdef __SYMBIAN32__
       
   434 IMPORT_C
       
   435 #endif
       
   436 
       
   437 void		gst_message_parse_tag		(GstMessage *message, GstTagList **tag_list);
       
   438 #ifdef __SYMBIAN32__
       
   439 IMPORT_C
       
   440 #endif
       
   441 
       
   442 void		gst_message_parse_tag_full	(GstMessage *message, GstPad **pad, GstTagList **tag_list);
       
   443 
       
   444 /* BUFFERING */
       
   445 #ifdef __SYMBIAN32__
       
   446 IMPORT_C
       
   447 #endif
       
   448 
       
   449 GstMessage *	gst_message_new_buffering	  (GstObject * src, gint percent);
       
   450 #ifdef __SYMBIAN32__
       
   451 IMPORT_C
       
   452 #endif
       
   453 
       
   454 void 		gst_message_parse_buffering	  (GstMessage *message, gint *percent);
       
   455 #ifdef __SYMBIAN32__
       
   456 IMPORT_C
       
   457 #endif
       
   458 
       
   459 void            gst_message_set_buffering_stats   (GstMessage *message, GstBufferingMode mode,
       
   460                                                    gint avg_in, gint avg_out,
       
   461                                                    gint64 buffering_left);
       
   462 #ifdef __SYMBIAN32__
       
   463 IMPORT_C
       
   464 #endif
       
   465 
       
   466 void            gst_message_parse_buffering_stats (GstMessage *message, GstBufferingMode *mode,
       
   467                                                    gint *avg_in, gint *avg_out,
       
   468                                                    gint64 *buffering_left);
       
   469 
       
   470 /* STATE_CHANGED */
       
   471 #ifdef __SYMBIAN32__
   311 #ifdef __SYMBIAN32__
   472 IMPORT_C
   312 IMPORT_C
   473 #endif
   313 #endif
   474 
   314 
   475 GstMessage *	gst_message_new_state_changed	(GstObject * src, GstState oldstate,
   315 GstMessage *	gst_message_new_state_changed	(GstObject * src, GstState oldstate,
   476                                                  GstState newstate, GstState pending);
   316                                                  GstState newstate, GstState pending);
   477 #ifdef __SYMBIAN32__
   317 #ifdef __SYMBIAN32__
   478 IMPORT_C
   318 IMPORT_C
   479 #endif
   319 #endif
   480 
   320 
   481 void		gst_message_parse_state_changed	(GstMessage *message, GstState *oldstate,
       
   482                                                  GstState *newstate, GstState *pending);
       
   483 
       
   484 /* STATE_DIRTY */
       
   485 #ifdef __SYMBIAN32__
       
   486 IMPORT_C
       
   487 #endif
       
   488 
       
   489 GstMessage *	gst_message_new_state_dirty	(GstObject * src);
   321 GstMessage *	gst_message_new_state_dirty	(GstObject * src);
   490 
       
   491 /* STEP_DONE */
       
   492 #ifdef __SYMBIAN32__
       
   493 IMPORT_C
       
   494 #endif
       
   495 
       
   496 GstMessage *    gst_message_new_step_done       (GstObject * src, GstFormat format, guint64 amount,
       
   497                                                  gdouble rate, gboolean flush, gboolean intermediate, 
       
   498 						 guint64 duration, gboolean eos);
       
   499 #ifdef __SYMBIAN32__
       
   500 IMPORT_C
       
   501 #endif
       
   502 
       
   503 void            gst_message_parse_step_done     (GstMessage * message, GstFormat *format, guint64 *amount,
       
   504                                                  gdouble *rate, gboolean *flush, gboolean *intermediate,
       
   505 						 guint64 *duration, gboolean *eos);
       
   506 /* CLOCK_PROVIDE */
       
   507 #ifdef __SYMBIAN32__
   322 #ifdef __SYMBIAN32__
   508 IMPORT_C
   323 IMPORT_C
   509 #endif
   324 #endif
   510 
   325 
   511 GstMessage *	gst_message_new_clock_provide	(GstObject * src, GstClock *clock, gboolean ready);
   326 GstMessage *	gst_message_new_clock_provide	(GstObject * src, GstClock *clock, gboolean ready);
   512 #ifdef __SYMBIAN32__
   327 #ifdef __SYMBIAN32__
   513 IMPORT_C
   328 IMPORT_C
   514 #endif
   329 #endif
   515 
   330 
   516 void		gst_message_parse_clock_provide (GstMessage *message, GstClock **clock,
       
   517                                                  gboolean *ready);
       
   518 
       
   519 /* CLOCK_LOST */
       
   520 #ifdef __SYMBIAN32__
       
   521 IMPORT_C
       
   522 #endif
       
   523 
       
   524 GstMessage *	gst_message_new_clock_lost	(GstObject * src, GstClock *clock);
   331 GstMessage *	gst_message_new_clock_lost	(GstObject * src, GstClock *clock);
   525 #ifdef __SYMBIAN32__
   332 #ifdef __SYMBIAN32__
   526 IMPORT_C
   333 IMPORT_C
   527 #endif
   334 #endif
   528 
   335 
   529 void		gst_message_parse_clock_lost	(GstMessage *message, GstClock **clock);
       
   530 
       
   531 /* NEW_CLOCK */
       
   532 #ifdef __SYMBIAN32__
       
   533 IMPORT_C
       
   534 #endif
       
   535 
       
   536 GstMessage *	gst_message_new_new_clock	(GstObject * src, GstClock *clock);
   336 GstMessage *	gst_message_new_new_clock	(GstObject * src, GstClock *clock);
   537 #ifdef __SYMBIAN32__
   337 #ifdef __SYMBIAN32__
   538 IMPORT_C
   338 IMPORT_C
   539 #endif
   339 #endif
   540 
   340 
   541 void		gst_message_parse_new_clock	(GstMessage *message, GstClock **clock);
       
   542 
       
   543 /* APPLICATION */
       
   544 #ifdef __SYMBIAN32__
       
   545 IMPORT_C
       
   546 #endif
       
   547 
       
   548 GstMessage *	gst_message_new_application	(GstObject * src, GstStructure * structure);
   341 GstMessage *	gst_message_new_application	(GstObject * src, GstStructure * structure);
   549 
       
   550 /* ELEMENT */
       
   551 #ifdef __SYMBIAN32__
   342 #ifdef __SYMBIAN32__
   552 IMPORT_C
   343 IMPORT_C
   553 #endif
   344 #endif
   554 
   345 
   555 GstMessage *	gst_message_new_element		(GstObject * src, GstStructure * structure);
   346 GstMessage *	gst_message_new_element		(GstObject * src, GstStructure * structure);
   556 
       
   557 /* SEGMENT_START */
       
   558 #ifdef __SYMBIAN32__
   347 #ifdef __SYMBIAN32__
   559 IMPORT_C
   348 IMPORT_C
   560 #endif
   349 #endif
   561 
   350 
   562 GstMessage *	gst_message_new_segment_start	(GstObject * src, GstFormat format, gint64 position);
   351 GstMessage *	gst_message_new_segment_start	(GstObject * src, GstFormat format, gint64 position);
   563 #ifdef __SYMBIAN32__
   352 #ifdef __SYMBIAN32__
   564 IMPORT_C
   353 IMPORT_C
   565 #endif
   354 #endif
   566 
   355 
   567 void		gst_message_parse_segment_start (GstMessage *message, GstFormat *format,
       
   568                                                  gint64 *position);
       
   569 
       
   570 /* SEGMENT_DONE */
       
   571 #ifdef __SYMBIAN32__
       
   572 IMPORT_C
       
   573 #endif
       
   574 
       
   575 GstMessage *	gst_message_new_segment_done	(GstObject * src, GstFormat format, gint64 position);
   356 GstMessage *	gst_message_new_segment_done	(GstObject * src, GstFormat format, gint64 position);
   576 #ifdef __SYMBIAN32__
   357 #ifdef __SYMBIAN32__
   577 IMPORT_C
   358 IMPORT_C
   578 #endif
   359 #endif
   579 
   360 
   580 void		gst_message_parse_segment_done	(GstMessage *message, GstFormat *format,
       
   581                                                  gint64 *position);
       
   582 
       
   583 /* DURATION */
       
   584 #ifdef __SYMBIAN32__
       
   585 IMPORT_C
       
   586 #endif
       
   587 
       
   588 GstMessage *	gst_message_new_duration	(GstObject * src, GstFormat format, gint64 duration);
   361 GstMessage *	gst_message_new_duration	(GstObject * src, GstFormat format, gint64 duration);
   589 #ifdef __SYMBIAN32__
   362 #ifdef __SYMBIAN32__
   590 IMPORT_C
   363 IMPORT_C
   591 #endif
   364 #endif
   592 
   365 
   593 void		gst_message_parse_duration	(GstMessage *message, GstFormat *format,
   366 GstMessage *	gst_message_new_async_start	(GstObject * src, gboolean new_base_time);
   594                                                  gint64 *duration);
   367 #ifdef __SYMBIAN32__
   595 
   368 IMPORT_C
   596 /* LATENCY */
   369 #endif
       
   370 
       
   371 GstMessage *	gst_message_new_async_done	(GstObject * src);
   597 #ifdef __SYMBIAN32__
   372 #ifdef __SYMBIAN32__
   598 IMPORT_C
   373 IMPORT_C
   599 #endif
   374 #endif
   600 
   375 
   601 GstMessage *	gst_message_new_latency         (GstObject * src);
   376 GstMessage *	gst_message_new_latency         (GstObject * src);
   602 
       
   603 /* ASYNC_START */
       
   604 #ifdef __SYMBIAN32__
       
   605 IMPORT_C
       
   606 #endif
       
   607 
       
   608 GstMessage *	gst_message_new_async_start	(GstObject * src, gboolean new_base_time);
       
   609 #ifdef __SYMBIAN32__
       
   610 IMPORT_C
       
   611 #endif
       
   612 
       
   613 void		gst_message_parse_async_start	(GstMessage *message, gboolean *new_base_time);
       
   614 
       
   615 /* ASYNC_DONE */
       
   616 #ifdef __SYMBIAN32__
       
   617 IMPORT_C
       
   618 #endif
       
   619 
       
   620 GstMessage *	gst_message_new_async_done	(GstObject * src);
       
   621 
       
   622 /* STRUCTURE CHANGE */
       
   623 #ifdef __SYMBIAN32__
       
   624 IMPORT_C
       
   625 #endif
       
   626 
       
   627 GstMessage *	gst_message_new_structure_change   (GstObject * src, GstStructureChangeType type,
       
   628                                                     GstElement *owner, gboolean busy);
       
   629 #ifdef __SYMBIAN32__
       
   630 IMPORT_C
       
   631 #endif
       
   632 
       
   633 void		gst_message_parse_structure_change (GstMessage *message, GstStructureChangeType *type,
       
   634                                                     GstElement **owner, gboolean *busy);
       
   635 
       
   636 /* STREAM STATUS */
       
   637 #ifdef __SYMBIAN32__
       
   638 IMPORT_C
       
   639 #endif
       
   640 
       
   641 GstMessage *	gst_message_new_stream_status        (GstObject * src, GstStreamStatusType type,
       
   642                                                       GstElement *owner);
       
   643 #ifdef __SYMBIAN32__
       
   644 IMPORT_C
       
   645 #endif
       
   646 
       
   647 void		gst_message_parse_stream_status      (GstMessage *message, GstStreamStatusType *type,
       
   648                                                       GstElement **owner);
       
   649 #ifdef __SYMBIAN32__
       
   650 IMPORT_C
       
   651 #endif
       
   652 
       
   653 void            gst_message_set_stream_status_object (GstMessage *message, const GValue *object);
       
   654 #ifdef __SYMBIAN32__
       
   655 IMPORT_C
       
   656 #endif
       
   657 
       
   658 const GValue *  gst_message_get_stream_status_object (GstMessage *message);
       
   659 
       
   660 /* REQUEST_STATE */
       
   661 #ifdef __SYMBIAN32__
       
   662 IMPORT_C
       
   663 #endif
       
   664 
       
   665 GstMessage *    gst_message_new_request_state   (GstObject * src, GstState state);
       
   666 #ifdef __SYMBIAN32__
       
   667 IMPORT_C
       
   668 #endif
       
   669 
       
   670 void            gst_message_parse_request_state (GstMessage * message, GstState *state);
       
   671 
       
   672 /* STEP_START */
       
   673 #ifdef __SYMBIAN32__
       
   674 IMPORT_C
       
   675 #endif
       
   676 
       
   677 GstMessage *    gst_message_new_step_start      (GstObject * src, gboolean active, GstFormat format,
       
   678                                                  guint64 amount, gdouble rate, gboolean flush,
       
   679 						 gboolean intermediate);
       
   680 #ifdef __SYMBIAN32__
       
   681 IMPORT_C
       
   682 #endif
       
   683 
       
   684 void            gst_message_parse_step_start    (GstMessage * message, gboolean *active, GstFormat *format,
       
   685                                                  guint64 *amount, gdouble *rate, gboolean *flush,
       
   686 						 gboolean *intermediate);
       
   687 
       
   688 /* custom messages */
       
   689 #ifdef __SYMBIAN32__
   377 #ifdef __SYMBIAN32__
   690 IMPORT_C
   378 IMPORT_C
   691 #endif
   379 #endif
   692 
   380 
   693 GstMessage *	gst_message_new_custom		(GstMessageType type,
   381 GstMessage *	gst_message_new_custom		(GstMessageType type,
   695 						 GstStructure * structure);
   383 						 GstStructure * structure);
   696 #ifdef __SYMBIAN32__
   384 #ifdef __SYMBIAN32__
   697 IMPORT_C
   385 IMPORT_C
   698 #endif
   386 #endif
   699 
   387 
       
   388 
       
   389 void		gst_message_parse_error		(GstMessage *message, GError **gerror, gchar **debug);
       
   390 #ifdef __SYMBIAN32__
       
   391 IMPORT_C
       
   392 #endif
       
   393 
       
   394 void		gst_message_parse_warning	(GstMessage *message, GError **gerror, gchar **debug);
       
   395 #ifdef __SYMBIAN32__
       
   396 IMPORT_C
       
   397 #endif
       
   398 
       
   399 void		gst_message_parse_info 		(GstMessage *message, GError **gerror, gchar **debug);
       
   400 #ifdef __SYMBIAN32__
       
   401 IMPORT_C
       
   402 #endif
       
   403 
       
   404 void		gst_message_parse_tag		(GstMessage *message, GstTagList **tag_list);
       
   405 #ifdef __SYMBIAN32__
       
   406 IMPORT_C
       
   407 #endif
       
   408 
       
   409 void 		gst_message_parse_buffering	(GstMessage *message, gint *percent);
       
   410 #ifdef __SYMBIAN32__
       
   411 IMPORT_C
       
   412 #endif
       
   413 
       
   414 void		gst_message_parse_state_changed	(GstMessage *message, GstState *oldstate,
       
   415                                                  GstState *newstate, GstState *pending);
       
   416 #ifdef __SYMBIAN32__
       
   417 IMPORT_C
       
   418 #endif
       
   419 
       
   420 void		gst_message_parse_clock_provide (GstMessage *message, GstClock **clock, gboolean *ready);
       
   421 #ifdef __SYMBIAN32__
       
   422 IMPORT_C
       
   423 #endif
       
   424 
       
   425 void		gst_message_parse_clock_lost	(GstMessage *message, GstClock **clock);
       
   426 #ifdef __SYMBIAN32__
       
   427 IMPORT_C
       
   428 #endif
       
   429 
       
   430 void		gst_message_parse_new_clock	(GstMessage *message, GstClock **clock);
       
   431 #ifdef __SYMBIAN32__
       
   432 IMPORT_C
       
   433 #endif
       
   434 
       
   435 void		gst_message_parse_segment_start (GstMessage *message, GstFormat *format, gint64 *position);
       
   436 #ifdef __SYMBIAN32__
       
   437 IMPORT_C
       
   438 #endif
       
   439 
       
   440 void		gst_message_parse_segment_done	(GstMessage *message, GstFormat *format, gint64 *position);
       
   441 #ifdef __SYMBIAN32__
       
   442 IMPORT_C
       
   443 #endif
       
   444 
       
   445 void		gst_message_parse_duration	(GstMessage *message, GstFormat *format, gint64 *duration);
       
   446 #ifdef __SYMBIAN32__
       
   447 IMPORT_C
       
   448 #endif
       
   449 
       
   450 void		gst_message_parse_async_start	(GstMessage *message, gboolean *new_base_time);
       
   451 #ifdef __SYMBIAN32__
       
   452 IMPORT_C
       
   453 #endif
       
   454 
       
   455 
   700 const GstStructure *  gst_message_get_structure	(GstMessage *message);
   456 const GstStructure *  gst_message_get_structure	(GstMessage *message);
   701 
   457 
   702 G_END_DECLS
   458 G_END_DECLS
   703 
   459 
   704 #endif /* __GST_MESSAGE_H__ */
   460 #endif /* __GST_MESSAGE_H__ */