From 0751f737336db408d0de424c2032b421d558dbbd Mon Sep 17 00:00:00 2001 From: Christian Schaller Date: Fri, 6 May 2005 11:04:30 +0000 Subject: ported mad and effectv plugins Original commit message from CVS: ported mad and effectv plugins --- ChangeLog | 5 + Makefile.am | 4 +- PORTED_09 | 3 +- configure.ac | 24 +- ext/Makefile.am | 789 +++++++++++++++++++++-------------------------- gst/effectv/gstaging.c | 6 +- gst/effectv/gstdice.c | 6 +- gst/effectv/gstquark.c | 57 ++-- gst/effectv/gstrev.c | 6 +- gst/effectv/gstvertigo.c | 6 +- gst/effectv/gstwarp.c | 6 +- 11 files changed, 420 insertions(+), 492 deletions(-) diff --git a/ChangeLog b/ChangeLog index 787bfa16..d72598f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-05-06 Christian Schaller + + * ext/mad: ported plugin from threaded branch + * gst/effectv: ported plugins from threaded branch + 2005-05-06 Zaheer Abbas Merali * configure.ac: diff --git a/Makefile.am b/Makefile.am index 1475e53f..866b95a9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,14 +13,14 @@ endif # endif SUBDIRS = \ - gst sys \ + gst sys ext \ $(GCONF_DIR) \ m4 # disabled # $(SUBDIRS_DOCS) DIST_SUBDIRS = \ - gst sys \ + gst sys ext \ m4 # disabled diff --git a/PORTED_09 b/PORTED_09 index 78a5c6a7..55bfc546 100644 --- a/PORTED_09 +++ b/PORTED_09 @@ -1,6 +1,7 @@ List of ported plugins (update when you commit a ported plugin): -osssink (wim) +osssink (wim) - partially done in threaded effectv (wim) +mad (wim) - Remember that some plugins are already ported and now in the gst-plugins-base module. diff --git a/configure.ac b/configure.ac index 6e48fc24..60420bd4 100644 --- a/configure.ac +++ b/configure.ac @@ -345,9 +345,25 @@ dnl ]) dnl ]) dnl ]) - - - +dnl *** mad *** +dnl FIXME: we could use header checks here as well IMO +translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true) +GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [ + dnl check with pkg-config first + PKG_CHECK_MODULES(MAD, mad >= 0.15 id3tag >= 0.15, HAVE_MAD="yes", HAVE_MAD="no") + if test "x$HAVE_MAD" = "xno"; then + dnl fall back to oldskool detection + AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad") + if test "x$HAVE_MAD" = "xyes"; then + HAVE_MAD="no" + save_LIBS=$LIBS + LIBS="-lz" + AC_CHECK_LIB(id3tag, id3_tag_options, HAVE_MAD="yes" MAD_LIBS="-lmad -lid3tag -lz") + LIBS=$save_LIBS + fi + fi +]) +AC_SUBST(MAD_LIBS) AC_SUBST(GST_LIBS) @@ -408,6 +424,8 @@ gst-plugins.spec gst/Makefile gst/effectv/Makefile sys/Makefile +ext/Makefile +ext/mad/Makefile common/Makefile common/m4/Makefile m4/Makefile diff --git a/ext/Makefile.am b/ext/Makefile.am index 19c8c3dc..055ae521 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -1,122 +1,116 @@ -if USE_A52DEC -A52DEC_DIR=a52dec -else -A52DEC_DIR= -endif - -if USE_AALIB -AALIB_DIR=aalib -else -AALIB_DIR= -endif - -if USE_ALSA -ALSA_DIR=alsa -else -ALSA_DIR= -endif - -if USE_AMRNB -AMRNB_DIR=amrnb -else -AMRNB= -endif - -if USE_ARTS -ARTS_DIR=arts -else -ARTS_DIR= -endif - -if USE_ARTSC -ARTSC_DIR=artsd -else -ARTSC_DIR= -endif - -if USE_AUDIOFILE -AUDIOFILE_DIR=audiofile -else -AUDIOFILE_DIR= -endif - -if USE_AUDIORESAMPLE -AUDIORESAMPLE_DIR=audioresample -else -AUDIORESAMPLE_DIR= -endif - -if USE_CAIRO -CAIRO_DIR=cairo -else -CAIRO_DIR= -endif - -if USE_CDAUDIO -CDAUDIO_DIR=cdaudio -else -CDAUDIO_DIR= -endif - -if USE_CDPARANOIA -CDPARANOIA_DIR=cdparanoia -else -CDPARANOIA_DIR= -endif - -if USE_DIRAC -DIRAC_DIR=dirac -else -DIRAC_DIR= -endif - -if USE_DIRECTFB -DIRECTFB_DIR=directfb -else -DIRECTFB_DIR= -endif - -if USE_DIVX -DIVX_DIR=divx -else -DIVX_DIR= -endif - -if USE_DTS -DTS_DIR=dts -else -DTS_DIR= -endif - -if USE_DVDREAD -DVDREAD_DIR=dvdread -else -DVDREAD_DIR= -endif - -if USE_DVDNAV -DVDNAV_DIR=dvdnav -else -DVDNAV_DIR= -endif - -if USE_ESD -ESD_DIR=esd -else -ESD_DIR= -endif - -if USE_FAAC -FAAC_DIR=faac -else -FAAC_DIR= -endif - -if USE_FAAD -FAAD_DIR=faad -else -FAAD_DIR= -endif +# if USE_A52DEC +# A52DEC_DIR=a52dec +# else +# A52DEC_DIR= +# endif + +# if USE_AALIB +# AALIB_DIR=aalib +# else +# AALIB_DIR= +# endif + +# if USE_AMRNB +# AMRNB_DIR=amrnb +# else +# AMRNB= +# endif + +# if USE_ARTS +# ARTS_DIR=arts +# else +# ARTS_DIR= +# endif + +# if USE_ARTSC +# ARTSC_DIR=artsd +# else +# ARTSC_DIR= +# endif + +# if USE_AUDIOFILE +# AUDIOFILE_DIR=audiofile +# else +# AUDIOFILE_DIR= +# endif + +# if USE_AUDIORESAMPLE +# AUDIORESAMPLE_DIR=audioresample +# else +# AUDIORESAMPLE_DIR= +# endif + +# if USE_CAIRO +# CAIRO_DIR=cairo +# else +# CAIRO_DIR= +# endif + +# if USE_CDAUDIO +# CDAUDIO_DIR=cdaudio +# else +# CDAUDIO_DIR= +# endif + +# if USE_CDPARANOIA +# CDPARANOIA_DIR=cdparanoia +# else +# CDPARANOIA_DIR= +# endif + +# if USE_DIRAC +# DIRAC_DIR=dirac +# else +# DIRAC_DIR= +# endif + +# if USE_DIRECTFB +# DIRECTFB_DIR=directfb +# else +# DIRECTFB_DIR= +# endif + +# if USE_DIVX +# DIVX_DIR=divx +# else +# DIVX_DIR= +# endif + +# if USE_DTS +# DTS_DIR=dts +# else +# DTS_DIR= +# endif + +# if USE_DVDREAD +# DVDREAD_DIR=dvdread +# else +# DVDREAD_DIR= +# endif + +# if USE_DVDNAV +# DVDNAV_DIR=dvdnav +# else +# DVDNAV_DIR= +# endif + +# if USE_ESD +# ESD_DIR=esd +# else +# ESD_DIR= +# endif + +# if USE_FAAC +# FAAC_DIR=faac +# else +# FAAC_DIR= +# endif + +# if USE_FAAD +# FAAD_DIR=faad +# else +# FAAD_DIR= +# endif ## if USE_FESTIVAL ## FESTIVAL_DIR=festival @@ -124,113 +118,113 @@ endif ## FESTIVAL_DIR= ## endif -if USE_FLAC -FLAC_DIR=flac -else -FLAC_DIR= -endif - -if USE_GDK_PIXBUF -GDK_PIXBUF_DIR=gdk_pixbuf -else -GDK_PIXBUF_DIR= -endif - -if USE_GNOME_VFS -GNOMEVFS_DIR=gnomevfs -else -GNOMEVFS_DIR= -endif - -if USE_GSM -GSM_DIR=gsm -else -GSM_DIR= -endif - -if USE_HERMES -HERMES_DIR=hermes -else -HERMES_DIR= -endif - -if USE_JACK -JACK_DIR=jack -else -JACK_DIR= -endif - -if USE_JPEG -JPEG_DIR=jpeg -else -JPEG_DIR= -endif - -if USE_LADSPA -LADSPA_DIR=ladspa -else -LADPSA_DIR= -endif - -if USE_LAME -LAME_DIR=lame -else -LAME_DIR= -endif - -if USE_LCS -LCS_DIR=lcs -else -LCS_DIR= -endif - -if USE_LIBCACA -LIBCACA_DIR=libcaca -else -LIBCACA_DIR= -endif - -if USE_LIBDV -LIBDV_DIR=dv -else -LIBDV_DIR= -endif - -if USE_LIBFAME -LIBFAME_DIR=libfame -else -LIBFAME_DIR= -endif - -if USE_LIBMNG -LIBMNG_DIR=libmng -else -LIBMNG_DIR= -endif - -if USE_LIBPNG -LIBPNG_DIR=libpng -else -LIBPNG_DIR= -endif - -if USE_POLYP -POLYP_DIR=polyp -else -POLYP_DIR= -endif - -if USE_LIBVISUAL -LIBVISUAL_DIR=libvisual -else -LIBVISUAL_DIR= -endif - -if USE_LIBMMS -LIBMMS_DIR=libmms -else -LIBMMS_DIR= -endif +# if USE_FLAC +# FLAC_DIR=flac +# else +# FLAC_DIR= +# endif + +# if USE_GDK_PIXBUF +# GDK_PIXBUF_DIR=gdk_pixbuf +# else +# GDK_PIXBUF_DIR= +# endif + +# if USE_GNOME_VFS +# GNOMEVFS_DIR=gnomevfs +# else +# GNOMEVFS_DIR= +# endif + +# if USE_GSM +# GSM_DIR=gsm +# else +# GSM_DIR= +# endif + +# if USE_HERMES +# HERMES_DIR=hermes +# else +# HERMES_DIR= +# endif + +# if USE_JACK +# JACK_DIR=jack +# else +# JACK_DIR= +# endif + +# if USE_JPEG +# JPEG_DIR=jpeg +# else +# JPEG_DIR= +# endif + +# if USE_LADSPA +# LADSPA_DIR=ladspa +# else +# LADPSA_DIR= +# endif + +# if USE_LAME +# LAME_DIR=lame +# else +# LAME_DIR= +# endif + +# if USE_LCS +# LCS_DIR=lcs +# else +# LCS_DIR= +# endif + +# if USE_LIBCACA +# LIBCACA_DIR=libcaca +# else +# LIBCACA_DIR= +# endif + +# if USE_LIBDV +# LIBDV_DIR=dv +# else +# LIBDV_DIR= +# endif + +# if USE_LIBFAME +# LIBFAME_DIR=libfame +# else +# LIBFAME_DIR= +# endif + +# if USE_LIBMNG +# LIBMNG_DIR=libmng +# else +# LIBMNG_DIR= +# endif + +# if USE_LIBPNG +# LIBPNG_DIR=libpng +# else +# LIBPNG_DIR= +# endif + +# if USE_POLYP +# POLYP_DIR=polyp +# else +# POLYP_DIR= +# endif + +# if USE_LIBVISUAL +# LIBVISUAL_DIR=libvisual +# else +# LIBVISUAL_DIR= +# endif + +# if USE_LIBMMS +# LIBMMS_DIR=libmms +# else +# LIBMMS_DIR= +# endif if USE_MAD MAD_DIR=mad @@ -238,29 +232,29 @@ else MAD_DIR= endif -if USE_MIKMOD -MIKMOD_DIR=mikmod -else -MIKMOD_DIR= -endif +# if USE_MIKMOD +# MIKMOD_DIR=mikmod +# else +# MIKMOD_DIR= +# endif -if USE_MPEG2DEC -MPEG2DEC_DIR=mpeg2dec -else -MPEG2DEC_DIR= -endif +# if USE_MPEG2DEC +# MPEG2DEC_DIR=mpeg2dec +# else +#MPEG2DEC_DIR= +#endif -if USE_MPEG2ENC -MPEG2ENC_DIR=mpeg2enc -else -MPEG2ENC_DIR= -endif +# if USE_MPEG2ENC +# MPEG2ENC_DIR=mpeg2enc +# else +# MPEG2ENC_DIR= +# endif -if USE_MPLEX -MPLEX_DIR=mplex -else -MPLEX_DIR= -endif +# if USE_MPLEX +# MPLEX_DIR=mplex +# else +# MPLEX_DIR= +# endif #if USE_MAS #MAS_DIR=mas @@ -268,131 +262,119 @@ endif #MAS_DIR= #endif -if USE_MUSEPACK -MUSEPACK_DIR=musepack -else -MUSEPACK_DIR= -endif - -if USE_MUSICBRAINZ -MUSICBRAINZ_DIR=musicbrainz -else -MUSICBRAINZ_DIR= -endif - -if USE_NAS -NAS_DIR=nas -else -NAS_DIR= -endif - -if USE_OGG -OGG_DIR=ogg -else -OGG_DIR= -endif - -if USE_PANGO -PANGO_DIR=pango -else -PANGO_DIR= -endif - -if USE_DV1394 -DV1394_DIR=raw1394 -else -DV1394_DIR= -endif - -if USE_SDL -SDL_DIR=sdl -else -SDL_DIR= -endif - -if USE_SHOUT -SHOUT_DIR=shout -else -SHOUT_DIR= -endif - -if USE_SHOUT2 -SHOUT2_DIR=shout2 -else -SHOUT2_DIR= -endif - -if USE_SIDPLAY -SIDPLAY_DIR=sidplay -else -SIDDPLAY_DIR= -endif - -if USE_SMOOTHWAVE -SMOOTHWAVE_DIR=smoothwave -else -SMOOTHWAVE_DIR= -endif - -if USE_SNDFILE -SNDFILE_DIR=sndfile -else -SNDFILE_DIR= -endif - -if USE_SWFDEC -SWFDEC_DIR=swfdec -else -SWFDEC_DIR= -endif - -if USE_TARKIN -TARKIN_DIR=tarkin -else -TARKIN_DIR= -endif - -if USE_IVORBIS -IVORBIS_DIR=ivorbis -else -IVORBIS_DIR= -endif - -if USE_VORBIS -VORBIS_DIR=vorbis -else -VORBIS_DIR= -endif - -if USE_THEORA -THEORA_DIR=theora -else -THEORA_DIR= -endif - -if USE_XVID -XVID_DIR=xvid -else -XVID_DIR= -endif - -if USE_LIBPNG -SNAPSHOT_DIR=snapshot -else -SNAPSHOT_DIR= -endif - -if USE_SPEEX -SPEEX_DIR=speex -else -SPEEX_DIR= -endif - -if USE_XINE -XINE_DIR=xine -else -XINE_DIR= -endif +# if USE_MUSEPACK +# MUSEPACK_DIR=musepack +# else +# MUSEPACK_DIR= +# endif + +# if USE_MUSICBRAINZ +# MUSICBRAINZ_DIR=musicbrainz +# else +# MUSICBRAINZ_DIR= +# endif + +# if USE_NAS +# NAS_DIR=nas +# else +# NAS_DIR= +# endif + +# if USE_OGG +# OGG_DIR=ogg +# else +# OGG_DIR= +# endif + +# if USE_PANGO +# PANGO_DIR=pango +# else +# PANGO_DIR= +# endif + +# if USE_DV1394 +# DV1394_DIR=raw1394 +# else +# DV1394_DIR= +# endif + +# if USE_SDL +# SDL_DIR=sdl +# else +# SDL_DIR= +# endif + +# if USE_SHOUT +# SHOUT_DIR=shout +# else +# SHOUT_DIR= +# endif + +# if USE_SHOUT2 +# SHOUT2_DIR=shout2 +# else +# SHOUT2_DIR= +# endif + +# if USE_SIDPLAY +# SIDPLAY_DIR=sidplay +# else +# SIDDPLAY_DIR= +# endif + +# if USE_SMOOTHWAVE +# SMOOTHWAVE_DIR=smoothwave +# else +# SMOOTHWAVE_DIR= +# endif + +# if USE_SNDFILE +# SNDFILE_DIR=sndfile +# else +# SNDFILE_DIR= +# endif + +# if USE_SWFDEC +# SWFDEC_DIR=swfdec +# else +# SWFDEC_DIR= +# endif + +# if USE_TARKIN +# TARKIN_DIR=tarkin +# else +# TARKIN_DIR= +# endif + +# if USE_IVORBIS +# IVORBIS_DIR=ivorbis +# else +# IVORBIS_DIR= +# endif + +# if USE_XVID +# XVID_DIR=xvid +# else +# XVID_DIR= +# endif + +# if USE_LIBPNG +# SNAPSHOT_DIR=snapshot +# else +# SNAPSHOT_DIR= +# endif + +# if USE_SPEEX +# SPEEX_DIR=speex +# else +# SPEEX_DIR= +# endif + +# if USE_XINE +# XINE_DIR=xine +# else +# XINE_DIR= +# endif SUBDIRS=\ $(A52DEC_DIR) \ @@ -461,67 +443,4 @@ SUBDIRS=\ $(XVID_DIR) DIST_SUBDIRS=\ - a52dec \ - aalib \ - alsa \ - amrnb \ - arts \ - artsd \ - audiofile \ - audioresample \ - cairo \ - cdaudio \ - cdparanoia \ - dirac \ - directfb \ - divx \ - dts \ - dv \ - dvdread \ - dvdnav \ - esd \ - faac \ - faad \ - flac \ - gdk_pixbuf \ - gnomevfs \ - gsm \ - hermes \ - ivorbis \ - jack \ - jpeg \ - ladspa \ - lame \ - lcs \ - libcaca \ - libfame \ - libmng \ - libmms \ - libpng \ - libvisual \ - mad \ - mikmod \ - mpeg2dec \ - mpeg2enc \ - mplex \ - musepack \ - musicbrainz \ - nas \ - ogg \ - pango \ - polyp \ - raw1394 \ - sdl \ - snapshot \ - sndfile \ - shout \ - shout2 \ - sidplay \ - smoothwave \ - speex \ - swfdec \ - tarkin \ - theora \ - vorbis \ - xine \ - xvid + mad diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c index e5ebed55..886517cc 100644 --- a/gst/effectv/gstaging.c +++ b/gst/effectv/gstaging.c @@ -172,15 +172,15 @@ gst_agingtv_class_init (gpointer g_class, gpointer class_data) gobject_class = G_OBJECT_CLASS (g_class); videofilter_class = GST_VIDEOFILTER_CLASS (g_class); + gobject_class->set_property = gst_agingtv_set_property; + gobject_class->get_property = gst_agingtv_get_property; + #if 0 g_object_class_install_property (gobject_class, ARG_METHOD, g_param_spec_enum ("method", "method", "method", GST_TYPE_AGINGTV_METHOD, GST_AGINGTV_METHOD_1, G_PARAM_READWRITE)); #endif - gobject_class->set_property = gst_agingtv_set_property; - gobject_class->get_property = gst_agingtv_get_property; - videofilter_class->setup = gst_agingtv_setup; } diff --git a/gst/effectv/gstdice.c b/gst/effectv/gstdice.c index 3a376eb4..75c33772 100644 --- a/gst/effectv/gstdice.c +++ b/gst/effectv/gstdice.c @@ -173,13 +173,13 @@ gst_dicetv_class_init (gpointer g_class, gpointer class_data) dicetv_class->reset = gst_dicetv_reset_handler; + gobject_class->set_property = gst_dicetv_set_property; + gobject_class->get_property = gst_dicetv_get_property; + g_object_class_install_property (gobject_class, ARG_CUBE_BITS, g_param_spec_int ("square_bits", "Square Bits", "The size of the Squares", MIN_CUBE_BITS, MAX_CUBE_BITS, DEFAULT_CUBE_BITS, G_PARAM_READWRITE)); - gobject_class->set_property = gst_dicetv_set_property; - gobject_class->get_property = gst_dicetv_get_property; - videofilter_class->setup = gst_dicetv_setup; } diff --git a/gst/effectv/gstquark.c b/gst/effectv/gstquark.c index 76d53a09..fa15e8ad 100644 --- a/gst/effectv/gstquark.c +++ b/gst/effectv/gstquark.c @@ -94,9 +94,8 @@ static void gst_quarktv_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_quarktv_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static void gst_quarktv_dispose (GObject * object); -static void gst_quarktv_chain (GstPad * pad, GstData * _data); +static GstFlowReturn gst_quarktv_chain (GstPad * pad, GstBuffer * buffer); static GstElementClass *parent_class = NULL; @@ -159,31 +158,32 @@ gst_quarktv_class_init (GstQuarkTVClass * klass) parent_class = g_type_class_ref (GST_TYPE_ELEMENT); + gobject_class->set_property = gst_quarktv_set_property; + gobject_class->get_property = gst_quarktv_get_property; + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PLANES, g_param_spec_int ("planes", "Planes", "Number of frames in the buffer", 1, 32, PLANES, G_PARAM_READWRITE)); - gobject_class->set_property = gst_quarktv_set_property; - gobject_class->get_property = gst_quarktv_get_property; - gobject_class->dispose = gst_quarktv_dispose; - gstelement_class->change_state = gst_quarktv_change_state; } static GstPadLinkReturn -gst_quarktv_link (GstPad * pad, const GstCaps * caps) +gst_quarktv_link (GstPad * pad, GstPad * peer) { GstQuarkTV *filter; GstPad *otherpad; - gint i; - GstStructure *structure; - GstPadLinkReturn res; + + //gint i; + //GstStructure *structure; + //GstPadLinkReturn res; filter = GST_QUARKTV (gst_pad_get_parent (pad)); g_return_val_if_fail (GST_IS_QUARKTV (filter), GST_PAD_LINK_REFUSED); otherpad = (pad == filter->srcpad ? filter->sinkpad : filter->srcpad); +#if 0 res = gst_pad_try_set_caps (otherpad, caps); if (GST_PAD_LINK_FAILED (res)) return res; @@ -200,6 +200,7 @@ gst_quarktv_link (GstPad * pad, const GstCaps * caps) gst_buffer_unref (filter->planetable[i]); filter->planetable[i] = NULL; } +#endif return GST_PAD_LINK_OK; } @@ -210,7 +211,7 @@ gst_quarktv_init (GstQuarkTV * filter) filter->sinkpad = gst_pad_new_from_template (gst_static_pad_template_get (&gst_effectv_sink_template), "sink"); - gst_pad_set_getcaps_function (filter->sinkpad, gst_pad_proxy_getcaps); + //gst_pad_set_getcaps_function (filter->sinkpad, gst_pad_proxy_getcaps); gst_pad_set_chain_function (filter->sinkpad, gst_quarktv_chain); gst_pad_set_link_function (filter->sinkpad, gst_quarktv_link); gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad); @@ -218,7 +219,7 @@ gst_quarktv_init (GstQuarkTV * filter) filter->srcpad = gst_pad_new_from_template (gst_static_pad_template_get (&gst_effectv_src_template), "src"); - gst_pad_set_getcaps_function (filter->srcpad, gst_pad_proxy_getcaps); + //gst_pad_set_getcaps_function (filter->srcpad, gst_pad_proxy_getcaps); gst_pad_set_link_function (filter->srcpad, gst_quarktv_link); gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad); @@ -229,10 +230,9 @@ gst_quarktv_init (GstQuarkTV * filter) memset (filter->planetable, 0, filter->planes * sizeof (GstBuffer *)); } -static void -gst_quarktv_chain (GstPad * pad, GstData * _data) +static GstFlowReturn +gst_quarktv_chain (GstPad * pad, GstBuffer * buf) { - GstBuffer *buf = GST_BUFFER (_data); GstQuarkTV *filter; guint32 *src, *dest; GstBuffer *outbuf; @@ -244,9 +244,7 @@ gst_quarktv_chain (GstPad * pad, GstData * _data) area = filter->area; - outbuf = gst_buffer_new (); - GST_BUFFER_SIZE (outbuf) = area * sizeof (guint32); - GST_BUFFER_DATA (outbuf) = g_malloc (GST_BUFFER_SIZE (outbuf)); + outbuf = gst_pad_alloc_buffer (filter->srcpad, 0, area, GST_PAD_CAPS (pad)); dest = (guint32 *) GST_BUFFER_DATA (outbuf); GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf); @@ -266,12 +264,14 @@ gst_quarktv_chain (GstPad * pad, GstData * _data) dest[area] = (rand ? ((guint32 *) GST_BUFFER_DATA (rand))[area] : 0); } - gst_pad_push (filter->srcpad, GST_DATA (outbuf)); + gst_pad_push (filter->srcpad, outbuf); filter->current_plane--; if (filter->current_plane < 0) filter->current_plane = filter->planes - 1; + + return GST_FLOW_OK; } static GstElementStateReturn @@ -289,6 +289,8 @@ gst_quarktv_change_state (GstElement * element) gst_buffer_unref (filter->planetable[i]); filter->planetable[i] = NULL; } + g_free (filter->planetable); + filter->planetable = NULL; break; } default: @@ -362,20 +364,3 @@ gst_quarktv_get_property (GObject * object, guint prop_id, GValue * value, break; } } - -static void -gst_quarktv_dispose (GObject * object) -{ - GstQuarkTV *filter = GST_QUARKTV (object); - gint i; - - for (i = 0; i < filter->planes; i++) { - if (filter->planetable[i]) - gst_buffer_unref (filter->planetable[i]); - filter->planetable[i] = NULL; - } - g_free (filter->planetable); - filter->planetable = NULL; - - G_OBJECT_CLASS (parent_class)->dispose (object); -} diff --git a/gst/effectv/gstrev.c b/gst/effectv/gstrev.c index c385a058..a7f5dd42 100644 --- a/gst/effectv/gstrev.c +++ b/gst/effectv/gstrev.c @@ -171,6 +171,9 @@ gst_revtv_class_init (gpointer klass, gpointer class_data) gobject_class = G_OBJECT_CLASS (klass); videofilter_class = GST_VIDEOFILTER_CLASS (klass); + gobject_class->set_property = gst_revtv_set_property; + gobject_class->get_property = gst_revtv_get_property; + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_DELAY, g_param_spec_int ("delay", "Delay", "Delay in frames between updates", 1, 100, 1, G_PARAM_READWRITE)); @@ -181,9 +184,6 @@ gst_revtv_class_init (gpointer klass, gpointer class_data) g_param_spec_int ("gain", "Gain", "Control gain", 1, 200, 50, G_PARAM_READWRITE)); - gobject_class->set_property = gst_revtv_set_property; - gobject_class->get_property = gst_revtv_get_property; - videofilter_class->setup = gst_revtv_setup; } diff --git a/gst/effectv/gstvertigo.c b/gst/effectv/gstvertigo.c index e622eb57..cc3ed947 100644 --- a/gst/effectv/gstvertigo.c +++ b/gst/effectv/gstvertigo.c @@ -169,6 +169,9 @@ gst_vertigotv_class_init (GstVertigoTVClass * klass, gpointer class_data) klass->reset = gst_vertigotv_reset_handler; + gobject_class->set_property = gst_vertigotv_set_property; + gobject_class->get_property = gst_vertigotv_get_property; + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SPEED, g_param_spec_float ("speed", "Speed", "Control the speed of movement", 0.01, 100.0, 0.02, G_PARAM_READWRITE)); @@ -176,9 +179,6 @@ gst_vertigotv_class_init (GstVertigoTVClass * klass, gpointer class_data) g_param_spec_float ("zoom_speed", "Zoom Speed", "Control the rate of zooming", 1.01, 1.1, 1.01, G_PARAM_READWRITE)); - gobject_class->set_property = gst_vertigotv_set_property; - gobject_class->get_property = gst_vertigotv_get_property; - videofilter_class->setup = gst_vertigotv_setup; } diff --git a/gst/effectv/gstwarp.c b/gst/effectv/gstwarp.c index e54e7520..00bd7d00 100644 --- a/gst/effectv/gstwarp.c +++ b/gst/effectv/gstwarp.c @@ -173,15 +173,15 @@ gst_warptv_class_init (gpointer g_class, gpointer class_data) gobject_class = G_OBJECT_CLASS (g_class); videofilter_class = GST_VIDEOFILTER_CLASS (g_class); + gobject_class->set_property = gst_warptv_set_property; + gobject_class->get_property = gst_warptv_get_property; + #if 0 g_object_class_install_property (gobject_class, ARG_METHOD, g_param_spec_enum ("method", "method", "method", GST_TYPE_WARPTV_METHOD, GST_WARPTV_METHOD_1, G_PARAM_READWRITE)); #endif - gobject_class->set_property = gst_warptv_set_property; - gobject_class->get_property = gst_warptv_get_property; - videofilter_class->setup = gst_warptv_setup; } -- cgit