X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst-libs%2Fgst%2Fapp%2Fgstappsink.h;h=90e678f53f3471addb3bb4919296a9d65ee480ea;hb=f59f837a7b093d8161d9ce926c47ed149204b7f3;hp=f757aba81649252b94be5158b9f666689e644cad;hpb=ab758a9a39f4bc6dc9f32d03541c122b9618afec;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst-libs/gst/app/gstappsink.h b/gst-libs/gst/app/gstappsink.h index f757aba..90e678f 100644 --- a/gst-libs/gst/app/gstappsink.h +++ b/gst-libs/gst/app/gstappsink.h @@ -22,6 +22,7 @@ #include #include +#include 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