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