G_DEFINE_TYPE_WITH_CODE (GstScaletempo, gst_scaletempo,
GST_TYPE_BASE_TRANSFORM, DEBUG_INIT (0));
-typedef struct _GstScaletempoPrivate
+struct _GstScaletempoPrivate
{
gdouble scale;
/* parameters */
gint64 segment_start;
/* threads */
gboolean reinit_buffers;
-} GstScaletempoPrivate;
+};
#define GST_SCALETEMPO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GST_TYPE_SCALETEMPO, GstScaletempoPrivate))
static guint
best_overlap_offset_float (GstScaletempo * scaletempo)
{
- GstScaletempoPrivate *p = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *p = scaletempo->priv;
gfloat *pw, *po, *ppc, *search_start;
gfloat best_corr = G_MININT;
guint best_off = 0;
static guint
best_overlap_offset_s16 (GstScaletempo * scaletempo)
{
- GstScaletempoPrivate *p = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *p = scaletempo->priv;
gint32 *pw, *ppc;
gint16 *po, *search_start;
gint64 best_corr = G_MININT64;
output_overlap_float (GstScaletempo * scaletempo,
gpointer buf_out, guint bytes_off)
{
- GstScaletempoPrivate *p = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *p = scaletempo->priv;
gfloat *pout = buf_out;
gfloat *pb = p->table_blend;
gfloat *po = p->buf_overlap;
output_overlap_s16 (GstScaletempo * scaletempo,
gpointer buf_out, guint bytes_off)
{
- GstScaletempoPrivate *p = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *p = scaletempo->priv;
gint16 *pout = buf_out;
gint32 *pb = p->table_blend;
gint16 *po = p->buf_overlap;
static guint
fill_queue (GstScaletempo * scaletempo, GstBuffer * buf_in, guint offset)
{
- GstScaletempoPrivate *p = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *p = scaletempo->priv;
guint bytes_in = gst_buffer_get_size (buf_in) - offset;
guint offset_unchanged = offset;
GstMapInfo map;
static void
reinit_buffers (GstScaletempo * scaletempo)
{
- GstScaletempoPrivate *p = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *p = scaletempo->priv;
gint i, j;
guint frames_overlap;
guint new_size;
GstBuffer * inbuf, GstBuffer * outbuf)
{
GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
- GstScaletempoPrivate *p = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *p = scaletempo->priv;
gint8 *pout;
guint offset_in, bytes_out;
GstMapInfo omap;
{
if (direction == GST_PAD_SINK) {
GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
- GstScaletempoPrivate *priv = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *priv = scaletempo->priv;
gint bytes_to_out;
if (priv->reinit_buffers)
{
if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
- GstScaletempoPrivate *priv = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *priv = scaletempo->priv;
GstSegment segment;
gst_event_copy_segment (event, &segment);
GstCaps * incaps, GstCaps * outcaps)
{
GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
- GstScaletempoPrivate *priv = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *priv = scaletempo->priv;
gint width, bps, nch, rate;
gboolean use_int;
guint prop_id, GValue * value, GParamSpec * pspec)
{
GstScaletempo *scaletempo = GST_SCALETEMPO (object);
- GstScaletempoPrivate *priv = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *priv = scaletempo->priv;
switch (prop_id) {
case PROP_RATE:
guint prop_id, const GValue * value, GParamSpec * pspec)
{
GstScaletempo *scaletempo = GST_SCALETEMPO (object);
- GstScaletempoPrivate *priv = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *priv = scaletempo->priv;
switch (prop_id) {
case PROP_STRIDE:{
static void
gst_scaletempo_init (GstScaletempo * scaletempo)
{
- GstScaletempoPrivate *priv = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+ GstScaletempoPrivate *priv;
+
+ scaletempo->priv = priv = GST_SCALETEMPO_GET_PRIVATE (scaletempo);
+
/* defaults */
priv->ms_stride = 30;
priv->percent_overlap = .2;