Original commit message from CVS:
* sys/sunaudio/gstsunaudio.c: (plugin_init):
* sys/sunaudio/gstsunaudiomixertrack.c:
(gst_sunaudiomixer_track_new):
Actually translate sunaudio mixer track labels instead of just
marking the strings as translatable (#377306); clean up weird
label string mapping code that serves no apparent purpose. Also
set the 'untranslated-label' property when creating mixer tracks
if the GstMixerTrack base class supports this.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/sunaudio.c: (GST_START_TEST),
(sunaudio_suite):
Very minimalistic unit test for sunaudiomixer element (compiles, but not
actually tested on a system where sunaudiomixer is available).
Original commit message from CVS:
reviewed by: Stefan Kost <ensonic@users.sf.net>
* gst/audiofx/Makefile.am:
* gst/audiofx/audiodynamic.c:
(gst_audio_dynamic_characteristics_get_type),
(gst_audio_dynamic_mode_get_type),
(gst_audio_dynamic_set_process_function),
(gst_audio_dynamic_base_init), (gst_audio_dynamic_class_init),
(gst_audio_dynamic_init), (gst_audio_dynamic_set_property),
(gst_audio_dynamic_get_property), (gst_audio_dynamic_setup),
(gst_audio_dynamic_transform_hard_knee_compressor_int),
(gst_audio_dynamic_transform_hard_knee_compressor_float),
(gst_audio_dynamic_transform_soft_knee_compressor_int),
(gst_audio_dynamic_transform_soft_knee_compressor_float),
(gst_audio_dynamic_transform_hard_knee_expander_int),
(gst_audio_dynamic_transform_hard_knee_expander_float),
(gst_audio_dynamic_transform_soft_knee_expander_int),
(gst_audio_dynamic_transform_soft_knee_expander_float),
(gst_audio_dynamic_transform_ip):
* gst/audiofx/audiodynamic.h:
* gst/audiofx/audiofx.c: (plugin_init):
Add new audiodynamic element which can act as a compressor or
expander. Supported are hard-knee and soft-knee operation modes with
user-specified ratio and threshold.
Attack and release parameters are not yet implemented but will follow.
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/gst-plugins-good-plugins.args:
* docs/plugins/inspect/plugin-audiofx.xml:
Integrate audiodynamic into the docs.
* tests/check/Makefile.am:
* tests/check/elements/audiodynamic.c: (setup_dynamic),
(cleanup_dynamic), (GST_START_TEST), (dynamic_suite), (main):
Add unit test for audiodynamic.
Original commit message from CVS:
* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad),
(gst_id3demux_sink_activate):
Don't leak caps: make gst_id3demux_add_srcpad() not take ownership of the
caps passed to it (previouslly one code path assumes it takes ownership
while another one assumes it doesn't).
* configure.ac:
* tests/files/Makefile.am:
* tests/files/id3-407349-1.tag:
* tests/files/id3-407349-2.tag:
Add directory where data for unit tests can be stored.
* tests/Makefile.am:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/id3demux.c: (pad_added_cb), (error_cb),
(read_tags_from_file), (run_check_for_file),
(check_date_1977_06_23), (GST_START_TEST), (id3demux_suite):
Add unit test for id3demux, and in particular for bug #407349. Only
testing pull-mode for now; push mode doesn't work yet because the test
files are smaller than ID3_TYPE_FIND_MIN_SIZE.
Original commit message from CVS:
* gst/spectrum/demo-audiotest.c: (message_handler):
* gst/spectrum/demo-osssrc.c: (message_handler):
Remove two obsolete and confusing comments.
Original commit message from CVS:
* tests/check/Makefile.am:
Gah! Also disable gconfvideosink from the tests, otherwise
it will instantiate autovideosink, and dfbvideosink and
leak on the buildbots.
Original commit message from CVS:
* tests/check/Makefile.am:
Disable autovideosink so the buildbots don't barf over memory
leaked in the directfb sink.
Original commit message from CVS:
* tests/check/Makefile.am:
Disable cacasink from the states check too - it also calls exit(1)
on us when it can't find a terminal to talk to.
Original commit message from CVS:
* tests/check/Makefile.am:
Disable aasink in the states test. I suspect this is the element that
is calling exit(1) when it can't proceed.
Original commit message from CVS:
* tests/check/Makefile.am:
Draw plugins in from the build tree sys/ dir, rather than picking
up the already installed versions.
Original commit message from CVS:
* gst/videocrop/gstvideocrop.c:
(gst_video_crop_get_image_details_from_caps),
(gst_video_crop_transform_packed_complex):
Fix cropping for packed 4:2:2 formats YUYV/YUY2 and UYVY.
* tests/icles/videocrop-test.c: (check_bus_for_errors),
(test_with_caps), (main):
Block streaming thread before changing filter caps while the
pipeline is running so that we don't get random not-negotiated
errors just because GStreamer can't handle that yet.
Original commit message from CVS:
reviewed by: Stefan Kost <ensonic@users.sf.net>
* gst/audiofx/Makefile.am:
* gst/audiofx/audioamplify.c:
(gst_audio_amplify_clipping_method_get_type),
(gst_audio_amplify_base_init), (gst_audio_amplify_class_init),
(gst_audio_amplify_init), (gst_audio_amplify_set_process_function),
(gst_audio_amplify_set_property), (gst_audio_amplify_get_property),
(gst_audio_amplify_set_caps),
(gst_audio_amplify_transform_int_clip),
(gst_audio_amplify_transform_int_wrap_negative),
(gst_audio_amplify_transform_int_wrap_positive),
(gst_audio_amplify_transform_float_clip),
(gst_audio_amplify_transform_float_wrap_negative),
(gst_audio_amplify_transform_float_wrap_positive),
(gst_audio_amplify_transform_ip):
* gst/audiofx/audioamplify.h:
* gst/audiofx/audiofx.c: (plugin_init):
Add new element "audioamplify". This allows scaling of raw audio
samples, similar to the "volume" element, but provides different modes
for clipping and allows unlimited amplification. It's mainly targeted
for creative sound design and not as a replacement of the "volume"
element. Fixes#397162
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/gst-plugins-good-plugins.args:
* docs/plugins/inspect/plugin-audiofx.xml:
Add docs for audioamplify and integrate them into the build system
* tests/check/Makefile.am:
* tests/check/elements/audioamplify.c: (setup_amplify),
(cleanup_amplify), (GST_START_TEST), (amplify_suite), (main):
Add fairly extensive unit test suite for audioamplify
Original commit message from CVS:
reviewed by: Stefan Kost <ensonic@users.sf.net>
* gst/audiofx/Makefile.am:
* gst/audiofx/audiofx.c: (plugin_init):
* gst/audiofx/audioinvert.c: (gst_audio_invert_base_init),
(gst_audio_invert_class_init), (gst_audio_invert_init),
(gst_audio_invert_set_property), (gst_audio_invert_get_property),
(gst_audio_invert_set_caps), (gst_audio_invert_transform_int),
(gst_audio_invert_transform_float),
(gst_audio_invert_transform_ip):
* gst/audiofx/audioinvert.h:
Add new audiofx element "audioinvert". This element swaps the upper
and lower half of samples and can be used for example for a
wide-stereo effect. Fixes#396057
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/gst-plugins-good-plugins.args:
* docs/plugins/inspect/plugin-audiofx.xml:
Add docs for the audioinvert element and add them to the build system.
* tests/check/Makefile.am:
* tests/check/elements/audioinvert.c: (setup_invert),
(cleanup_invert), (GST_START_TEST), (invert_suite), (main):
Add unit test suite for the audioinvert element.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* gst/avi/gstavimux.c: (gst_avi_mux_finalize),
(gst_avi_mux_pad_reset), (gst_avi_mux_reset), (gst_avi_mux_init),
(gst_avi_mux_vidsink_set_caps), (gst_avi_mux_audsink_set_caps),
(gst_avi_mux_request_new_pad), (gst_avi_mux_release_pad),
(gst_avi_mux_riff_get_avi_header),
(gst_avi_mux_riff_get_avix_header), (gst_avi_mux_riff_get_header),
(gst_avi_mux_write_avix_index), (gst_avi_mux_add_index),
(gst_avi_mux_bigfile), (gst_avi_mux_start_file),
(gst_avi_mux_stop_file), (gst_avi_mux_handle_event),
(gst_avi_mux_do_buffer), (gst_avi_mux_do_one_buffer),
(gst_avi_mux_change_state):
* gst/avi/gstavimux.h:
* tests/check/elements/avimux.c: (teardown_src_pad):
Add support for more than one audio stream; write better AVIX
header; refactor code a bit; don't announce vorbis caps on our audio
sink pads since we don't support it anyway. Closes#379298.
Original commit message from CVS:
* tests/icles/videocrop-test.c: (main):
Call g_thread_init() right at the beginning. Remove superfluous
gst_init() - we've already been inited via the GOption stuff.
Original commit message from CVS:
* tests/check/elements/videocrop.c: (GST_START_TEST),
(videocrop_test_cropping_init_context):
When we can't create an element needed for the test, print a message
detailing which element it actually is that's missing (#390673).
Original commit message from CVS:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init),
(gst_matroska_mux_request_new_pad):
Use GST_DEBUG_FUNCPTR; activate request pad before returning it.
* tests/check/elements/matroskamux.c: (setup_src_pad),
(setup_sink_pad), (GST_START_TEST):
Activate pads before using them.
Original commit message from CVS:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_set_wp_config):
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_create_src_pad):
* gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_create_pads):
* tests/check/elements/wavpackparse.c: (wavpackparse_found_pad):
Activate pads before adding them to running element.
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_add_srcpad):
* gst/icydemux/gsticydemux.c: (gst_icydemux_add_srcpad):
* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad):
Activate pad before adding it to the already-running element.
* tests/check/elements/icydemux.c: (icydemux_found_pad):
Activate newly-created pad too.
Original commit message from CVS:
* tests/icles/.cvsignore:
* tests/icles/Makefile.am:
* tests/icles/videocrop-test.c: (quit_mainloop), (tick_cb),
(test_with_caps), (video_crop_get_test_caps), (main):
Visual test for videocrop, shows that packed yuv doesn't work right
yet. --with-ffmpegcolorspace option doesn't work yet for unknown
reasons (another basetransform issue?)
Original commit message from CVS:
* tests/check/Makefile.am:
Disable autodetect test temporarily, so that the build bots
update -bad and the ranks of unreliable video sinks in there.
* tests/check/elements/autodetect.c: (GST_START_TEST):
Skip test if no usable videosink is found.
Original commit message from CVS:
* gst/autodetect/gstautoaudiosink.c:
(gst_auto_audio_sink_base_init):
* gst/autodetect/gstautovideosink.c:
(gst_auto_video_sink_base_init):
Make static pad templates static to appease valgrind's leak
detector.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/autodetect.c: (GST_START_TEST),
(autodetect_suite):
Add simple test for the ghostpad lockup on shutdown fixed in core
CVS (audio bit disabled because it would need dozens of alsa
suppressions and I'm too lazy to add those now).
Original commit message from CVS:
* gst/icydemux/gsticydemux.c: (gst_icydemux_reset),
(gst_icydemux_typefind_or_forward):
* gst/icydemux/gsticydemux.h:
When we merge/collect multiple incoming buffers for typefinding
purposes, keep an initial 0 offset on the first outgoing buffer
as well (otherwise id3demux won't work right). Fixes#345449.
Also Make buffer metadata writable before setting buffer caps.
* tests/check/elements/icydemux.c: (typefind_succeed),
(cleanup_icydemux), (push_data), (GST_START_TEST),
(icydemux_suite):
Small test case for the above.
Original commit message from CVS:
* gst/spectrum/demo-osssrc.c: (draw_spectrum), (main):
Use more defines
* gst/spectrum/gstspectrum.c: (gst_spectrum_init),
(gst_spectrum_dispose), (gst_spectrum_set_caps),
(gst_spectrum_transform_ip):
* gst/spectrum/gstspectrum.h:
Apply some of the spectrum cleanup changes suggested in #348085.
Original commit message from CVS:
* configure.ac:
Bump requirements of -base (videocrop test case needs this).
* gst/videocrop/gstvideocrop.c:
Document sloppy handling of subsampled chroma planes if
left/top cropping is an odd number.
* tests/check/elements/videocrop.c: (handoff_cb),
(videocrop_test_cropping_init_context),
(videocrop_test_cropping_deinit_context),
(videocrop_test_cropping), (check_1x1_buffer), (GST_START_TEST),
(videocrop_suite), (main):
Add another unit test that crops the input to 1x1 (and checks
that that pixel has the expected values in a number of formats).
Original commit message from CVS:
* tests/check/elements/videocrop.c: (handoff_cb),
(buffer_probe_cb), (test_caps_transform), (test_passthrough),
(notgst_value_list_get_nth_int), (videocrop_suite):
More tests: check passthrough mode and caps transform in
both directions with fixed values, ranges and lists.
Original commit message from CVS:
Patch by: Alessandro Decina <alessandro at nnva dot org>
* ext/annodex/gstannodex.c: (gst_annodex_granule_to_time):
Do some extra sanity checks.
Fixes#350340.
* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_change_state),
(gst_cmml_enc_parse_tag_head), (gst_cmml_enc_parse_tag_clip),
(gst_cmml_enc_push_clip), (gst_cmml_enc_push):
Check if clip->start_time is valid before adding the clip to the
track list.
Reset enc->preamble going from PAUSED to READY.
Don't use GST_FLOW_UNEXPECTED for wrong usage of the element, it is
only used for EOS.
Only post an error message if we were the one that created the fatal
GstFlowReturn value.
* ext/annodex/gstcmmlutils.c: (gst_cmml_clock_time_from_npt),
(gst_cmml_clock_time_to_granule), (gst_cmml_track_list_has_clip):
Parse the seconds field of the npt-sec time format using %llu rather than
%d and check that the value scaled by GST_SECOND doesn't overflow.
Use guint64(s) to represent the keyindex and keyoffset fields of a granulepos.
Lookup a clip's track with clip->track rather than clip->id which
makes no sense.
Identify a clip by its track and start time and not its xml id.
do some more input checking and make sure we don't do undefined shifts.
* tests/check/elements/cmmldec.c: (setup_cmmldec),
(teardown_cmmldec), (check_output_buffer_is_equal), (push_data),
(cmml_tag_message_pop), (check_headers), (push_clip_full),
(push_clip), (push_empty_clip), (check_output_clip),
(GST_START_TEST), (cmmldec_suite):
* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
(teardown_cmmlenc), (check_output_buffer_is_equal), (push_data),
(check_headers), (push_clip), (check_clip_times), (check_clip),
(check_empty_clip), (GST_START_TEST), (cmmlenc_suite):
Added some more checks.
Original commit message from CVS:
* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_class_init),
(gst_audio_panorama_set_property),
(gst_audio_panorama_get_property),
(gst_audio_panorama_transform_m2s_int),
(gst_audio_panorama_transform_s2s_int),
(gst_audio_panorama_transform_m2s_float),
(gst_audio_panorama_transform_s2s_float):
* gst/audiofxgood/audiopanorama.h:
* tests/check/elements/audiopanorama.c: (GST_START_TEST):
Make also the pan-property float (saves scaling and yields better
resolution)
Original commit message from CVS:
* tests/check/Makefile.am:
Don't try to run annodex unit tests if the annodex
plugin has not been built (Fixes#351116).
Original commit message from CVS:
* ext/taglib/gstid3v2mux.cc:
Make UTF-8 the default encoding when writing string
tags (before, our UTF-8 strings would automatically
be converted to ISO-8859-1 by taglib and written as
ISO-8859-1 fields if that was possible).
* tests/check/elements/id3v2mux.c: (utf8_string_in_buf),
(test_taglib_id3mux_check_tag_buffer), (identity_cb),
(test_taglib_id3mux_with_tags):
Add test case that makes sure our UTF-8 strings have
actually been written into the tag as UTF-8.
Original commit message from CVS:
* gst/spectrum/demo-audiotest.c: (on_window_destroy),
(draw_spectrum), (message_handler), (main):
* gst/spectrum/demo-osssrc.c: (on_window_destroy), (draw_spectrum),
(message_handler), (main):
port to use message to get results, cleanly exit when closing the window
* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
(gst_spectrum_init), (gst_spectrum_dispose),
(gst_spectrum_set_property), (gst_spectrum_get_property),
(gst_spectrum_set_caps), (gst_spectrum_start),
(gst_spectrum_message_new), (gst_spectrum_transform_ip):
* gst/spectrum/gstspectrum.h:
port to derive from basetransform and send results via messages
(like level element)
Original commit message from CVS:
* tests/examples/level/Makefile.am:
Add -lm to LIBS for pow() function, don't assume one of our
dependencies (such as libxml-2.0) drags it in automatically
(#343603).
Original commit message from CVS:
* ext/taglib/gstid3v2mux.cc:
Handle writing of track-count or album-volume-count without
track-number or albume-volume-number (in this case the number
will just be set to 0).
* tests/check/elements/id3v2mux.c: (test_taglib_id3mux_check_tags):
It would be nice if we actually checked the values received for
track/album-volume number/count in _check_tags(), rather than
setting them again ...
Original commit message from CVS:
* gst/spectrum/Makefile.am:
Link to base libraries
* gst/spectrum/demo-osssrc.c: (main):
use new threshhold property
* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
(gst_spectrum_init), (gst_spectrum_dispose),
(gst_spectrum_set_property), (gst_spectrum_set_sink_caps),
(gst_spectrum_get_sink_caps), (gst_spectrum_chain),
(gst_spectrum_change_state):
* gst/spectrum/gstspectrum.h:
Use gst_adapter, support multiple-channels, add threshold property for
result, add docs, fix resulting spectrum range (was including mirrored
results)
Original commit message from CVS:
Some changes proposed by wingo in bug #338818 (but not everything yet). Patch from Martin Rubli to fix framerate detection.
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_init),
(gst_tag_demux_sink_event):
* gst/id3demux/gstid3demux.c: (gst_id3demux_init),
(gst_id3demux_sink_event):
Post an error message when we get an EOS event and were not
able to find out the type of stream.
* tests/check/elements/id3v2mux.c: (fill_mp3_buffer), (got_buffer),
(test_taglib_id3mux_with_tags):
Decrease num-buffers to 16 per iteration again, otherwise the
many memcpy()s and reallocations in the test will hammer slow
CPUs completely and make the test timeout.
Original commit message from CVS:
* configure.ac:
figure out where plugins-base plugins are
* tests/check/Makefile.am:
use plugins-base plugins, so we have typefind functions
* tests/check/elements/id3v2mux.c: (test_taglib_id3mux_with_tags):
increase num-buffers, this makes sure the test errors out instead
of timing out when no typefind functions are present
Original commit message from CVS:
* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_set_header_on_caps):
Use copies of header buffers for caps to avoid circular refcounting
problems (as in theoradec, vorbisdec).
* tests/check/elements/cmmldec.c: (GST_START_TEST):
Fix a typo in test that meant it was testing the wrong thing.
* tests/check/elements/cmmlenc.c: (check_headers):
Fix refcount checks now that we use buffer-copies for caps.
Original commit message from CVS:
2006-04-07 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* tests/icles/ximagesrc-test.c: (main):
Actually assert that pipeline goes to playing
Original commit message from CVS:
2006-02-25 Alessandro Decina <alessandro@nnva.org>
* ext/annodex/Makefile.am:
* ext/annodex/gstannodex.c:
* ext/annodex/gstcmmldec.c:
* ext/annodex/gstcmmlenc.c:
* ext/annodex/gstcmmlparser.c:
* ext/annodex/gstcmmlparser.h:
* ext/annodex/gstcmmlutils.c:
* tests/check/elements/cmmldec.c:
* tests/check/elements/cmmlenc.c:
Fix a memleak in gst_cmml_track_list_add_clip.
Handle overflows in clip's start and end times.
Add the "encoded" parameter to cmmldec and cmmlenc caps.
Do not parse junk at the end of a CMML preamble buffer.
Register a libxml error handler to not print stuff on stderr.
Check for bad clip start and end times in the testsuites.
Original commit message from CVS:
2006-02-25 Julien MOUTTE <julien@moutte.net>
* tests/check/Makefile.am:
* tests/check/elements/cmmldec.c:
* tests/check/elements/cmmlenc.c: Fix tests so that they use
the plugins-base tags.
Original commit message from CVS:
* tests/check/elements/matroskamux.c: (setup_src_pad):
Collectpads in core got changed and now also holds a
reference to any pad that is part of it. Fix refcount
checks in test case accordingly.
Original commit message from CVS:
Patch by: Michal Benes <michal.benes@xeris.cz>
* check/Makefile.am:
* gst/matroska/ebml-write.c: (gst_ebml_write_seek):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_handle_src_event),
(gst_matroska_mux_audio_pad_setcaps), (gst_matroska_mux_start):
add a unit test for matroskamux
fix the bugs that the unit test exposed
Original commit message from CVS:
* check/elements/level.c: (GST_START_TEST):
fix test for new GstClockTime use
* gst/level/gstlevel.c: (gst_level_init), (gst_level_set_caps),
(gst_level_transform_ip):
* gst/level/gstlevel.h:
fix up the decay peak, ensuring the decay peak is never lower
than the peak for that interval
Original commit message from CVS:
Andrewio Patrickoforus Wingonymus - 5 additional tests for your sins
Add a regression test for level and fix a casting bug that made the additional
channels turn out wrong
Original commit message from CVS:
2005-07-04 Andy Wingo <wingo@pobox.com>
* examples/level/:
* examples/level/Makefile.am:
* examples/level/README:
* examples/level/demo.c:
* examples/level/plot.c: Examples moved out of the source dir. Not
updated tho.
* configure.ac: Add level to the build.
* gst/level/Makefile.am:
* gst/level/gstlevel.h:
* gst/level/gstlevel.c: Cleaned up, ported to 0.9.
Original commit message from CVS:
* gst/spectrum/Makefile.am:
* gst/spectrum/demo-osssrc.c: (spectrum_chain), (main),
(idle_func):
Fix demo and reenable it. Yes, I'm currently playing with audio
analysis tools
Original commit message from CVS:
* configure.ac: Add sunaudio
* examples/Makefile.am: make gstplay depend on gconf
* gst/ffmpegcolorspace/gstffmpegcodecmap.c: Remove c99-isms
* gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette),
(convert_table_lookup), (img_convert): remove c99-isms
* gst/ffmpegcolorspace/imgconvert_template.h: make a constant
unsigned, to fix a warning on Solaris
* gst/mpeg1sys/systems.c: bcopy->memcpy
* gst/rtjpeg/RTjpeg.c: (RTjpeg_yuvrgb8): bcopy->memcpy
* sys/Makefile.am: Add sunaudio
Original commit message from CVS:
* removal of //-style comments
* don't link plugins to core libs -- the versioning is done internally to the plugins with the plugin_info struct,
and symbol resolution is lazy, so we can always know if a plugin can be loaded by the plugin_info data. in theory.