Commit graph

137 commits

Author SHA1 Message Date
Stefan Kost
67c21b18f4 ladspa,lv2: don't fail in plugin_init when having 0 elements
If we fail, the plugin scanner will blacklist us.
2010-04-26 15:07:16 +03:00
Sebastian Dröge
bd5ef2d21d ladspa: Fix compiler warnings 2010-03-22 13:50:30 +01:00
Benjamin Otte
010789159d Add -Wundef
and fix the warnings
2010-03-22 12:30:01 +01:00
Benjamin Otte
775c7584fd gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 22:46:41 +01:00
Stefan Kost
ebdf1c2a18 signalprocessor,lv2,ladspa: move sample-rate to baseclass
We need the sample-rate in baseclass for upcomming timestamp changes.
2010-02-01 22:32:32 +02:00
Stefan Kost
b3ac421b96 ladspa: simplify property registration
Don't do checking cast for each parameter. Use a running index.
2010-01-31 22:25:51 +02:00
Stefan Kost
99327869e2 ladspa: lookup GQuark just once and not for each plugin+1 2010-01-31 22:25:51 +02:00
Stefan Kost
ee2c1e6624 ladspa/lv2: link and init to gst-controller 2010-01-31 22:25:51 +02:00
Stefan Kost
a9ffdb5b47 ladspa: only use g_return_val_if_fail for checking pre-conditions
g_return_* can be disabled. Still we want to check for failed instance creation.
2009-11-19 21:11:36 +02:00
Stefan Kost
cd3b5d00cd ladspa: remove left-over comment 2009-11-19 21:11:35 +02:00
Stefan Kost
8a5e9a3363 signalprocessor: change _setup to pass whole caps and not just sampling_rate
This allows to get rid of the sampling_rate variable in the base-class. Also now
subclasses can modify the caps to actualy negotiate. This is needed to e.g. set
audio-channel positions.
2009-11-19 21:11:35 +02:00
Yaakov Selkowitz
fac1f741c3 signalprocessor: Use correct CFLAGS for the signalprocessor headers in LV2/LADSPA
This makes sure that the headers from the source tree are taken and not
accidentially installed system headers in the case of builddir!=srcdir.

Fixes bug .
2009-11-18 08:05:55 +01:00
Stefan Kost
38592a566d signalprocessor: don't set channel positions in template-caps, Fixes
Revert the changes that added audio positions to template caps. We have an un-
fortunate limitation in core that does not allow to do it. Keep a few things
commented out, so that the channel position can later on be set in setcaps.
2009-11-16 10:20:31 +02:00
Stefan Kost
c4190684c5 ladspa: don't reference freed pointer when building portnames 2009-10-24 15:14:25 +03:00
Dave Robillard
374d52d257 Multi-channel support with channel positions.
This queries port roles from the LV2 data and converts it into GStreamer
channel positions.  This should allow any type of multi-channel plugin
(including beyond stereo, e.g. surround) to work fine in GStreamer,
and with elements that require channel positions to be explicitly stated.
2009-09-17 09:46:49 +03:00
Dave Robillard
d051620fcc Fix typo in LADSPA element documentation. 2009-09-17 09:46:49 +03:00
Dave Robillard
403f58b562 Working multi-channel pads for LV2 plugins. 2009-09-17 09:46:48 +03:00
Sebastian Dröge
5a8e9cd080 signalprocessor: Fix various build/dist issues
Install the headers, version the library with @GST_MAJORMINOR@,
add all required libraries to _LIBADD instead of _LDFLAGS,
and add GST_*_LDFLAGS to _LDFLAGS.

Fixes bug .
2009-09-10 07:56:25 +02:00
Stefan Kost
87a97e24d4 docs: add docs for ladspa and update plugin docs
Add also inspect files for lv2 and frei0r (no docs yet).
2009-07-22 18:04:18 +03:00
Stefan Kost
a2a0322df9 signalprocessor: use $(top_builddir) instead of relative paths 2009-06-22 23:50:49 +03:00
Dave Robillard
ea184d72f5 Working LV2 plugin discovery.
- Separate gstsignalprocessor into a separate library (not sure if this
  is in the right place, but it works for now anyway)
- Create LV2 element based on LADSPA element, port most discovery
  functionality
2009-06-22 22:25:03 +03:00
Dave Robillard
1d464a7edd Fix inconsistent style (trivial test commit). 2009-06-22 22:24:48 +03:00
Stefan Kost
ebefc41614 ladspa: comment signalprocessor class more and do minor code cleanups 2009-03-25 23:04:13 +02:00
Wim Taymans
1546625294 ladspa: fix compilation when LRDF is missing
--
2009-03-06 11:08:18 +01:00
Stefan Kost
b31fa28906 ladspa: remove -ldl as we now use glibs gmodule. 2009-03-05 22:55:17 +02:00
Stefan Kost
eae238a125 ladspa: add initial liblrdf support.
Get classification from rdf metadata.
2009-03-05 22:37:52 +02:00
Stefan Kost
070ffb6940 ladspa: add LIBDIR/ladspa to search path and make path more portable
Use glib defines for searchpath separators. Filter searchpath to avoid scanning
path entries twice. Fix the return in ladspa_plugin_directory_search to return
wheter we found a plugin.
2009-03-04 15:10:30 +02:00
Stefan Kost
86c5975ebe ladspa: rewrite the directory scanning, fixes first part of
Move the two function from search.c into gstladspa.c and make them static.
Remove non needed arguments from function prototypes. Use glib api for
simplicity and portability.
2009-03-04 15:10:30 +02:00
Sebastian Dröge
797d918f70 ladspa: Don't compile unused code from load.c 2009-03-01 20:02:12 +01:00
Brian Cameron
c266d310af ext/ladspa/search.c: Avoid searching (null) paths or crashing on platforms where printing a
Original commit message from CVS:
Based on Patch by: Brian Cameron <brian dot cameron at sun dot com>
* ext/ladspa/search.c: (LADSPAPluginSearch):
Avoid searching (null) paths or crashing on platforms where printing a
NULL string segfaults. Fixes .
2009-01-08 17:57:19 +00:00
Sebastian Dröge
acd634eafa ext/ladspa/gstladspa.c: Add plugin dependency for the LADSPA plugin directories.
Original commit message from CVS:
* ext/ladspa/gstladspa.c: (plugin_init):
Add plugin dependency for the LADSPA plugin directories.
Fixes bug .
2009-01-08 09:40:22 +00:00
Stefan Kost
a14e8e07df Don't install static libs for plugins. Fixes for -bad.
Original commit message from CVS:
* ext/alsaspdif/Makefile.am:
* ext/amrwb/Makefile.am:
* ext/apexsink/Makefile.am:
* ext/arts/Makefile.am:
* ext/artsd/Makefile.am:
* ext/audiofile/Makefile.am:
* ext/audioresample/Makefile.am:
* ext/bz2/Makefile.am:
* ext/cdaudio/Makefile.am:
* ext/celt/Makefile.am:
* ext/dc1394/Makefile.am:
* ext/dirac/Makefile.am:
* ext/directfb/Makefile.am:
* ext/divx/Makefile.am:
* ext/dts/Makefile.am:
* ext/faac/Makefile.am:
* ext/faad/Makefile.am:
* ext/gsm/Makefile.am:
* ext/hermes/Makefile.am:
* ext/ivorbis/Makefile.am:
* ext/jack/Makefile.am:
* ext/jp2k/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/lcs/Makefile.am:
* ext/libfame/Makefile.am:
* ext/libmms/Makefile.am:
* ext/metadata/Makefile.am:
* ext/mpeg2enc/Makefile.am:
* ext/mplex/Makefile.am:
* ext/musepack/Makefile.am:
* ext/musicbrainz/Makefile.am:
* ext/mythtv/Makefile.am:
* ext/nas/Makefile.am:
* ext/neon/Makefile.am:
* ext/ofa/Makefile.am:
* ext/polyp/Makefile.am:
* ext/resindvd/Makefile.am:
* ext/sdl/Makefile.am:
* ext/shout/Makefile.am:
* ext/snapshot/Makefile.am:
* ext/sndfile/Makefile.am:
* ext/soundtouch/Makefile.am:
* ext/spc/Makefile.am:
* ext/swfdec/Makefile.am:
* ext/tarkin/Makefile.am:
* ext/theora/Makefile.am:
* ext/timidity/Makefile.am:
* ext/twolame/Makefile.am:
* ext/x264/Makefile.am:
* ext/xine/Makefile.am:
* ext/xvid/Makefile.am:
* gst-libs/gst/app/Makefile.am:
* gst-libs/gst/dshow/Makefile.am:
* gst/aiffparse/Makefile.am:
* gst/app/Makefile.am:
* gst/audiobuffer/Makefile.am:
* gst/bayer/Makefile.am:
* gst/cdxaparse/Makefile.am:
* gst/chart/Makefile.am:
* gst/colorspace/Makefile.am:
* gst/dccp/Makefile.am:
* gst/deinterlace/Makefile.am:
* gst/deinterlace2/Makefile.am:
* gst/dvdspu/Makefile.am:
* gst/festival/Makefile.am:
* gst/filter/Makefile.am:
* gst/flacparse/Makefile.am:
* gst/flv/Makefile.am:
* gst/games/Makefile.am:
* gst/h264parse/Makefile.am:
* gst/librfb/Makefile.am:
* gst/mixmatrix/Makefile.am:
* gst/modplug/Makefile.am:
* gst/mpeg1sys/Makefile.am:
* gst/mpeg4videoparse/Makefile.am:
* gst/mpegdemux/Makefile.am:
* gst/mpegtsmux/Makefile.am:
* gst/mpegvideoparse/Makefile.am:
* gst/mve/Makefile.am:
* gst/nsf/Makefile.am:
* gst/nuvdemux/Makefile.am:
* gst/overlay/Makefile.am:
* gst/passthrough/Makefile.am:
* gst/pcapparse/Makefile.am:
* gst/playondemand/Makefile.am:
* gst/rawparse/Makefile.am:
* gst/real/Makefile.am:
* gst/rtjpeg/Makefile.am:
* gst/rtpmanager/Makefile.am:
* gst/scaletempo/Makefile.am:
* gst/sdp/Makefile.am:
* gst/selector/Makefile.am:
* gst/smooth/Makefile.am:
* gst/smoothwave/Makefile.am:
* gst/speed/Makefile.am:
* gst/speexresample/Makefile.am:
* gst/stereo/Makefile.am:
* gst/subenc/Makefile.am:
* gst/tta/Makefile.am:
* gst/vbidec/Makefile.am:
* gst/videodrop/Makefile.am:
* gst/videosignal/Makefile.am:
* gst/virtualdub/Makefile.am:
* gst/vmnc/Makefile.am:
* gst/y4m/Makefile.am:
* sys/acmenc/Makefile.am:
* sys/cdrom/Makefile.am:
* sys/dshowdecwrapper/Makefile.am:
* sys/dshowsrcwrapper/Makefile.am:
* sys/dvb/Makefile.am:
* sys/dxr3/Makefile.am:
* sys/fbdev/Makefile.am:
* sys/oss4/Makefile.am:
* sys/qcam/Makefile.am:
* sys/qtwrapper/Makefile.am:
* sys/vcd/Makefile.am:
* sys/wininet/Makefile.am:
* win32/common/config.h:
Don't install static libs for plugins. Fixes  for -bad.
2008-11-04 12:42:30 +00:00
Stefan Kost
bc94bc26be ext/ladspa/gstladspa.c: Whitespace.
Original commit message from CVS:
* ext/ladspa/gstladspa.c:
Whitespace.
* ext/ladspa/gstsignalprocessor.c:
Add a FIXME:. not sure if this code does the forwarding correctly.
2008-10-30 13:02:18 +00:00
Sebastian Dröge
7f21077a80 Link the ladspa plugin with -ldl. It's needed for dlopen() and friends for loading the ladspa plugins and previously ...
Original commit message from CVS:
* configure.ac:
* ext/ladspa/Makefile.am:
Link the ladspa plugin with -ldl. It's needed for dlopen() and friends
for loading the ladspa plugins and previously was linked in by
gmodule. Fixes bug .
2008-07-21 16:03:11 +00:00
Stefan Kost
6ad41986af ext/ladspa/: Add some thoughts and FIXME's.
Original commit message from CVS:
* ext/ladspa/gstladspa.c:
* ext/ladspa/gstsignalprocessor.c:
Add some thoughts and FIXME's.
2008-03-20 15:54:23 +00:00
Sebastian Dröge
96d74fb23a ext/ladspa/gstladspa.c: Don't use GST_BOILERPLATE as the stuff generated from it is not used anyway and can't be used.
Original commit message from CVS:
* ext/ladspa/gstladspa.c: (gst_ladspa_base_init),
(gst_ladspa_class_init), (ladspa_describe_plugin), (plugin_init):
Don't use GST_BOILERPLATE as the stuff generated from it is not used
anyway and can't be used.
Store the class struct of the correct type in parent_class.
Pass the LADSPA_Descriptor as class_data to the class_init function
as preparation for the time, when we can add pad templates and friends
in class_init and add a FIXME for that.
Don't use a custom hash table for passing the LADSPA_Descriptors to
base_init but use g_type_set_qdata and g_type_get_qdata.
2008-02-04 19:15:39 +00:00
Sebastian Dröge
aa4139370a ext/ladspa/gstsignalprocessor.c: Don't unref the pad template after adding it. gst_element_class_add_pad_template tak...
Original commit message from CVS:
* ext/ladspa/gstsignalprocessor.c:
(gst_signal_processor_class_add_pad_template):
Don't unref the pad template after adding it.
gst_element_class_add_pad_template takes ownership of it.
2008-02-04 11:48:50 +00:00
Sebastian Dröge
73cc44a5e8 Fix 'xyz may be used uninitialized' compiler warnings caused by broken g_assert_not_reached() macro in GLib-2.15.x an...
Original commit message from CVS:
* ext/ladspa/gstladspa.c: (gst_ladspa_get_property):
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_show_frame):
* gst/mve/gstmvemux.c: (gst_mve_mux_request_new_pad):
* sys/dvb/dvbbasebin.c: (dvb_base_bin_class_init):
Fix 'xyz may be used uninitialized' compiler warnings caused
by broken g_assert_not_reached() macro in GLib-2.15.x and don't
abort() in any case but properly report the error.
2007-12-29 17:31:49 +00:00
Stefan Kost
b414b128c6 ext/ladspa/gstladspa.c: Don't leak like hell.
Original commit message from CVS:
* ext/ladspa/gstladspa.c:
Don't leak like hell.
2007-08-16 07:07:41 +00:00
Tim-Philipp Müller
bc8d60a4e3 Fix build with LDFLAGS='-Wl,-z,defs'.
Original commit message from CVS:
* configure.ac:
* ext/gsm/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/wavpack/Makefile.am:
* gst/equalizer/Makefile.am:
* gst/filter/Makefile.am:
* gst/mve/Makefile.am:
* gst/nsf/Makefile.am:
* gst/replaygain/Makefile.am:
* gst/speed/Makefile.am:
Fix build with LDFLAGS='-Wl,-z,defs'.
2007-02-24 22:52:48 +00:00
Stefan Kost
75337844d9 Fix classification in GstElementDetails.
Original commit message from CVS:
* ext/alsaspdif/alsaspdifsink.c:
* gst/nsf/gstnsf.c:
Fix classification in GstElementDetails.
* ext/ladspa/gstladspa.c: (gst_ladspa_base_init),
(gst_ladspa_class_init):
Improve Klassification and reduce code slighly.
2007-01-31 08:16:59 +00:00
Stefan Kost
7328c54698 ext/ladspa/: add GstController support to ladspa
Original commit message from CVS:
* ext/ladspa/Makefile.am:
* ext/ladspa/gstladspa.c: (gst_ladspa_class_get_param_spec):
add GstController support to ladspa
2007-01-28 17:35:13 +00:00
Andy Wingo
57f11c5ed8 ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate)
Original commit message from CVS:
2007-01-12  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate)
(gst_signal_processor_ouija_caps, gst_signal_processor_prepare):
Remove fixate/ouija stuff, thankfully, due to the new
part-negotiation.txt pull-mode negotiation scheme.
(gst_signal_processor_setcaps_pull)
(gst_signal_processor_setcaps): Implement upstream set_caps pull
proxying for pull mode. Now this works: ladspa-sine-fcac !
audioconvert ! alsasink.
2007-01-12 21:58:43 +00:00
Andy Wingo
2b5fdf422e ext/ladspa/gstsignalprocessor.c
Original commit message from CVS:
2007-01-06  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.c
(gst_signal_processor_ouija_caps): Move around in the source
file...
(gst_signal_processor_prepare, gst_signal_processor_do_pulls):
Call ouija_caps in prepare() instead of do_pulls(), a bit earlier.
This allows us to have caps when we do the pad_alloc_buffer().
(gst_pad_alloc_buffer_and_set_caps): Use self->caps instead of the
pad caps, which might not be set yet.
2007-01-06 17:22:12 +00:00
Andy Wingo
24df4ce38b ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_add_pad_from_template)
Original commit message from CVS:
2007-01-06  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.c:
(gst_signal_processor_add_pad_from_template)
(gst_signal_processor_fixate): Add a fixate function, to assist in
pathological ladspa-sine-fcac ! fakesink can-activate-pull=true
cases.
(gst_signal_processor_prepare, gst_signal_processor_process): Add
nframes args so that getrange can tell ladspa how many frames to
process.
(gst_signal_processor_ouija_caps): setcaps needs to be called
before processing, which normally happens when chaining a buffer
to a pad. However in getrange mode with no sinks we need to check
explicitly for this condition, guess some caps to use, and use
those to setcaps(). Hence this mystical function.
(gst_signal_processor_do_pulls): Pull in bytes, not samples.
Divine the caps if necessary.
(gst_signal_processor_getrange): Interpret the length as bytes,
not samples.
(gst_signal_processor_chain): nframes=G_MAXUINT, will be limited
by incoming buffer sizes.
2007-01-06 15:56:55 +00:00
Wim Taymans
446a05bb1d ext/ladspa/gstsignalprocessor.c: Reset flow_state back to _OK after a flush stop so that we exit our error state afte...
Original commit message from CVS:
* ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps),
(gst_signal_processor_event):
Reset flow_state back to _OK after a flush stop so that we exit our
error state after the flush. Fixes 
2006-12-18 15:51:54 +00:00
Andy Wingo
4fb8a95581 ext/ladspa/gstsignalprocessor.c: Make ladspa elements reusable. Fixes .
Original commit message from CVS:
Patch by: Andy Wingo <wingo at pobox dot com>
* ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setup),
(gst_signal_processor_start), (gst_signal_processor_stop),
(gst_signal_processor_cleanup), (gst_signal_processor_setcaps),
(gst_signal_processor_pen_buffer), (gst_signal_processor_flush),
(gst_signal_processor_do_pulls), (gst_signal_processor_do_pushes),
(gst_signal_processor_change_state):
Make ladspa elements reusable. Fixes .
2006-08-16 16:50:00 +00:00
Wim Taymans
1fd9e983f3 ext/ladspa/gstladspa.c: Convert ' ' into '_'. Try to keep as many characters in the padtemplate names as possible.
Original commit message from CVS:
* ext/ladspa/gstladspa.c: (gst_ladspa_base_init):
Convert ' ' into '_'. Try to keep as many characters in the padtemplate
names as possible.
2006-08-16 15:33:12 +00:00
Wim Taymans
f12aed235d ext/ladspa/gstsignalprocessor.c: A push() gives away our refcount so we should not use the buffer on the pen anymore.
Original commit message from CVS:
* ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_flush),
(gst_signal_processor_do_pushes):
A push() gives away our refcount so we should not use the buffer on the
pen anymore.
2006-08-16 14:47:50 +00:00
Andy Wingo
9bf2b5e3db ext/ladspa/gstsignalprocessor.h: Add infrastructure for storing whether a processor can work in place or not, and for...
Original commit message from CVS:
2006-08-04  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.h: Add infrastructure for storing
whether a processor can work in place or not, and for keeping
track of its state. Change the FlowReturn instance variable from
"state" to "flow_state", all callers changed.

* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setup)
(gst_signal_processor_start, gst_signal_processor_stop)
(gst_signal_processor_cleanup): New functions to manage the
processor's state.
(gst_signal_processor_setcaps): start() as well as setup() here.
(gst_signal_processor_prepare): Respect CAN_PROCESS_IN_PLACE.
(gst_signal_processor_change_state): Stop and cleanup the
processor as we go to NULL.

* ext/ladspa/gstladspa.c (gst_ladspa_base_init): Reuse buffers if
INPLACE_BROKEN is not set.

* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_prepare):
Do the alloc_buffer in bytes, not frames.
2006-08-04 11:38:54 +00:00