Commit graph

912 commits

Author SHA1 Message Date
Nirbheek Chauhan
22b892b44f gstconfig: Decide GST_EXPORT declaration style at build time
We only use GST_EXPORT consistently when building with MSVC by using the
visual studio definitions files (win32/common/*.def), so always disable
it when building with Autotools and only enable it with Meson when
building with MSVC.

This allows you to use MinGW to link to a GStreamer built with MSVC and
get the correct function prototypes to find functions and variables in
DLLs.
2016-08-26 15:20:50 +01:00
Nirbheek Chauhan
6ef601367e gstconfig.h: Detect unaligned access support at compile-time
This makes gstconfig.h completely arch-independent. Should cover all
compilers that gstreamer is known to build on, and all architectures
that I could find information on. People are encouraged to file bugs if
their platform/arch is missing.
2016-08-13 10:29:31 +01:00
Tim-Philipp Müller
e2cd6ffafc Remove old alloc tracing code now that we have a GstTracer-based replacement
It's been internal API only in 1.x.
2016-08-13 10:10:30 +01:00
Guillaume Desmottes
1ed4140d00 leaks tracer: use G_OS_UNIX to check for signal support
Checking for signal.h is not good enough as it's present in Windows.
Those signals are UNIX specific anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 12:38:46 +03:00
Guillaume Desmottes
17c37efa83 leaks tracer: add creation stack trace support
This allow us to provide the trace of leaked objects making it easier
to debug.

https://bugzilla.gnome.org/show_bug.cgi?id=767862
2016-07-08 12:07:53 +03:00
Guillaume Desmottes
53d2e8c977 leaks tracer: log alive objects when receiving SIGUSR1
We don't want to automatically catch signals so use an env variable to
enable this feature.

https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 11:23:38 +03:00
Sebastian Dröge
52b1d7f42d Back to development 2016-07-06 13:50:56 +03:00
Sebastian Dröge
af5c9cbb20 Release 1.9.1 2016-07-06 13:05:02 +03:00
Nirbheek Chauhan
48088867db win32: Don't use dllexport/import when only building statically
If the prototypes in the public API have dllimport in them when building
statically on Windows, the compiler will look for symbols with symbol
mangling and indirection corresponding to a DLL. This will cause a build
failure when trying to link tests/examples/etc.

External users of GStreamer also need to define -DGST_STATIC_COMPILATION
if they want to link to static gstreamer libraries on Windows.

A similar version of this patch has been committed to all gstreamer
repositories.

https://bugzilla.gnome.org/show_bug.cgi?id=767463
2016-06-23 23:39:45 +01:00
Sebastian Dröge
2a023cdc14 configure: Remove unneeded parenthesis from AG_GST_CHECK_CHECKS 2016-03-25 12:59:57 +02:00
Sebastian Dröge
c2507ac86e Back to development 2016-03-24 13:32:41 +02:00
Sebastian Dröge
1abf889ddd Release 1.8.0 2016-03-24 11:49:08 +02:00
Sebastian Dröge
b6859ed71f Release 1.7.91 2016-03-15 11:56:10 +02:00
Sebastian Dröge
e505e1e6cd Release 1.7.90 2016-03-01 18:14:03 +02:00
Sebastian Dröge
9092fce0b0 Back to development 2016-02-19 12:38:21 +02:00
Sebastian Dröge
9e33bfa2c7 Release 1.7.2 2016-02-19 11:47:52 +02:00
Tim-Philipp Müller
8b88fc487f gst.h: Don't spew warnings if GST_USE_UNSTABLE_API is not defined
Only hide GstTracer and GstTracerRecord API behind GST_USE_UNSTABLE_API,
but don't spew any warnings, otherwise everyone has to define this
to avoid compiler warnings.

This reverts parts of commit 89ee5d948d.
2016-01-16 16:00:16 +00:00
Stefan Sauer
89ee5d948d tracer: add a GFlag for the tracer scope
Port all tracers. Add the GST_USE_UNSTABLE_API flag to the internal CFLAGS so
that we don't have to specify this for gir, docs, mkenum, ...
2016-01-16 13:31:51 +01:00
Stefan Sauer
e5ca47236e configure: add a new option to disable the tracer hooks
This was previously done via {enable,disable}-gst-debug. Since both subsystems
are independent having separate options is better.
2016-01-06 11:33:34 +01:00
Sebastian Dröge
a65e18d890 Back to development 2015-12-24 15:27:12 +01:00
Sebastian Dröge
2a188848eb Release 1.7.1 2015-12-24 13:58:52 +01:00
Koop Mast
6bf15b9d96 configure: Make -Bsymbolic check work with clang.
Update the -Bsymbolic check with the version glib has. This version
works with clang.

https://bugzilla.gnome.org/show_bug.cgi?id=759713
2015-12-21 12:24:11 +01:00
Sebastian Dröge
1efb451154 Use new GST_ENABLE_EXTRA_CHECKS #define
https://bugzilla.gnome.org/show_bug.cgi?id=756870
2015-10-21 14:31:56 +03:00
Stefan Sauer
d626c5b996 Revert "tracers: Only build getrusage() tracer if RUSAGE_THREAD is available"
This reverts commit 8ddbf76626.
2015-10-07 12:22:34 +02:00
Sebastian Dröge
8ddbf76626 tracers: Only build getrusage() tracer if RUSAGE_THREAD is available 2015-10-07 11:13:28 +01:00
Stefan Sauer
fc9392c10f rusage: add a new rusage tracer
The tracer hooks up to all probes and logs resource usage figures.
2015-10-05 20:59:39 +02:00
Stefan Sauer
4e5d586c7d tracer: initial prototype for the tracing subsystem 2015-10-05 20:59:39 +02:00
Sebastian Dröge
3e8ef4cf5a Update GLib dependency to 2.40.0 2015-10-02 22:18:24 +03:00
Stefan Sauer
6e7915d5cd tests/examples: add a demo for the interpolation control source modes
This is in preparation for new modes to be added. In particullar it demonstrates
how the cubic splines overshoot the range.
2015-09-27 11:45:29 +02:00
Sebastian Dröge
8421a1453c Back to development 2015-09-25 23:51:03 +02:00
Sebastian Dröge
2beb654a15 Release 1.6.0 2015-09-25 23:14:33 +02:00
Sebastian Dröge
b07b39d013 Release 1.5.91 2015-09-18 19:07:18 +02:00
Igor Rondarev
6972e7a926 configure: Check for socketpair() in -lsocket too
On e.g. QNX it is in an external library, not libc.

https://bugzilla.gnome.org/show_bug.cgi?id=754875
2015-09-11 23:23:50 +02:00
Sebastian Dröge
e55e83227d Release 1.5.90 2015-08-19 12:50:56 +03:00
Sebastian Dröge
d596d574d9 Back to development 2015-06-25 00:04:07 +02:00
Sebastian Dröge
9909c08807 Release 1.5.2 2015-06-24 23:05:29 +02:00
Sebastian Dröge
1ae38f7ba7 ptp: Check for the actual API we use instead of just looking for __APPLE__
Should fix the build on FreeBSD, DragonFly and other BSDs.

https://bugzilla.gnome.org/show_bug.cgi?id=750530
2015-06-09 11:01:29 +02:00
Sebastian Dröge
270360ca30 Back to development 2015-06-07 16:44:26 +02:00
Sebastian Dröge
100be890d4 Release 1.5.1 2015-06-07 09:41:28 +02:00
Sebastian Dröge
8d77759834 ptp: Initial implementation of a PTP clock
GstPtpClock implements a PTP (IEEE1588:2008) ordinary clock in
slave-only mode, that allows a GStreamer pipeline to synchronize
to a PTP network clock in some specific domain.

The PTP subsystem can be initialized with gst_ptp_init(), which then
starts a helper process to do the actual communication via the PTP
ports. This is required as PTP listens on ports < 1024 and thus
requires special privileges. Once this helper process is started, the
main process will synchronize to all PTP domains that are detected on
the selected interfaces.

gst_ptp_clock_new() then allows to create a GstClock that provides the
PTP time from a master clock inside a specific PTP domain. This clock
will only return valid timestamps once the timestamps in the PTP domain
are known. To check this, the GstPtpClock::internal-clock property and
the related notify::clock signal can be used. Once the internal clock
is not NULL, the PTP domain's time is known. Alternatively you can wait
for this with gst_ptp_clock_wait_ready().

To gather statistics about the PTP clock synchronization,
gst_ptp_statistics_callback_add() can be used. This gives the
application the possibility to collect all kinds of statistics
from the clock synchronization.

https://bugzilla.gnome.org/show_bug.cgi?id=749391
2015-06-03 13:55:28 +02:00
Tim-Philipp Müller
6386934b3f tests: remove some pointless ancient code examples 2015-04-28 20:07:40 +01:00
Tim-Philipp Müller
367d4bab2c configure: can use AM_SILENT_RULES unconditionally now
https://autotools.io/automake/silent.html
2015-04-22 10:11:51 +01:00
Tim-Philipp Müller
307dce442a configure: bump automake requirement to 1.14 and autoconf to 2.69
This is only required for builds from git, people can still
build tarballs if they only have older autotools.

https://bugzilla.gnome.org//show_bug.cgi?id=747624
2015-04-22 10:11:28 +01:00
Nicolas Dufresne
038c0a1360 bash-completion: Respect the prefix
Don't try and install the bash helpers outside the defined prefix.

https://bugzilla.gnome.org/show_bug.cgi?id=744877
2015-03-24 13:15:24 -04:00
HoonHee Lee
fadabe8b78 streamiddemux: Add streamiddemux element
Demultiplex a stream to multiple source pads based on the stream ids from the
stream-start events. This basically reverses the behaviour of funnel.

https://bugzilla.gnome.org/show_bug.cgi?id=707605
2015-03-12 14:42:18 +00:00
Mathieu Duponchelle
46e7baff74 bash-completion: Implement in a different way.
+ Gets installed
+ Uses a helper tool, gst-completion-helper, installed in
  bash-completions/helpers.
+ Adds a common script that other tools can source.

https://bugzilla.gnome.org/show_bug.cgi?id=744877
2015-02-23 17:57:57 +01:00
Ilya Konstantinov
05296b35a5 task: Add thread name support on OS X and iOS 2015-02-01 20:11:20 +01:00
Jan Schmidt
f9f45834e7 netclock: Add simple network clock server and client examples 2015-01-21 22:27:18 +11:00
Sebastian Rasmussen
0b09573bbe check: Have autotools generate internal-check.h
Previously GStreamer got access to the libcheck interface by including
libs/gst/check/check.h which in turn included internal-check.h in the
same directory. internal-check.h was generated by copying
libs/gst/check/libcheck/check.h which in turn was generated from
check.h.in in the same directory. In this case generating
libs/gst/check/libcheck/check.h is unnecessary, in addition this file
was accidentally distributed in generated project tarballs.

Now libs/gst/check/internal-check.h is generated directly from
libs/gst/check/libcheck/check.h.in by configure. This means that the
libcheck source must include internal-check.h instead of the previously
generated libs/gst/check/libcheck/check.h. However the unnecessary
intermediate step is now skipped.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741359
2014-12-16 16:32:39 +01:00
Sebastian Rasmussen
85c8b5d2c4 check: Apply GStreamer-specific patches
Reintroduced patches:

 * Make sure that fail_if(1) actually fails
   from commit 9f99d056a2

New patches due to updated libcheck (based on 0.9.14):

 * Checks in m4/check-checks.m4 to cater for new dependencies
 * Conditional compile-time compat POSIX fallbacks for libcheck
 * Avoid relative paths for libcheck header files
 * Make timer_create() usage depend on posix timers, not librt
 * Rely on default AX_PTHREAD behavior to allow HAVE_PTHREAD to be used
   when checking for types and functions (like clock_gettime())
 * Avoid double declaration of clock_gettime() when availabe outside of
   librt by making compat clock_gettime() declaration conditional
 * check 0.9.9 renamed _fail_unless() and 0.9.12 later renamed it again
   to _ck_assert_failed(), so ASSERT_{CRITICAL,WARNING}() now calls this
   function
 * Remove libcheck fallback infrastructure for malloc(), realloc(),
   gettimeofday() and snprintf() since either they appear to be
   available or they introduce even more dependencies.

The result is an embedded check in gstreamer that has been tested by
running check tests in core, -base, -good, -bad, -ugly and rtsp-server
on Linux, OSX and Windows.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727826
2014-12-06 17:48:25 +01:00
Tim-Philipp Müller
66bdae5f33 plugins: add helper function for writing buffers out with writev() 2014-11-30 14:40:46 +00:00
Sebastian Dröge
55c7656a03 uri: Include our own BSD licensed copy of strcasestr() for Windows and others 2014-09-29 16:22:47 +03:00
Sebastian Dröge
34e111f84f Back to development 2014-07-19 18:04:31 +02:00
Sebastian Dröge
98a5de66b9 Release 1.4.0 2014-07-19 16:46:41 +02:00
Sebastian Dröge
ed39f8b5b7 Release 1.3.91 2014-07-11 10:46:01 +02:00
Sebastian Dröge
417fac010b Release 1.3.90 2014-06-28 11:13:13 +02:00
Sebastian Dröge
a76f319e3b Back to development 2014-06-22 19:36:14 +02:00
Sebastian Dröge
755ca23148 Release 1.3.3 2014-06-22 18:07:42 +02:00
Sebastian Dröge
683a6ee663 Back to development 2014-05-21 13:23:21 +02:00
Sebastian Dröge
07334eca5a Release 1.3.2 2014-05-21 13:06:34 +02:00
Sebastian Dröge
b963319964 Back to development 2014-05-03 20:48:22 +02:00
Sebastian Dröge
473c008199 Release 1.3.1 2014-05-03 17:41:41 +02:00
Sebastian Dröge
ab56b96462 configure: Actually use 1.3.0.1 as version to make configure happy 2013-09-24 15:05:16 +02:00
Sebastian Dröge
3217defa69 Back to development 2013-09-24 15:00:17 +02:00
Sebastian Dröge
cd202c647b Release 1.2.0 2013-09-24 14:07:02 +02:00
Sebastian Dröge
e6acc1462f Back to development 2013-09-19 11:34:51 +02:00
Sebastian Dröge
7d76c2d538 Release 1.1.90 2013-09-19 10:48:24 +02:00
Sebastian Dröge
4a03af8296 Back to development 2013-08-28 13:26:28 +02:00
Sebastian Dröge
7a0d219862 Release 1.1.4 2013-08-28 12:36:16 +02:00
Lubosz Sarnecki
6c11da18a5 build: add subdir-objects to AM_INIT_AUTOMAKE
Fixes warnings with automake 1.14

https://bugzilla.gnome.org/show_bug.cgi?id=705350
2013-08-02 15:25:46 +01:00
Sebastian Dröge
2ee414c1c1 Back to development 2013-07-29 14:47:15 +02:00
Sebastian Dröge
5af3380860 Release 1.1.3 2013-07-29 13:34:53 +02:00
Sebastian Dröge
f8fdb61b02 Back to development 2013-07-11 16:57:06 +02:00
Sebastian Dröge
dd9ebd3ed0 Release 1.1.2 2013-07-11 15:12:39 +02:00
Sebastian Dröge
c8d0936273 Back to development 2013-06-05 18:36:40 +02:00
Sebastian Dröge
f50d555755 Release 1.1.1 2013-06-05 18:33:12 +02:00
Sebastian Dröge
18a7a1d062 gst: Add better support for static plugins
API: GST_PLUGIN_STATIC_DECLARE()
API: GST_PLUGIN_STATIC_REGISTER()

Based on a patch by Håvard Graff <havard.graff@tandberg.com>.

This now allows GST_PLUGIN_DEFINE() to create a static plugin if
GST_PLUGIN_BUILD_STATIC is defined. The resulting plugin can be
statically linked or dynamically linked during compilation but
can't be dynamically loaded during runtime.

Also adds GST_PLUGIN_STATIC_DECLARE() and GST_PLUGIN_STATIC_REGISTER(),
which allows to register a static linked plugin easily.
It is still required to manually register every single statically linked
plugin from inside the application as this can't be automated in a portable
way.

A new configure parameter --enable-static-plugins was added that allows
to build all plugins we build here as static plugins.

Fixes bug #667305.
2013-04-15 15:52:18 +02:00
Tim-Philipp Müller
5299a0cd65 printf: deal with some of the HAVE_FOO used in the printf code
Probably needs some more work for MSVC.
2013-04-12 23:05:59 +01:00
Tim-Philipp Müller
ff292d530c printf: enable and fix compiler warnings
But suppress -Wformat-nonliteral warnings since sprintf
is used with a runtime-generated format string in our
vasnprintf implementation.
2013-04-12 23:05:58 +01:00
Tim-Philipp Müller
7b19944280 info: use new internal printf for debug message printing
and remove all the printf extension/specifier stuff for
the system printf. Next we need to add back the custom
specifiers to our own printf implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
8fc876f09f printf: add our own printf implementation for debug logging
We will add support for our own printf modifiers, so we can
get nice debug log output on all operating systems irrespective
of the specific libc version used.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:56 +01:00
Руслан Ижбулатов
e2f2ee3582 configure: Also check for clock_gettime in libpthread
libwinpthreads provides POSIX time API.
It also provides libpthread alias for itself, for compatibility, so that
is what we will link with.

Fixes #697550
2013-04-09 20:34:35 +02:00
Tim-Philipp Müller
d0c8831f1f configure: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
AM_CONFIG_HEADER has been removed in the just-released automake 1.13:
https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html

https://bugzilla.gnome.org/show_bug.cgi?id=690881
2012-12-30 23:48:47 +00:00
Edward Hervey
465eb900a9 configure.ac: Update libtool versioning
In order for 1.x and 1.(x+1) versions to not invade on each other
we need to have different lib versions.

So we need a consistent and predictable scheme:
  library version number = MINOR * 100 + MICRO

Ex:
  1.0.0 => 0 (duh)
  1.0.3 => 3
  1.1.0 => 100
  1.1.1 => 101
  1.2.0 => 120
  1.10.5 => 1005
  ....
2012-11-28 18:21:00 +01:00
Tim-Philipp Müller
647cdef6fb gstreamer-1.0.pc: move gmodule-no-export-2.0 dependency to Requires.private
Users of GStreamer are not generally expected to use the GModule API
directly. so don't force them all to link against it.

While we're at it, no need to define this via configure.ac really, just
put the dependencies directly into the .pc.in file.
2012-11-25 23:44:26 +00:00
Tim-Philipp Müller
2e9bc3ba10 configure: update courtesy of autoupdate 2012-11-07 18:15:11 +00:00
Tim-Philipp Müller
d90d5acdc6 configure: let AG_GST_PLUGIN_DOCS check for python
And update common for move from AS_PATH_PYTHON to AM_PATH_PYTHON,
which as a side-effect should pick up newer python versions as well.

https://bugzilla.gnome.org/show_bug.cgi?id=563903
2012-10-31 17:52:20 +00:00
Tim-Philipp Müller
ebbce54583 Back to feature development 2012-10-25 12:10:27 +01:00
Tim-Philipp Müller
6d44898652 Release 1.0.2 2012-10-25 00:04:49 +01:00
Sebastian Dröge
1042857f33 configure: Properly check for pthread
The old check failed on Android for example.
2012-10-22 15:05:24 +02:00
Tim-Philipp Müller
ad0a4f4819 Back to development (bug-fixing) 2012-10-07 16:48:25 +01:00
Tim-Philipp Müller
c6de3adac8 Release 1.0.1 2012-10-07 13:10:33 +01:00
Tim-Philipp Müller
4b74a78a9f Back to development (bug fixing) 2012-09-24 16:46:57 +01:00
Tim-Philipp Müller
9e167f6f91 Release 1.0.0 2012-09-24 13:27:05 +01:00
Tim-Philipp Müller
2e6d61743f Release 0.11.99 2012-09-17 17:56:44 +01:00
Tim-Philipp Müller
ca90ea6e55 Remove GST_USE_UNSTABLE_API guard and defines 2012-09-17 13:35:26 +01:00
Tim-Philipp Müller
29418de194 Back to development 2012-09-14 02:54:52 +01:00
Tim-Philipp Müller
b3393cac76 Release 0.11.94 2012-09-14 02:46:34 +01:00
Tim-Philipp Müller
a053bfb6f4 configure: add reminder to remove GST_UNSTABLE_API stuff before 1.0.0 2012-09-01 23:54:23 +01:00
Tim-Philipp Müller
8cd5813fa6 gst-element-check.m4: rename AM_GST_ELEMENT_CHECK to GST_ELEMENT_CHECK
And allow passing of a minimum version (if not needed, pass 1.0).

https://bugzilla.gnome.org/show_bug.cgi?id=682968
2012-09-01 23:32:17 +01:00