Move the defines from spec to meson.build
[platform/upstream/gstreamer.git] / gst-libs / gst / app / gstappsink.h
index f757aba..90e678f 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <gst/gst.h>
 #include <gst/base/gstbasesink.h>
+#include <gst/app/app-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -58,6 +59,14 @@ typedef struct _GstAppSinkPrivate GstAppSinkPrivate;
  *       The new sample can be retrieved with
  *       gst_app_sink_pull_sample() either from this callback
  *       or from any other thread.
+ * @new_event: Called when a new event is available.
+ *       This callback is called from the streaming thread.
+ *       The new event can be retrieved with
+ *       gst_app_sink_pull_event() either from this callback
+ *       or from any other thread.
+ *       The callback should return %TRUE if the event has been handled,
+ *       %FALSE otherwise.
+ *       Since: 1.20
  *
  * A set of callbacks that can be installed on the appsink with
  * gst_app_sink_set_callbacks().
@@ -66,9 +75,10 @@ typedef struct {
   void          (*eos)              (GstAppSink *appsink, gpointer user_data);
   GstFlowReturn (*new_preroll)      (GstAppSink *appsink, gpointer user_data);
   GstFlowReturn (*new_sample)       (GstAppSink *appsink, gpointer user_data);
+  gboolean      (*new_event)        (GstAppSink *appsink, gpointer user_data);
 
   /*< private >*/
-  gpointer     _gst_reserved[GST_PADDING];
+  gpointer     _gst_reserved[GST_PADDING - 1];
 } GstAppSinkCallbacks;
 
 struct _GstAppSink
@@ -90,80 +100,93 @@ struct _GstAppSinkClass
   void          (*eos)              (GstAppSink *appsink);
   GstFlowReturn (*new_preroll)      (GstAppSink *appsink);
   GstFlowReturn (*new_sample)       (GstAppSink *appsink);
+  /* new_event is missing as we ran out padding */
 
   /* actions */
   GstSample *   (*pull_preroll)      (GstAppSink *appsink);
   GstSample *   (*pull_sample)       (GstAppSink *appsink);
   GstSample *   (*try_pull_preroll)  (GstAppSink *appsink, GstClockTime timeout);
   GstSample *   (*try_pull_sample)   (GstAppSink *appsink, GstClockTime timeout);
+ /**
+   * GstAppSinkClass::try_pull_object:
+   *
+   * See #GstAppSink::try-pull-object: signal.
+   *
+   * Since: 1.20
+   */
+  GstMiniObject * (*try_pull_object) (GstAppSink *appsink, GstClockTime timeout);
 
   /*< private >*/
-  gpointer     _gst_reserved[GST_PADDING - 2];
+  gpointer     _gst_reserved[GST_PADDING - 3];
 };
 
-GST_EXPORT
+GST_APP_API
 GType           gst_app_sink_get_type         (void);
 
-GST_EXPORT
+GST_APP_API
 void            gst_app_sink_set_caps         (GstAppSink *appsink, const GstCaps *caps);
 
-GST_EXPORT
+GST_APP_API
 GstCaps *       gst_app_sink_get_caps         (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 gboolean        gst_app_sink_is_eos           (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 void            gst_app_sink_set_emit_signals (GstAppSink *appsink, gboolean emit);
 
-GST_EXPORT
+GST_APP_API
 gboolean        gst_app_sink_get_emit_signals (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 void            gst_app_sink_set_max_buffers  (GstAppSink *appsink, guint max);
 
-GST_EXPORT
+GST_APP_API
 guint           gst_app_sink_get_max_buffers  (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 void            gst_app_sink_set_drop         (GstAppSink *appsink, gboolean drop);
 
-GST_EXPORT
+GST_APP_API
 gboolean        gst_app_sink_get_drop         (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 void            gst_app_sink_set_buffer_list_support  (GstAppSink *appsink, gboolean enable_lists);
 
-GST_EXPORT
+GST_APP_API
 gboolean        gst_app_sink_get_buffer_list_support  (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 void            gst_app_sink_set_wait_on_eos  (GstAppSink *appsink, gboolean wait);
 
-GST_EXPORT
+GST_APP_API
 gboolean        gst_app_sink_get_wait_on_eos  (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 GstSample *     gst_app_sink_pull_preroll     (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
 GstSample *     gst_app_sink_pull_sample      (GstAppSink *appsink);
 
-GST_EXPORT
+GST_APP_API
+GstMiniObject * gst_app_sink_pull_object      (GstAppSink *appsink);
+
+GST_APP_API
 GstSample *     gst_app_sink_try_pull_preroll (GstAppSink *appsink, GstClockTime timeout);
 
-GST_EXPORT
+GST_APP_API
 GstSample *     gst_app_sink_try_pull_sample  (GstAppSink *appsink, GstClockTime timeout);
 
-GST_EXPORT
+GST_APP_API
+GstMiniObject * gst_app_sink_try_pull_object    (GstAppSink *appsink, GstClockTime timeout);
+
+GST_APP_API
 void            gst_app_sink_set_callbacks    (GstAppSink * appsink,
                                                GstAppSinkCallbacks *callbacks,
                                                gpointer user_data,
                                                GDestroyNotify notify);
 
-#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAppSink, gst_object_unref)
-#endif
 
 G_END_DECLS