Commit graph

131 commits

Author SHA1 Message Date
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 #602161.
2009-11-18 08:05:55 +01:00
Stefan Kost
38592a566d signalprocessor: don't set channel positions in template-caps, Fixes #601775
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 #594715.
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 #573370
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 #567004.
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 #566878.
2009-01-08 09:40:22 +00:00
Stefan Kost
a14e8e07df Don't install static libs for plugins. Fixes #550851 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 #550851 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 #543848.
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 #374213
2006-12-18 15:51:54 +00:00
Andy Wingo
4fb8a95581 ext/ladspa/gstsignalprocessor.c: Make ladspa elements reusable. Fixes #350006.
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 #350006.
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
Andy Wingo
71cad18c5e BPB
Original commit message from CVS:
(gst_signal_processor_src_activate_pull): BPB
2006-08-04 09:20:26 +00:00
Andy Wingo
4f5257d42d ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setcaps) (gst_signal_processor_prepare) (gst_signal_processor_u...
Original commit message from CVS:
2006-08-04  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setcaps)
(gst_signal_processor_prepare)
(gst_signal_processor_update_inputs)
(gst_signal_processor_process, gst_signal_processor_pen_buffer)
(gst_signal_processor_flush)
(gst_signal_processor_sink_activate_push)
(gst_signal_processor_src_activate_pull)
(gst_signal_processor_change_state): Remove the last of the code
that assumes that we process whole buffers at a time. Fix some
debugging. Seems to work now in some cases.
2006-08-04 09:05:53 +00:00
Andy Wingo
c98740d77a ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process): Fix nframes-choosing.
Original commit message from CVS:
2006-08-01  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process):
Fix nframes-choosing.
(gst_signal_processor_init): Init pending_in and pending_out.
2006-07-31 22:27:22 +00:00
Andy Wingo
199ffb130f ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): No more default sample rate, although we never check tha...
Original commit message from CVS:
2006-08-01  Andy Wingo  <wingo@pobox.com>

* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): No
more default sample rate, although we never check that the sample
rate actually gets set. Something for the future.
(gst_signal_processor_setcaps): Some refcount fixes, flow fixes.
(gst_signal_processor_event): Refcount fixen.
(gst_signal_processor_process): Pull the number of frames to
process from the sizes of the buffers in the input pens.
(gst_signal_processor_pen_buffer): Remove an incorrect FIXME :)
(gst_signal_processor_do_pulls): Add an nframes argument, and use
it instead of buffer_frames.
(gst_signal_processor_getrange): Refcount fixen, pass nframes on
to do_pulls.
(gst_signal_processor_chain)
(gst_signal_processor_sink_activate_push)
(gst_signal_processor_src_activate_pull):  Refcount fixen.

* ext/ladspa/gstsignalprocessor.h: No more buffer_frames, yay.
2006-07-31 22:03:09 +00:00
Stefan Kost
f05aaeac15 ext/ladspa/gstsignalprocessor.c: don't query buffer-frames from caps, add lots of debug-log, try fix for assert (#349...
Original commit message from CVS:
* ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps),
(gst_signal_processor_process):
don't query buffer-frames from caps, add lots of debug-log,
try fix for assert (#349189)
2006-07-31 19:44:18 +00:00
Stefan Kost
5e12c7fcab ext/ladspa/gstsignalprocessor.c: Add debugs logs here and there, add more error handling, add some
Original commit message from CVS:
* ext/ladspa/gstsignalprocessor.c:
(gst_signal_processor_add_pad_from_template),
(gst_signal_processor_init), (gst_signal_processor_setcaps),
(gst_signal_processor_process), (gst_signal_processor_pen_buffer),
(gst_signal_processor_do_pulls), (gst_signal_processor_getrange),
(gst_signal_processor_sink_activate_push),
(gst_signal_processor_src_activate_pull),
(gst_signal_processor_change_state):
Add debugs logs here and there, add more error handling, add some
FIXME comments, filed #349189
2006-07-29 16:32:26 +00:00