#ifndef __GST_VIDEO_RATE_H__
#define __GST_VIDEO_RATE_H__
-
+#define VIDEORATE_MODIFICATION
#include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
G_BEGIN_DECLS
*/
struct _GstVideoRate
{
- GstElement element;
-
- GstPad *sinkpad, *srcpad;
+ GstBaseTransform parent;
/* video state */
gint from_rate_numerator, from_rate_denominator;
gboolean discont;
guint64 last_ts; /* Timestamp of last input buffer */
+ guint64 average_period;
+ GstClockTimeDiff wanted_diff; /* target average diff */
+ GstClockTimeDiff average; /* moving average period */
+
/* segment handling */
GstSegment segment;
gboolean silent;
gdouble new_pref;
gboolean skip_to_first;
+ gboolean drop_only;
+ guint64 average_period_set;
+ gint force_fps_n, force_fps_d;
+
+ volatile int max_rate;
};
struct _GstVideoRateClass
{
- GstElementClass parent_class;
+ GstBaseTransformClass parent_class;
};
GType gst_video_rate_get_type (void);