| Top |
| struct | GstBaseTransform |
| struct | GstBaseTransformClass |
| #define | GST_BASE_TRANSFORM_SINK_NAME |
| #define | GST_BASE_TRANSFORM_SRC_NAME |
| #define | GST_BASE_TRANSFORM_FLOW_DROPPED |
gboolean
gst_base_transform_is_passthrough (GstBaseTransform *trans);
void gst_base_transform_set_passthrough (GstBaseTransform *trans,gboolean passthrough);
void gst_base_transform_set_prefer_passthrough (GstBaseTransform *trans,gboolean prefer_passthrough);
gboolean
gst_base_transform_is_in_place (GstBaseTransform *trans);
void gst_base_transform_set_in_place (GstBaseTransform *trans,gboolean in_place);
gboolean
gst_base_transform_is_qos_enabled (GstBaseTransform *trans);
void gst_base_transform_set_qos_enabled (GstBaseTransform *trans,gboolean enabled);
void gst_base_transform_update_qos (GstBaseTransform *trans,gdouble proportion,GstClockTimeDiff diff,GstClockTime timestamp);
void gst_base_transform_set_gap_aware (GstBaseTransform *trans,gboolean gap_aware);
void gst_base_transform_get_allocator (GstBaseTransform *trans,GstAllocator **allocator,GstAllocationParams *params);
GstBufferPool *
gst_base_transform_get_buffer_pool (GstBaseTransform *trans);
void
gst_base_transform_reconfigure_sink (GstBaseTransform *trans);
void
gst_base_transform_reconfigure_src (GstBaseTransform *trans);
gboolean gst_base_transform_update_src_caps (GstBaseTransform *trans,GstCaps *updated_caps);
#define GST_BASE_TRANSFORM_SINK_PAD(obj) (GST_BASE_TRANSFORM_CAST (obj)->sinkpad)
struct GstBaseTransformClass {
GstElementClass parent_class;
gboolean passthrough_on_same_caps;
gboolean transform_ip_on_passthrough;
/* virtual methods for subclasses */
GstCaps* (*transform_caps) (GstBaseTransform *trans,
GstPadDirection direction,
GstCaps *caps, GstCaps *filter);
GstCaps* (*fixate_caps) (GstBaseTransform *trans,
GstPadDirection direction, GstCaps *caps,
GstCaps *othercaps);
gboolean (*accept_caps) (GstBaseTransform *trans, GstPadDirection direction,
GstCaps *caps);
gboolean (*set_caps) (GstBaseTransform *trans, GstCaps *incaps,
GstCaps *outcaps);
gboolean (*query) (GstBaseTransform *trans, GstPadDirection direction,
GstQuery *query);
/* decide allocation query for output buffers */
gboolean (*decide_allocation) (GstBaseTransform *trans, GstQuery *query);
gboolean (*filter_meta) (GstBaseTransform *trans, GstQuery *query,
GType api, const GstStructure *params);
/* propose allocation query parameters for input buffers */
gboolean (*propose_allocation) (GstBaseTransform *trans, GstQuery *decide_query,
GstQuery *query);
/* transform size */
gboolean (*transform_size) (GstBaseTransform *trans,
GstPadDirection direction,
GstCaps *caps, gsize size,
GstCaps *othercaps, gsize *othersize);
gboolean (*get_unit_size) (GstBaseTransform *trans, GstCaps *caps,
gsize *size);
/* states */
gboolean (*start) (GstBaseTransform *trans);
gboolean (*stop) (GstBaseTransform *trans);
/* sink and src pad event handlers */
gboolean (*sink_event) (GstBaseTransform *trans, GstEvent *event);
gboolean (*src_event) (GstBaseTransform *trans, GstEvent *event);
GstFlowReturn (*prepare_output_buffer) (GstBaseTransform * trans,
GstBuffer *input, GstBuffer **outbuf);
/* metadata */
gboolean (*copy_metadata) (GstBaseTransform *trans, GstBuffer *input,
GstBuffer *outbuf);
gboolean (*transform_meta) (GstBaseTransform *trans, GstBuffer *outbuf,
GstMeta *meta, GstBuffer *inbuf);
void (*before_transform) (GstBaseTransform *trans, GstBuffer *buffer);
/* transform */
GstFlowReturn (*transform) (GstBaseTransform *trans, GstBuffer *inbuf,
GstBuffer *outbuf);
GstFlowReturn (*transform_ip) (GstBaseTransform *trans, GstBuffer *buf);
GstFlowReturn (*submit_input_buffer) (GstBaseTransform *trans, gboolean is_discont, GstBuffer *input);
GstFlowReturn (*generate_output) (GstBaseTransform *trans, GstBuffer **outbuf);
};
“qos” property“qos” gboolean
Handle Quality-of-Service events.
Flags: Read / Write
Default value: FALSE