GST_TYPE_DFBVIDEOSINK #define GST_TYPE_DFBVIDEOSINK (gst_dfbvideosink_get_type()) GST_DFBVIDEOSINK #define GST_DFBVIDEOSINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DFBVIDEOSINK, GstDfbVideoSink)) GST_DFBVIDEOSINK_CLASS #define GST_DFBVIDEOSINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DFBVIDEOSINK, GstDfbVideoSink)) GST_IS_DFBVIDEOSINK #define GST_IS_DFBVIDEOSINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DFBVIDEOSINK)) GST_IS_DFBVIDEOSINK_CLASS #define GST_IS_DFBVIDEOSINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DFBVIDEOSINK)) GstDfbVideoSink GstDfbVideoSinkClass GST_TYPE_DFBSURFACE #define GST_TYPE_DFBSURFACE (gst_dfbsurface_get_type()) GST_IS_DFBSURFACE #define GST_IS_DFBSURFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DFBSURFACE)) GST_DFBSURFACE #define GST_DFBSURFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DFBSURFACE, GstDfbSurface)) GstDfbSurface GstDfbSurface struct _GstDfbSurface { GstBuffer buffer; /* We extend GstBuffer */ IDirectFBSurface *surface; gint width; gint height; gboolean locked; DFBSurfacePixelFormat pixel_format; GstDfbVideoSink *dfbvideosink; }; GstDfbVMode GstDfbVMode struct _GstDfbVMode { gint width; gint height; gint bpp; }; GstDfbVideoSink struct _GstDfbVideoSink { /* Our element stuff */ GstVideoSink videosink; GMutex *pool_lock; GSList *buffer_pool; /* Framerate numerator and denominator */ gint fps_n; gint fps_d; gint video_width, video_height; /* size of incoming video */ gint out_width, out_height; /* Standalone */ IDirectFB *dfb; GSList *vmodes; /* Video modes */ gint layer_id; IDirectFBDisplayLayer *layer; IDirectFBSurface *primary; IDirectFBEventBuffer *event_buffer; GThread *event_thread; /* Embedded */ IDirectFBSurface *ext_surface; DFBSurfacePixelFormat pixel_format; gboolean hw_scaling; gboolean backbuffer; gboolean vsync; gboolean setup; gboolean running; /* Color balance */ GList *cb_channels; gint brightness; gint contrast; gint hue; gint saturation; gboolean cb_changed; /* object-set pixel aspect ratio */ GValue *par; }; GstDfbVideoSinkClass struct _GstDfbVideoSinkClass { GstVideoSinkClass parent_class; }; gst_dfbvideosink_get_type GType void gst_dfbsurface_get_type GType void GstId3v2Mux GstId3v2MuxClass typedef struct _GstId3v2Mux { GstTagLibMux taglibmux; }; typedef struct _GstId3v2MuxClass { GstTagLibMuxClass taglibmux_class; }; GST_TYPE_ID3V2_MUX #define GST_TYPE_ID3V2_MUX \ (gst_id3v2_mux_get_type()) GST_ID3V2_MUX #define GST_ID3V2_MUX(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ID3V2_MUX,GstId3v2Mux)) GST_ID3V2_MUX_CLASS #define GST_ID3V2_MUX_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ID3V2_MUX,GstId3v2MuxClass)) GST_IS_ID3V2_MUX #define GST_IS_ID3V2_MUX(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ID3V2_MUX)) GST_IS_ID3V2_MUX_CLASS #define GST_IS_ID3V2_MUX_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ID3V2_MUX)) gst_id3v2_mux_get_type GType void GstTagLibMux GstTagLibMuxClass typedef struct _GstTagLibMux { GstElement element; GstPad *srcpad; GstPad *sinkpad; GstTagList *event_tags; /* tags received from upstream elements */ gsize tag_size; gboolean render_tag; GstEvent *newsegment_ev; /* cached newsegment event from upstream */ }; typedef struct _GstTagLibMuxClass { GstElementClass parent_class; /* vfuncs */ GstBuffer * (*render_tag) (GstTagLibMux * mux, GstTagList * tag_list); }; GST_TYPE_TAG_LIB_MUX #define GST_TYPE_TAG_LIB_MUX \ (gst_tag_lib_mux_get_type()) GST_TAG_LIB_MUX #define GST_TAG_LIB_MUX(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TAG_LIB_MUX,GstTagLibMux)) GST_TAG_LIB_MUX_CLASS #define GST_TAG_LIB_MUX_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TAG_LIB_MUX,GstTagLibMuxClass)) GST_IS_TAG_LIB_MUX #define GST_IS_TAG_LIB_MUX(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TAG_LIB_MUX)) GST_IS_TAG_LIB_MUX_CLASS #define GST_IS_TAG_LIB_MUX_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TAG_LIB_MUX)) gst_tag_lib_mux_get_type GType void