This is an ad-hoc release that is almost identical to 0.10.34:
* work around GLib atomic ops API change
* some minor win32/mingw fixes
* don't use G_CONST_RETURN in public headers
Highlights:
- new parser base class: GstBaseParse
- new core element: funnel
- OSX multi-arch fixes
- new QoS type for QoS events
- new progress message API to notify applications of asynchronous operations
- countless other fixes and improvements
This reverts commit 3a59d416af.
Reverting this, as the feature we bumped the requirement for
didn't actually work properly or help with the issue we were
trying to fix (and it was fixed differently in the end).
This feature turns intra library calls into direct function calls and thus makes
them a little faster. The downside is that this causes problems for e.g.
LD_PRELOAD based tools. Thus add a configure option to turn it off.
Adds 2 variants for the gst_date_time_from_unix_epoch function,
one for UTC and another for local time.
API: gst_date_time_new_from_unix_epoch_utc
API: gst_date_time_new_from_unix_epoch_local_time
Fixes#653031https://bugzilla.gnome.org/show_bug.cgi?id=635031
Only try to build (pseudo-)C++ unit test if a working C++ compiler has been
found, otherwise the build will fail. (We do this to make sure our headers
are 'C++ clean').
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used). A useful side
effect of this is also that the PKG_CONFIG_PATH environment
is now logged in the configure output.
This first checks what is required for ISO C99 support and sets the relevant
compiler parameters and if no C99 compiler is found, it checks for a
C89 compiler. This enables us to check for and use C89/C99 functions
that gcc hides from us without the correct compiler parameters.
Apparently gcc warns that GstMiniObject is not castable to
GstEvent/Message/Buffer due to them containing 64bit variables, even
though ARM hackers claim that those only need 4byte alignment. And as
long as gcc behaves that way, this warning is not very useful.
So we'll remove the warning until this problem is fixed.
https://bugzilla.gnome.org/show_bug.cgi?id=615698
Check for ability to divide uint128_t values, since that what
we actually use it for (in gstutils.c). The existence of a
uint128_t type doesn't mean the compiler can actually generate
code for it. Also make sure that we can actually link the
result successfully.
Fixes bug #614767.
This is how we do it in the other modules, and gets rid of the annoying
dirty status for common when doing git status (at least once you clean
out the old files from there).
prctl is supposed to take 5 arguments. It used to work with 2 arguments on some
versions of libc because it is defined as a varags function there.
See #611911
It triggers for a lot of GStreamer API (even though those triggers are
wrong most of the time).
I missed it because it only triggers with -O2, and I was using -O0.
None of these flags cause warnings anymore, so no fixes necessary.
The flags are:
-Wformat-nonliteral
-Wformat-security
-Wold-style-definition
-Wcast-align
-Winline
-Winit-self
-Wmissing-include-dirs
-Waddress
-Waggregate-return
-Wno-multichar
-Wnested-externs
The alignment guaranteed by malloc is not always sufficient. E.g. vector
instructions or hardware subsystems want specifically aligned buffers. The
attached patch will use posix_memalign if available to allocate buffers.
The desired alignment can be set when running configure using the new
--with-buffer-alignment option.
This changes some APIs in compatible ways:
- Some functions now take "const char *" arguments, not "char *"
- Some structs now have "conts char *" members, not "char *"
The changes may cause warnings when compiling with the right warning
flags. You've been warned.
Also adds -Wwrite-strings as a warning flag in configure.ac.
https://bugzilla.gnome.org/show_bug.cgi?id=611692
Adds that warning to configure.ac
Includes a tiny change of the GST_BOILERPLATE_FULL() macro:
The get_type() function is no longer declared before being defined.
https://bugzilla.gnome.org/show_bug.cgi?id=611692
Add check to make sure gst-plugin-scanner really gets installed where
we will look for it later, ie. paths and prefixes are set at configure
time and not specified via make.
Fixes#609941.
We require threads to be supported in any case and defining this
will simplify the mutex, condition variable, etc. macros from gthread
to not always check if threads are really supported.
Fixes bug #607481.
Move SHAVE_INIT behind all other checks, in particular AG_GST_CHECK_CHECKS.
This should fix problems with header checking and checking for localtime_r,
which causes compilation errors with clean checkouts where common/shave has
not been created yet when those checks are run. It seems like SHAVE_INIT
changes the environment so that checks depending on a compiler need shave
to exist at that point, which will fail if AC_OUTPUT hasn't created it yet.
Fixes#605930.
and install into a different directory $(libexecdir/gstreamer-0.10) so that
everything is versioned properly.
NOTE: run 'make clean' after updating; if you are running an uninstalled setup,
you will need to update your gst-uninstalled script (unless it's symlinked
to gstreamer core master) and exit/enter your uninstalled environment to get
the updated environment. If you are running an installed setup, you should
run 'make uninstall' before merging this change or remove the old
plugin-scanner binary manually.
Fixes#601698.
Add a simple version check when starting the plugin-scanner so we can
verify we're talking to one that talks the same language.
First try a plugin-scanner in the installed path, then try one via the
GST_PLUGIN_SCANNER env var if that doesn't work.
Update the uninstalled script.
Install the plugin-scanner to the libexec dir
This is available in newer gcc releases and it should only exist
on platforms that provide some native 128bit integer arithmetic
instructions.
The x86-64 assembly for this is still kept for non-gcc compilers
that don't provide __uint128_t magic.
This tests 100000 random multiplications/divisions of all scaling
function variants and compares the result with the result that is
generated by GMP on the same input.
For this check for GSL and GMP during configure but only use
it for this single unit test.
Testing functions were provided by Kipp Cannon <kcannon@ligo.caltech.edu>
Since the registry doesn't use libxml2 any longer, it's no longer necessary
to disable both xml load/save *and* the registry to get rid of the libxml2
dependency, disabling just xml loading/saving is enough. Fixes#590841.
Remove AC_C_INLINE check, so we don't end up with an #undef inline in
config.h, which causes problems with some versions of MSCV apparently.
GLib defines inline for us in a suitable way already anyway.
Fixes#584835.
While we're at it, also update the other win32 files to git (bump
version, add new defines and enums).
This reverts commit 31c09d738c.
Reverting this, since it breaks autogen.sh for me on debian sid.
Failure is: "libtool 2.2 requires autopoint 0.17 or higher" even though
0.17 was found.
The printf extension mechanism changed in glibc 2.10, and the older
register_printf_function is deprecated. Detect and use the new
mechanism where available.
When its disabled, we poison some symbols to force a build error if they are
used. Dunno how useful this acually is, but we need to disable the poisoning
when we include this ourself. Also don't define some of the dummies, as they
are getting replaced with defines and that creates code that does not compile.
Generate win32/common/config.h-new directly from config.h.in,
using shell variables in configure and some hard-coded information.
Change top-level makefile so that 'make win32-update' copies the
generated file to win32/common/config.h, which we keep in source
control. It's kept in source control so that the git tree is
buildable from VS.
Link libgstreamer with $(LIBM) as it uses math functions.
Add a configure check for socket and nsl library and add
them to LIBS if they're found. This is needed on Solaris
for socket() and gethostbyname().
Original commit message from CVS:
* configure.ac:
Apparently AC_CONFIG_MACRO_DIR breaks when using more
than one macro directory, reverting last change.
Original commit message from CVS:
Patch by: Cygwin Ports maintainer
<yselkowitz at users dot sourceforge dot net>
* autogen.sh:
* configure.ac:
Require gettext 0.17 because older versions don't mix with libtool
2.2. At build time an older gettext version will still work.
Fixes bug #556091.
Original commit message from CVS:
Gah. Commit pre-release info that should have gone in last week already.
2008-09-10 Jan Schmidt <jan.schmidt@sun.com>
* configure.ac:
0.10.20.2 pre-release
* po/LINGUAS:
* po/id.po:
* po/pt_BR.po:
New translations.
Original commit message from CVS:
* configure.ac:
Do not probe availability of check unit test library when cross
compiling, as test would not work anyway. Also cleanup verbose output
of the check test. Fixes#551952.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer.types:
Revert 'accidential' change of the configure option removal. We still
need to generate the types file in configure --disable-load-save.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* docs/gst/gstreamer.types.in:
* gst/Makefile.am:
* gst/gst.c:
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_index_func):
* gst/gstconfig.h.in:
* gst/gstelement.c: (gst_element_get_index):
* gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
(gst_registry_binary_load_feature),
(gst_registry_binary_read_cache):
* gst/gstregistryxml.c: (load_feature),
(gst_registry_xml_read_cache), (gst_registry_xml_save_feature):
* plugins/Makefile.am:
* tools/gst-indent:
* tools/gst-inspect.c: (print_index_info), (print_element_list),
(print_plugin_features), (print_element_features):
* tools/gst-xmlinspect.c: (print_event_masks),
(print_element_info):
* win32/common/gstconfig.h:
Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere.
Disabling the indexers and URI handler code will only reduce the
required amount of memory by a very small amount but on the other hand
requires much more maintaince work. Apart from that many places of
code are broken when disabling them.
Disabling the enum types doesn't reduce the required amount of memory
by more than a few bytes and makes it hard to fix bugs like #539772,
i.e. use the enums as GObject properties.
Original commit message from CVS:
* configure.ac:
Remove AC_ISC_POSIX macro; it's broken on some platforms and not needed.
Add check (taken from -base) for winsock, adds WIN32_LIBS
* gst/Makefile.am:
Add WIN32_LIBS to LIBADD for libgstreamer. Needed now that gstpoll uses
winsock.
Define GST_EXPORTS when building libgstreamer (only used on win32)
* gst/gst_private.h:
* gst/gstinfo.h:
Use GST_EXPORT instead of locally-defined (and incorrect IMPORT_SYMBOL)
for symbols that we need to export in both these files.
* gst/gstpoll.c:
Include gst_private.h higher up to avoid some compile problems on win32.
Original commit message from CVS:
* configure.ac:
Show configuration sumary after configure run. Based on patch by
Luc Pionchon <luc.pionchon@nokia.com>. Fixes: #540134
Original commit message from CVS:
* configure.ac:
* gst/gstpreset.c:
Rename DATADIR to GST_DATADIR to avoid build problems
on win32. Patch By: David Schleef <ds@schleef.org>
Fixes: #536857
Original commit message from CVS:
* configure.ac:
Explicitely link with -ldl if dladdr() is found there. Before it was
implicitely linked by the gmodule pkgconfig file but in glib 2.17.0
-ldl has moved from Libs to Libs.private. Fixes bug #536744.
Original commit message from CVS:
* configure.ac:
After discussion on IRC use the binary registry as default
but allow to disable it with --disable-binary-registry.
* win32/common/libgstreamer.def:
Add the two new symbols for the binary registry.
Original commit message from CVS:
2008-04-11 Julien Moutte <julien@fluendo.com>
Mac OS X love...
* configure.ac: Merge platform specific defines, introduce a new
define on OS X to remember that forking when updating registry is
unsafe.
* docs/faq/gst-uninstalled: Updated to include gst-libs in the bad
module.
* gst/gst.c: Don't fork when updating registry if GST_HAVE_UNSAFE_FORK
is defined.
* gst/gstregistry.c: (gst_registry_scan_path_level): Fixed a bogus
condition that leads to absolutely no plugins being registered on
OS X.
Original commit message from CVS:
2008-04-01 Julien Moutte <julien@fluendo.com>
patch by: Jason Zhao <E3423C@motorola.com>
* configure.ac: Add a configure switch to disable option parsing
in gst_init.
Fixes#522882.
Original commit message from CVS:
* configure.ac:
* gst/gstregistry.c:
MacOS has plugins under .so or under .dylib. Add detection for MacOS
and handle this case.
* gst/gst.c:
Add a comment here describing, why we stat each plugin and not try to
be smart.
Original commit message from CVS:
* configure.ac:
* gst/gst_private.h:
* gst/gstconfig.h.in:
* gst/gstregistry.h:
* gst/gstregistrybinary.c:
* win32/common/gstconfig.h:
Move registry backend API to private headers where we can. Add
fixme-0.11 comments for the others. Add stubs for the xml backend when
using the binary to ensure they functions exists (they should not be
used though). Fixes#520756.
Original commit message from CVS:
* configure.ac:
* gst/gstconfig.h.in:
* gst/gstregistry.h:
Fix broken use of config.h-defined preprocessor directive in a public
header file. Add a corresponding define to gstconfig.h, since we can't
really remove those function declarations from the header file now
(or can we? and why are they there in the first place?).
Original commit message from CVS:
* configure.ac:
Add checks for poll, ppoll and pselect.
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
Add docs for GstPoll.
* gst/Makefile.am:
* gst/gst.h:
* gst/gstpoll.c: (find_index), (selectable_fds),
(pollable_timeout), (choose_mode), (pollfd_to_fd_set),
(fd_set_to_pollfd), (gst_poll_new), (gst_poll_free),
(gst_poll_set_mode), (gst_poll_get_mode),
(gst_poll_add_fd_unlocked), (gst_poll_add_fd),
(gst_poll_remove_fd), (gst_poll_fd_ctl_write),
(gst_poll_fd_ctl_read_unlocked), (gst_poll_fd_ctl_read),
(gst_poll_fd_has_closed), (gst_poll_fd_has_error),
(gst_poll_fd_can_read_unlocked), (gst_poll_fd_can_read),
(gst_poll_fd_can_write), (gst_poll_wait),
(gst_poll_set_controllable), (gst_poll_restart),
(gst_poll_set_flushing):
* gst/gstpoll.h:
Add generic poll abstraction. We ideally don't want to have this in core
here but in glib intead...
This code will be used in various network elements and ultimately for
the nanosecond precision monotonic clock (that's why it's here in core).
It'll allow us to implement cancelable socket operations for windows too.
* tests/check/Makefile.am:
* tests/check/gst/gstpoll.c: (test_poll_wait), (GST_START_TEST),
(delayed_stop), (delayed_restart), (delayed_flush),
(delayed_control), (gst_poll_suite):
Add GstPoll unit test.
Original commit message from CVS:
* configure.ac:
Don't set GST_CACHE_DIR and allow to set it by a configure parameter.
We're not in 0.8 times anymore.
Original commit message from CVS:
* configure.ac:
Make DISABLE_DEPRECATED defined *only* during CVS, not during
pre-releases or releases.
* docs/faq/gst-uninstalled:
Add gst-plugins-gl
* docs/random/release:
Change one of the steps - we only upload core & base to Gnome FTP
Original commit message from CVS:
* configure.ac:
Use AC_TRY_COMPILE instead of AC_TRY_RUN to check for
_POSIX_TIMER, _POSIX_MONOTONIC_CLOCK, etc. Makes configure
not fail when trying to crosscompile on OpenEmbedded (#511750).
Original commit message from CVS:
* autogen.sh:
Add -Wno-portability to the automake parameters to stop warnings
about GNU make extensions being used. We require GNU make in almost
every Makefile anyway.
* configure.ac:
Use AM_PROG_CC_C_O as a compiler that accepts both -c and -o
at the same time is required for per target flags.
Original commit message from CVS:
Based on Patch by: Laurent Glayal <spglegle at yahoo dot fr>
* configure.ac:
Check for stdio_ext.h for the filesink changes.
* plugins/elements/gstfilesink.c: (buffer_mode_get_type),
(gst_file_sink_class_init), (gst_file_sink_init),
(gst_file_sink_dispose), (gst_file_sink_set_property),
(gst_file_sink_get_property), (gst_file_sink_open_file),
(gst_file_sink_close_file):
* plugins/elements/gstfilesink.h:
Add two properties to control the buffering mode and size.
API: GstFileSink::buffer-mode
API: GstFileSink::buffer-size
Original commit message from CVS:
* configure.ac:
* gst/gstdebugutils.c:
* gst/gstinfo.c:
Apply the posix-timer check from #361155. Conditionally use the posix
timer for logging. This gives better timestamp precission, less
overhead and no ntp jitter.
Original commit message from CVS:
* configure.ac:
Ugly hack to put the (recently removed and non-portable, apparently)
-Wl,--export-dynamic back into libgstcheck's LDFLAGS when we're using
GNU ld, because without that 'make check' fails miserably on my debian
stable box. Someone with more knowledge of linker intricacies and
portability issues than me fix this properly please.
Original commit message from CVS:
* configure.ac:
* libs/gst/check/Makefile.am:
Use a custom export symbol regex for libgstcheck, as it needs
to export symbols that don't match the standard GStreamer gst_*
pattern, and --export-dynamic is not portable (only works on
GNU ld)
* libs/gst/check/gstcheck.c: (gst_check_setup_src_pad),
(gst_check_setup_sink_pad):
Make sure to pass a message parameter to the fail_* macros.
* tests/check/gst/gstinfo.c: (GST_START_TEST):
Fix some compiler warnings.
Original commit message from CVS:
* configure.ac:
Revert the pkg-config check for libcheck, since it pulls in the
wrong non-PIC libcheck.a on Ubuntu and probably Fedora too. We need
a proper solution, either from the check project, or something else.
Original commit message from CVS:
Patch by: Peter Kjellerstedt <Peter.Kjellerstedt@axis.com>
* configure.ac:
Fix AM_CONDITIONAL(GST_DISABLE_GST_DEBUG,...) and update comment.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* gst/Makefile.am:
* gst/gstconfig.h.in:
* gst/gstobject.c: (gst_object_class_init),
(gst_signal_object_class_init):
* gst/gstobject.h:
2nd attempt to have a xml-less build as a joined effort of #413123
and #421480.
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gstconfig.h.in:
Drop libxml2 dependency when building with
--enable-binary-registry --disable-loadsave
Original commit message from CVS:
* configure.ac:
* tests/examples/Makefile.am:
Compile adapter test/example only if the required headers are
available (fixes#391915).
Original commit message from CVS:
* configure.ac:
* gst/gst.c: (init_pre):
Add some basic system details such as OS and architecture
to the debug output if possible, courtesy of uname().
Original commit message from CVS:
=== release 0.10.11 ===
2006-12-06 Jan Schmidt <thaytan@mad.scientist.com>
* configure.ac:
releasing 0.10.11, "Love never runs on time"
Original commit message from CVS:
* Makefile.am:
* configure.ac:
* libs/gst/base/gstadapter.c: (gst_adapter_clear),
(gst_adapter_push), (gst_adapter_peek_into), (gst_adapter_peek),
(gst_adapter_flush), (gst_adapter_take), (gst_adapter_take_buffer):
* libs/gst/base/gstadapter.h:
* tests/check/libs/adapter.c: (create_and_fill_adapter),
(GST_START_TEST), (gst_adapter_suite):
* tests/examples/Makefile.am:
Do some optimisation work in GstAdapter to avoid copies in more cases.
It could still do slightly better by merging buffers when
gst_buffer_is_span_fast is true, but is already faster.
Also, avoid traversing a single-linked list to append each incoming
buffer inside the adapter.
Add simple test app that times the adapter behaviour in different
situations, and extend the unit test to check that bytes enter and
exit the adapter in their original order.
Original commit message from CVS:
2006-10-05 Zaheer Abbas Merali <zaheerabbas at merali dot org>
Patch by: Josep Torre Valles <josep@fluendo.com>
* common/m4/gst-error.m4:
* configure.ac:
* libs/gst/net/Makefile.am:
Fix a compilation issue with Forte on Solaris. inet_aton is in
libresolv.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* gst/gstconfig.h.in:
* gst/gstelement.h:
* gst/gstinfo.h:
Add GST_USING_PRINTF_EXTENSION to gstconfig.h so that we know
whether we can use G_GNUC_PRINTF in other header files and at
least check the printf format/arguments of debug messages and
GST_ELEMENT_ERROR messages when the printf extension is not
being used.
Replace more tabs with spaces in gstinfo.h and remove two spurious
function declarations in GST_DISABLE_DEBUG part with macros.
Original commit message from CVS:
* configure.ac:
Don't pull in gmodule-2.0.pc as a dependency in our .pc files - we
want gmodule-no-export-2.0.pc instead so that we don't drag in
--export-dynamic on every project that links to GStreamer.
Also, make our export regex only match the start of symbols, rather
than any symbol that contains '_gst' somewhere.
* libs/gst/check/Makefile.am:
The libgstcheck we build does however need export-dynamic, as it
produces some symbols that don't match our _gst... style regex.
Original commit message from CVS:
* configure.ac:
* docs/manual/advanced-autoplugging.xml:
* tests/examples/Makefile.am:
* tests/examples/manual/.cvsignore:
* tests/examples/manual/Makefile.am:
* tests/examples/manual/extract.pl:
Extract the manual examples again like we used to do.
Fix one of them.
Original commit message from CVS:
2006-08-11 Andy Wingo <wingo@pobox.com>
* configure.ac:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packetizer_new):
* tests/check/libs/gdp.c: (gst_dp_suite): GST_DISABLE_DEPRECATED
is only for users of API that don't want to see deprecated
functions in the headers; people that want to compile out
deprecated code should pass -DGST_REMOVE_DEPRECATED into the
CFLAGS. Fixes the build of multifdsink, or will soon..
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* gst/gstconfig.h.in:
* gst/gstinfo.c: (_gst_debug_init), (gst_debug_print_segment),
(_gst_info_printf_extension_ptr),
(_gst_info_printf_extension_segment):
API: add GST_SEGMENT_FORMAT, which is a printf extension we
register that lets us easily dump GstSegments into debug
logs (#350419).
* tests/check/gst/gstinfo.c: (segment_printf_extension_log_func),
(info_segment_format_printf_extension), (gst_info_suite):
Add simple unit test that logs a bunch of different segments (not
valgrinded at the moment because of leaks in gst_debug_add_log_function).
Original commit message from CVS:
* Makefile.am:
* configure.ac:
* gst-element-check.m4:
* gst-element-check.m4.in:
Make gst-element-check-$VERSION.m4 call gst-inspect-$VERSION
instead of the unversioned gst-inspect (#324176, #168659).
Original commit message from CVS:
* configure.ac:
don't set CFLAGS and friends for gcov, done from GST_GCOV now
* tests/check/Makefile.am:
clean up gcov files
Original commit message from CVS:
* configure.ac:
set CFLAGS and friends to -O0 if gcov is being used
add GCOV LIBS
* gst/Makefile.am:
* libs/gst/base/Makefile.am:
* libs/gst/check/Makefile.am:
* libs/gst/controller/Makefile.am:
* libs/gst/dataprotocol/Makefile.am:
* libs/gst/net/Makefile.am:
* plugins/elements/Makefile.am:
* plugins/indexers/Makefile.am:
add makefile rules to generate gcov data and clean up
* tests/check/Makefile.am:
add a coverage target that generates an html overview
of coverage data
Original commit message from CVS:
* autogen.sh:
Add default for new --enable-plugin-docs switch.
* configure.ac:
Use new GST_PLUGIN_DOCS macro to check for pyxml etc.
Fixes#344039.
* docs/Makefile.am:
Use new ENABLE_PLUGIN_DOCS conditional.
Original commit message from CVS:
* gst/gst.c: (init_post):
if we have fork, fork while reading/rebuilding the registry
so the parent doesn't take the hit of having all plugins loaded
in memory. Fixes#342777.
* configure.ac:
Check if we have fork()
* win32/common/config.h.in:
no fork() on win32