Wed, 27 Apr 2016 09:19:58 +0200
media: don't keep last sample reference on sinks
Holding a reference to a GstBuffer somewhere in a pipeline for possibly
indefinite period may cause trouble when the buffer has been allocated
by a 3rd party library or when it points directly into memory region of
a hardware device.
A specific example is V4L2 source element, which won't allow webcam
image resolution be reconfigured unless all previously allocated buffers
have been freed.
Backport of Pidgin 3 commit 13807c514810.
/* libgstroke - a GNOME stroke interface library Copyright (c) 1996,1997,1998,1999,2000,2001 Mark F. Willey, ETLA Technical See the file COPYING for distribution information. */ /* largest number of points allowed to be sampled */ #ifndef _GSTROKE_H_ #define _GSTROKE_H_ #define GSTROKE_MAX_POINTS 10000 /* number of sample points required to have a valid stroke */ #define GSTROKE_MIN_POINTS 50 /* maximum number of numbers in stroke */ #define GSTROKE_MAX_SEQUENCE 32 /* threshold of size of smaller axis needed for it to define its own bin size */ #define GSTROKE_SCALE_RATIO 4 /* minimum percentage of points in bin needed to add to sequence */ #define GSTROKE_BIN_COUNT_PERCENT 0.07 void gstroke_set_draw_strokes(gboolean draw); gboolean gstroke_draw_strokes(void); void gstroke_set_mouse_button(gint button); guint gstroke_get_mouse_button(void); /* enable strokes for the widget */ void gstroke_enable (GtkWidget *widget); /* disable strokes for the widget */ void gstroke_disable(GtkWidget *widget); guint gstroke_signal_connect (GtkWidget *widget, const gchar *name, void (*func)(GtkWidget *widget, void *data), gpointer data); /* frees all the memory allocated for stroke, should be called when the widget is destroyed*/ void gstroke_cleanup (GtkWidget *widget); #endif