gstreamer_core/libs/gst/base/gstbasesink.h
branchRCL_3
changeset 30 7e817e7e631c
parent 29 567bb019e3e3
equal deleted inserted replaced
29:567bb019e3e3 30:7e817e7e631c
    89   gboolean       flushing;
    89   gboolean       flushing;
    90 
    90 
    91   /*< private >*/
    91   /*< private >*/
    92   union {
    92   union {
    93     struct {
    93     struct {
    94       /* segment used for clipping incoming buffers */
    94       /* segment used for clipping incomming buffers */
    95       GstSegment    *clip_segment;
    95       GstSegment    *clip_segment;
    96       /* max amount of time a buffer can be late, -1 no limit. */
    96       /* max amount of time a buffer can be late, -1 no limit. */
    97       gint64	     max_lateness;
    97       gint64	     max_lateness;
    98       gboolean       running;
       
    99     } ABI;
    98     } ABI;
   100     gpointer _gst_reserved[GST_PADDING_LARGE - 1];
    99     gpointer _gst_reserved[GST_PADDING_LARGE - 1];
   101   } abidata;
   100   } abidata;
   102 
   101 
   103   GstBaseSinkPrivate *priv;
   102   GstBaseSinkPrivate *priv;
   119  *     any state they set during unlock(), such as clearing command queues. 
   118  *     any state they set during unlock(), such as clearing command queues. 
   120  * @event: Override this to handle events arriving on the sink pad
   119  * @event: Override this to handle events arriving on the sink pad
   121  * @preroll: Called to present the preroll buffer if desired
   120  * @preroll: Called to present the preroll buffer if desired
   122  * @render: Called when a buffer should be presented or output, at the
   121  * @render: Called when a buffer should be presented or output, at the
   123  *     correct moment if the #GstBaseSink has been set to sync to the clock.
   122  *     correct moment if the #GstBaseSink has been set to sync to the clock.
   124  * @render_list: Same as @render but used whith buffer lists instead of
       
   125  *     buffers. Since: 0.10.24
       
   126  * @async_play: Subclasses should override this when they need to perform
   123  * @async_play: Subclasses should override this when they need to perform
   127  *     special processing when changing to the PLAYING state asynchronously.
   124  *     special processing when changing to the PLAYING state asynchronously.
   128  *     Called with the OBJECT_LOCK held.
   125  *     Called with the OBJECT_LOCK held.
   129  * @activate_pull: Subclasses should override this when they can provide an
   126  * @activate_pull: Subclasses should override this when they can provide an
   130  *     alternate method of spawning a thread to drive the pipeline in pull mode.
   127  *     alternate method of spawning a thread to drive the pipeline in pull mode.
   180   void		(*fixate)	(GstBaseSink *sink, GstCaps *caps);
   177   void		(*fixate)	(GstBaseSink *sink, GstCaps *caps);
   181 
   178 
   182   /* Clear a previously indicated unlock request not that unlocking is 
   179   /* Clear a previously indicated unlock request not that unlocking is 
   183    * complete. Sub-classes should clear any command queue or indicator they
   180    * complete. Sub-classes should clear any command queue or indicator they
   184    * set during unlock */
   181    * set during unlock */
   185   gboolean      (*unlock_stop)  (GstBaseSink *sink);
   182   gboolean      (*unlock_stop)       (GstBaseSink *sink);
   186 
       
   187   /* Render a BufferList */
       
   188   GstFlowReturn (*render_list)  (GstBaseSink *sink, GstBufferList *buffer_list);
       
   189 
   183 
   190   /*< private >*/
   184   /*< private >*/
   191   gpointer       _gst_reserved[GST_PADDING_LARGE-5];
   185   gpointer       _gst_reserved[GST_PADDING_LARGE-4];
   192 };
   186 };
   193 #ifdef __SYMBIAN32__
   187 #ifdef __SYMBIAN32__
   194 IMPORT_C
   188 IMPORT_C
   195 #endif
   189 #endif
   196 
   190 
   198 GType gst_base_sink_get_type(void);
   192 GType gst_base_sink_get_type(void);
   199 #ifdef __SYMBIAN32__
   193 #ifdef __SYMBIAN32__
   200 IMPORT_C
   194 IMPORT_C
   201 #endif
   195 #endif
   202 
   196 
   203 
       
   204 GstFlowReturn	gst_base_sink_do_preroll 	(GstBaseSink *sink, GstMiniObject *obj);
       
   205 #ifdef __SYMBIAN32__
       
   206 IMPORT_C
       
   207 #endif
       
   208 
   197 
   209 GstFlowReturn	gst_base_sink_wait_preroll 	(GstBaseSink *sink);
   198 GstFlowReturn	gst_base_sink_wait_preroll 	(GstBaseSink *sink);
   210 
   199 
   211 /* synchronizing against the clock */
   200 /* synchronizing against the clock */
   212 #ifdef __SYMBIAN32__
   201 #ifdef __SYMBIAN32__
   285 #ifdef __SYMBIAN32__
   274 #ifdef __SYMBIAN32__
   286 IMPORT_C
   275 IMPORT_C
   287 #endif
   276 #endif
   288 
   277 
   289 GstClockTime	gst_base_sink_get_latency 	(GstBaseSink *sink);
   278 GstClockTime	gst_base_sink_get_latency 	(GstBaseSink *sink);
   290 
   279 #ifdef __SYMBIAN32__
   291 /* render delay */
   280 IMPORT_C
   292 #ifdef __SYMBIAN32__
   281 #endif
   293 IMPORT_C
   282 
   294 #endif
       
   295 
       
   296 void		gst_base_sink_set_render_delay  (GstBaseSink *sink, GstClockTime delay);
       
   297 #ifdef __SYMBIAN32__
       
   298 IMPORT_C
       
   299 #endif
       
   300 
       
   301 GstClockTime    gst_base_sink_get_render_delay 	(GstBaseSink *sink);
       
   302 
       
   303 /* blocksize */
       
   304 #ifdef __SYMBIAN32__
       
   305 IMPORT_C
       
   306 #endif
       
   307 
       
   308 void		gst_base_sink_set_blocksize     (GstBaseSink *sink, guint blocksize);
       
   309 #ifdef __SYMBIAN32__
       
   310 IMPORT_C
       
   311 #endif
       
   312 
       
   313 guint           gst_base_sink_get_blocksize 	(GstBaseSink *sink);
       
   314 #ifdef __SYMBIAN32__
       
   315 IMPORT_C
       
   316 #endif
       
   317 
       
   318 
       
   319 GstClockReturn  gst_base_sink_wait_clock        (GstBaseSink *sink, GstClockTime time,
       
   320                                                  GstClockTimeDiff * jitter);
       
   321 #ifdef __SYMBIAN32__
       
   322 IMPORT_C
       
   323 #endif
       
   324 
   283 
   325 GstFlowReturn   gst_base_sink_wait_eos          (GstBaseSink *sink, GstClockTime time,
   284 GstFlowReturn   gst_base_sink_wait_eos          (GstBaseSink *sink, GstClockTime time,
   326                                                  GstClockTimeDiff *jitter);
   285                                                  GstClockTimeDiff *jitter);
   327 
   286 
   328 G_END_DECLS
   287 G_END_DECLS