X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=libs%2Fgst%2Fbase%2Fgstbaseparse.h;h=24fd9079c0cb6a32a1a5f99527f6969b44b06d74;hb=76c9b0689dce5e3c56887863576b573b50043760;hp=4e6a2c7353eeb0c8935f60c8cebf6d75c6262425;hpb=2a8c95ff3b48f60a713d13954bc6c12fa9d4a509;p=platform%2Fupstream%2Fgstreamer.git diff --git a/libs/gst/base/gstbaseparse.h b/libs/gst/base/gstbaseparse.h index 4e6a2c7..24fd907 100644 --- a/libs/gst/base/gstbaseparse.h +++ b/libs/gst/base/gstbaseparse.h @@ -23,6 +23,7 @@ #define __GST_BASE_PARSE_H__ #include +#include G_BEGIN_DECLS @@ -53,9 +54,10 @@ G_BEGIN_DECLS /** * GST_BASE_PARSE_FLOW_DROPPED: * - * A #GstFlowReturn that can be returned from parse_frame to - * indicate that no output buffer was generated, or from pre_push_frame to - * to forego pushing buffer. + * A #GstFlowReturn that can be returned from + * #GstBaseParseClass.handle_frame() to indicate that no output buffer was + * generated, or from #GstBaseParseClass.pre_push_frame() to to forego + * pushing buffer. */ #define GST_BASE_PARSE_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS @@ -94,7 +96,7 @@ G_BEGIN_DECLS * that regular segment clipping can still be performed (as opposed to * any custom one having been done). * @GST_BASE_PARSE_FRAME_FLAG_DROP: indicates to @finish_frame that the - * the frame should be dropped (and might be handled internall by subclass) + * the frame should be dropped (and might be handled internally by subclass) * @GST_BASE_PARSE_FRAME_FLAG_QUEUE: indicates to @finish_frame that the * the frame should be queued for now and processed fully later * when the first non-queued frame is finished @@ -113,7 +115,7 @@ typedef enum { /** * GstBaseParseFrame: * @buffer: input data to be parsed for frames. - * @out_buffer: (optional) (replacement) output data. + * @out_buffer: output data. * @offset: media specific offset of input frame * Note that a converter may have a different one on the frame's buffer. * @overhead: subclass can set this to indicates the metadata overhead @@ -156,6 +158,7 @@ typedef struct _GstBaseParsePrivate GstBaseParsePrivate; * The opaque #GstBaseParse data structure. */ struct _GstBaseParse { + /*< public >*/ GstElement element; /*< protected >*/ @@ -182,8 +185,10 @@ struct _GstBaseParse { * @stop: Optional. * Called when the element stops processing. * Allows closing external resources. - * @set_sink_caps: allows the subclass to be notified of the actual caps set. - * @get_sink_caps: allows the subclass to do its own sink get caps if needed. + * @set_sink_caps: Optional. + * Allows the subclass to be notified of the actual caps set. + * @get_sink_caps: Optional. + * Allows the subclass to do its own sink get caps if needed. * @handle_frame: Parses the input data into valid frames as defined by subclass * which should be passed to gst_base_parse_finish_frame(). * The frame's input buffer is guaranteed writable, @@ -216,14 +221,13 @@ struct _GstBaseParse { * @sink_query: Optional. * Query handler on the sink pad. This function should chain * up to the parent implementation to let the default handler - * run (Since 1.2) + * run (Since: 1.2) * @src_query: Optional. * Query handler on the source pad. Should chain up to the - * parent to let the default handler run (Since 1.2) + * parent to let the default handler run (Since: 1.2) * * Subclasses can override any of the available virtual methods or not, as - * needed. At minimum @check_valid_frame and @parse_frame needs to be - * overridden. + * needed. At minimum @handle_frame needs to be overridden. */ struct _GstBaseParseClass { GstElementClass parent_class; @@ -273,73 +277,119 @@ struct _GstBaseParseClass { gpointer _gst_reserved[GST_PADDING_LARGE - 2]; }; +GST_BASE_API GType gst_base_parse_get_type (void); +GST_BASE_API GType gst_base_parse_frame_get_type (void); +GST_BASE_API GstBaseParseFrame * gst_base_parse_frame_new (GstBuffer * buffer, GstBaseParseFrameFlags flags, gint overhead); - +GST_BASE_API void gst_base_parse_frame_init (GstBaseParseFrame * frame); +GST_BASE_API +GstBaseParseFrame * gst_base_parse_frame_copy (GstBaseParseFrame * frame); +GST_BASE_API void gst_base_parse_frame_free (GstBaseParseFrame * frame); +GST_BASE_API GstFlowReturn gst_base_parse_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame); - +GST_BASE_API GstFlowReturn gst_base_parse_finish_frame (GstBaseParse * parse, GstBaseParseFrame * frame, gint size); - +GST_BASE_API void gst_base_parse_set_duration (GstBaseParse * parse, GstFormat fmt, gint64 duration, gint interval); - +GST_BASE_API void gst_base_parse_set_average_bitrate (GstBaseParse * parse, guint bitrate); - +GST_BASE_API void gst_base_parse_set_min_frame_size (GstBaseParse * parse, guint min_size); - +GST_BASE_API void gst_base_parse_set_has_timing_info (GstBaseParse * parse, gboolean has_timing); +GST_BASE_API +void gst_base_parse_drain (GstBaseParse * parse); +GST_BASE_API void gst_base_parse_set_syncable (GstBaseParse * parse, gboolean syncable); - +GST_BASE_API void gst_base_parse_set_passthrough (GstBaseParse * parse, gboolean passthrough); - +GST_BASE_API void gst_base_parse_set_pts_interpolation (GstBaseParse * parse, gboolean pts_interpolate); - +GST_BASE_API +void gst_base_parse_set_infer_ts (GstBaseParse * parse, + gboolean infer_ts); +GST_BASE_API void gst_base_parse_set_frame_rate (GstBaseParse * parse, guint fps_num, guint fps_den, guint lead_in, guint lead_out); - +GST_BASE_API void gst_base_parse_set_latency (GstBaseParse * parse, GstClockTime min_latency, GstClockTime max_latency); - +GST_BASE_API gboolean gst_base_parse_convert_default (GstBaseParse * parse, GstFormat src_format, gint64 src_value, GstFormat dest_format, gint64 * dest_value); - +GST_BASE_API gboolean gst_base_parse_add_index_entry (GstBaseParse * parse, guint64 offset, GstClockTime ts, gboolean key, gboolean force); - +GST_BASE_API void gst_base_parse_set_ts_at_offset (GstBaseParse *parse, gsize offset); - +GST_BASE_API +void gst_base_parse_merge_tags (GstBaseParse * parse, + GstTagList * tags, + GstTagMergeMode mode); + +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstBaseParseFrame, gst_base_parse_frame_free) +#endif + +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstBaseParse, gst_object_unref) +#endif + +#ifdef TIZEN_FEATURE_BASEPARSE_MODIFICATION +GST_BASE_API +void gst_base_parse_get_upstream_size (GstBaseParse * parse, + gint64 * upstream_size); + +GST_BASE_API +void gst_base_parse_get_index_last_offset (GstBaseParse * parse, + gint64 * index_last_offset); + +GST_BASE_API +void gst_base_parse_get_index_last_ts (GstBaseParse * parse, + GstClockTime * index_last_ts); + +GST_BASE_API +void gst_base_parse_get_pad_mode (GstBaseParse * parse, + GstPadMode * pad_mode); + +GST_BASE_API +void gst_base_parse_set_seek_mode (GstBaseParse * parse, + gboolean seek_mode); +#endif G_END_DECLS #endif /* __GST_BASE_PARSE_H__ */