gstreamer_core/libs/gst/base/gstbasesink.h
branchRCL_3
changeset 29 567bb019e3e3
parent 0 0e761a78d257
child 30 7e817e7e631c
equal deleted inserted replaced
6:9b2c3c7a1a9c 29:567bb019e3e3
    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 incomming buffers */
    94       /* segment used for clipping incoming 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;
    98     } ABI;
    99     } ABI;
    99     gpointer _gst_reserved[GST_PADDING_LARGE - 1];
   100     gpointer _gst_reserved[GST_PADDING_LARGE - 1];
   100   } abidata;
   101   } abidata;
   101 
   102 
   102   GstBaseSinkPrivate *priv;
   103   GstBaseSinkPrivate *priv;
   118  *     any state they set during unlock(), such as clearing command queues. 
   119  *     any state they set during unlock(), such as clearing command queues. 
   119  * @event: Override this to handle events arriving on the sink pad
   120  * @event: Override this to handle events arriving on the sink pad
   120  * @preroll: Called to present the preroll buffer if desired
   121  * @preroll: Called to present the preroll buffer if desired
   121  * @render: Called when a buffer should be presented or output, at the
   122  * @render: Called when a buffer should be presented or output, at the
   122  *     correct moment if the #GstBaseSink has been set to sync to the clock.
   123  *     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
   123  * @async_play: Subclasses should override this when they need to perform
   126  * @async_play: Subclasses should override this when they need to perform
   124  *     special processing when changing to the PLAYING state asynchronously.
   127  *     special processing when changing to the PLAYING state asynchronously.
   125  *     Called with the OBJECT_LOCK held.
   128  *     Called with the OBJECT_LOCK held.
   126  * @activate_pull: Subclasses should override this when they can provide an
   129  * @activate_pull: Subclasses should override this when they can provide an
   127  *     alternate method of spawning a thread to drive the pipeline in pull mode.
   130  *     alternate method of spawning a thread to drive the pipeline in pull mode.
   177   void		(*fixate)	(GstBaseSink *sink, GstCaps *caps);
   180   void		(*fixate)	(GstBaseSink *sink, GstCaps *caps);
   178 
   181 
   179   /* Clear a previously indicated unlock request not that unlocking is 
   182   /* Clear a previously indicated unlock request not that unlocking is 
   180    * complete. Sub-classes should clear any command queue or indicator they
   183    * complete. Sub-classes should clear any command queue or indicator they
   181    * set during unlock */
   184    * set during unlock */
   182   gboolean      (*unlock_stop)       (GstBaseSink *sink);
   185   gboolean      (*unlock_stop)  (GstBaseSink *sink);
       
   186 
       
   187   /* Render a BufferList */
       
   188   GstFlowReturn (*render_list)  (GstBaseSink *sink, GstBufferList *buffer_list);
   183 
   189 
   184   /*< private >*/
   190   /*< private >*/
   185   gpointer       _gst_reserved[GST_PADDING_LARGE-4];
   191   gpointer       _gst_reserved[GST_PADDING_LARGE-5];
   186 };
   192 };
   187 #ifdef __SYMBIAN32__
   193 #ifdef __SYMBIAN32__
   188 IMPORT_C
   194 IMPORT_C
   189 #endif
   195 #endif
   190 
   196 
   192 GType gst_base_sink_get_type(void);
   198 GType gst_base_sink_get_type(void);
   193 #ifdef __SYMBIAN32__
   199 #ifdef __SYMBIAN32__
   194 IMPORT_C
   200 IMPORT_C
   195 #endif
   201 #endif
   196 
   202 
       
   203 
       
   204 GstFlowReturn	gst_base_sink_do_preroll 	(GstBaseSink *sink, GstMiniObject *obj);
       
   205 #ifdef __SYMBIAN32__
       
   206 IMPORT_C
       
   207 #endif
   197 
   208 
   198 GstFlowReturn	gst_base_sink_wait_preroll 	(GstBaseSink *sink);
   209 GstFlowReturn	gst_base_sink_wait_preroll 	(GstBaseSink *sink);
   199 
   210 
   200 /* synchronizing against the clock */
   211 /* synchronizing against the clock */
   201 #ifdef __SYMBIAN32__
   212 #ifdef __SYMBIAN32__
   274 #ifdef __SYMBIAN32__
   285 #ifdef __SYMBIAN32__
   275 IMPORT_C
   286 IMPORT_C
   276 #endif
   287 #endif
   277 
   288 
   278 GstClockTime	gst_base_sink_get_latency 	(GstBaseSink *sink);
   289 GstClockTime	gst_base_sink_get_latency 	(GstBaseSink *sink);
   279 #ifdef __SYMBIAN32__
   290 
   280 IMPORT_C
   291 /* render delay */
   281 #endif
   292 #ifdef __SYMBIAN32__
   282 
   293 IMPORT_C
       
   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
   283 
   324 
   284 GstFlowReturn   gst_base_sink_wait_eos          (GstBaseSink *sink, GstClockTime time,
   325 GstFlowReturn   gst_base_sink_wait_eos          (GstBaseSink *sink, GstClockTime time,
   285                                                  GstClockTimeDiff *jitter);
   326                                                  GstClockTimeDiff *jitter);
   286 
   327 
   287 G_END_DECLS
   328 G_END_DECLS