Commit graph

54 commits

Author SHA1 Message Date
Stian Selnes
f766b85b96 rtpbasepayload: rtpbasedepayload: Add source-info property
Add a source-info property that will read/write meta to the buffers
about RTP source information. The GstRTPSourceMeta can be used to
transport information about the origin of a buffer, e.g. the sources
that is included in a mixed audio buffer.

A new function gst_rtp_base_payload_allocate_output_buffer() is added
for payloaders to use to allocate the output RTP buffer with the correct
number of CSRCs according to the meta and fill it.

RTPSourceMeta does not make sense on RTP buffers since the information
is in the RTP header. So the payloader will strip the meta from the
output buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=761947
2018-10-10 14:38:01 -04:00
Tim-Philipp Müller
dc29bc4e13 libs: fix API export/import and 'inconsistent linkage' on MSVC
For each lib we build export its own API in headers when we're
building it, otherwise import the API from the headers.

This fixes linker warnings on Windows when building with MSVC.

The problem was that we had defined all GST_*_API decorators
unconditionally to GST_EXPORT. This was intentional and only
supposed to be temporary, but caused linker warnings because
we tell the linker that we want to export all symbols even
those from externall DLLs, and when the linker notices that
they were in external DLLS and not present locally it warns.

What we need to do when building each library is: export
the library's own symbols and import all other symbols. To
this end we define e.g. BUILDING_GST_FOO and then we define
the GST_FOO_API decorator either to export or to import
symbols depending on whether BUILDING_GST_FOO is set or not.
That way external users of each library API automatically
get the import.

While we're at it, add new GST_API_EXPORT in config.h and use
that for GST_*_API decorators instead of GST_EXPORT.

The right export define depends on the toolchain and whether
we're using -fvisibility=hidden or not, so it's better to set it
to the right thing directly than hard-coding a compiler whitelist
in the public header.

We put the export define into config.h instead of passing it via the
command line to the compiler because it might contain spaces and brackets
and in the autotools scenario we'd have to pass that through multiple
layers of plumbing and Makefile/shell escaping and we're just not going
to be *that* lucky.

The export define is only used if we're compiling our lib, not by external
users of the lib headers, so it's not a problem to put it into config.h

Also, this means all .c files of libs need to include config.h
to get the export marker defined, so fix up a few that didn't
include config.h.

This commit depends on a common submodule commit that makes gst-glib-gen.mak
add an #include "config.h" to generated enum/marshal .c files for the
autotools build.

https://bugzilla.gnome.org/show_bug.cgi?id=797185
2018-09-24 08:45:34 +01:00
Antoine Jacoutot
c765649505 libs: g-ir-scanner: do not hardcode libtool path
https://bugzilla.gnome.org/show_bug.cgi?id=726571
2018-05-18 13:41:25 +02:00
Tim-Philipp Müller
363b790d38 rtp: GST_EXPORT -> GST_RTP_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 12:16:42 +00:00
Tim-Philipp Müller
33ae84fd1c rtp: mark symbols explicitly for export with GST_EXPORT 2017-05-16 15:22:42 +01:00
Tim-Philipp Müller
60e9629860 g-i: no need to load registry in g-i scanner 2017-05-04 23:55:20 +01:00
Tim-Philipp Müller
d52a74f32e g-i: pass compiler env to g-ir-scanner
It's what introspection.mak does as well. Should
fix spurious build failures on gnome-continuous.
2016-05-24 00:44:21 +01:00
Reynaldo H. Verdejo Pinochet
4ed7b0a0e6 Drop usage of deprecated g-ir-scanner --strip-prefix flag 2015-12-02 20:19:43 -08:00
Nicolas Dufresne
c101452a4a gi: Use INTROSPECTION_INIT for --add-init-section
This new define was added to common. The new init section fixed
compilation warning found in the init line that was spread across
all files.
2015-06-16 18:04:57 -04:00
Sebastian Dröge
4a993cb316 rtp: Clean G-I files on make clean too 2015-05-21 13:07:50 +03:00
Sebastian Dröge
6dd14bb6d6 rtp: Add builddir to the include path for gobject-introspection
And also add missing headers/sources

https://bugzilla.gnome.org/show_bug.cgi?id=749632
2015-05-20 16:24:07 +03:00
Sebastian Dröge
bfc13c8e51 rtp: Add GstRTPProfile enum 2015-05-20 15:41:06 +03:00
Tim-Philipp Müller
c680e324bc Remove obsolete Android build cruft
This is not needed any longer.
2015-04-26 18:42:34 +01:00
Edward Hervey
3eb35c77cc introspection: Don't use g-ir-scanner cache at compile time
It pollutes user directories and we don't need to cache it

https://bugzilla.gnome.org/show_bug.cgi?id=747095
2015-03-31 11:21:43 +02:00
Tim-Philipp Müller
664adc6e19 gst-libs: use GST_*_1_0 environment variables everywhere
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-16 10:16:27 +00:00
Sebastian Dröge
3f82e919dd libs: Use foo/foo.h as single-include header consistently everywhere
https://bugzilla.gnome.org/show_bug.cgi?id=688785
2012-12-12 17:13:10 +00:00
Evan Nemerson
4d77fba46c libs: Add missing single include headers and use them in GIRs 2012-11-21 11:01:24 +01:00
Wim Taymans
82d327fb91 rtp: add helpers for header extensions
Add helpers and defines for the NTP-64 and NTP-56 header extensions.
2012-11-06 09:18:54 +01:00
Tim-Philipp Müller
a4f2df6341 Revert "g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X"
This reverts commit e39fbe6b7e.

Looks like we need to pass the full .la file after all in a setup
with libtool, or it might not find the library, e.g. like

  ERROR: can't resolve libraries to shared libraries: gstfft-1.0

Conflicts:
	gst-libs/gst/audio/Makefile.am
	gst-libs/gst/pbutils/Makefile.am

Also see https://bugzilla.gnome.org/show_bug.cgi?id=603710
2012-10-29 12:47:05 +00:00
Tim-Philipp Müller
e39fbe6b7e g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X
As it should be according to the man page.

https://bugzilla.gnome.org/show_bug.cgi?id=679315
2012-10-28 17:35:57 +00:00
Tim-Philipp Müller
5e0dfec62c Remove -DGST_USE_UNSTABLE_API 2012-09-17 16:05:37 +01:00
Sebastian Rasmussen
b7b123964b gst-libs: make pkg-config get path to pkg-config dirs from configure
When --with-pkg-config-path is supplied to configure this path is now
explicitly propagated to pkg-config.

https://bugzilla.gnome.org/show_bug.cgi?id=673377
2012-05-05 23:26:20 +01:00
Sebastian Dröge
65307dd132 gst: Update versioning 2012-04-04 14:55:15 +02:00
Edward Hervey
d94535832b gst-libs: Add --warn-all to introspection scanner
And let's get fixing those docs :)
2011-11-25 10:31:38 +01:00
Wim Taymans
5f1312b5d8 rename files to match object names 2011-11-11 12:32:23 +01:00
Tim-Philipp Müller
4bf26ba5d2 Add -DGST_USE_UNSTABLE_API to the compiler flags to avoid warnings 2011-07-05 10:07:08 +01:00
Tim-Philipp Müller
1d05e81435 libs: gobject-introspection scanner doesn't need to scan or update plugin info
Make sure the scanner doesn't load or introspect or check any plugins,
(especially not outside the build directory).
2011-04-16 11:01:53 +01:00
Alessandro Decina
030f639a8e android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the
needed Android.mk files.
Androgenizer can be found here:
http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:23:21 +02:00
Tim-Philipp Müller
45b6bda76c libs: make sure gobject-introspection scanner calls gst_init()
Cherry-picked from 0.11, since it's the right thing to do (we
now silently rely on various _get_type() working without
gst_init() having been called).
2011-03-30 21:08:29 +01:00
Tim-Philipp Müller
a818fe7381 libs: replace 0.10 with @GST_MAJORMINOR@ in Makefile.am
For easier cherry-picking/merging later.
2011-03-30 20:57:32 +01:00
Tim-Philipp Müller
0ed757db33 gobject-introspection: use same PKG_CONFIG_PATH for g-ir-compiler as for g-ir-scanner
Make sure to use the PKG_CONFIG_PATH set at configure time instead of
just relying on an env-var set one. This makes sure both g-ir-compiler
and g-ir-scanner use the same PKG_CONFIG_PATH for determining include
paths etc.
2011-01-08 02:10:03 +00:00
Evan Nemerson
8fb2c27ed0 introspection: Add information on exported packages to GIRs
https://bugzilla.gnome.org/show_bug.cgi?id=635392
2010-11-21 00:44:37 +00:00
Tim-Philipp Müller
e776699036 build: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used).
2010-08-14 19:12:37 +01:00
Tim-Philipp Müller
b61b83376a introspection: set PKG_CONFIG_PATH so that our in-tree libs come first when calling scanner
When calling gobject-introspection scanner, make sure our own
freshly-built libs within the source tree (well, build dir) come
first in the PKG_CONFIG_PATH. May or may not help to make sure
that it doesn't pick up older external plugins-base libs (or
.gir files) from outside the source tree / build directory as
dependencies of the introspected lib instead of using the
stuff we just built in a sibling directory.

https://bugzilla.gnome.org/show_bug.cgi?id=623698
2010-08-14 19:11:48 +01:00
Vincent Untz
764c899215 libs: point gobject-introspection scanner to .la files
Point g-ir-scanner to the .la file of our library, which hopefully
makes it find the right dependencies in all cases (ie. our locally
built libgstreamer and not the system-installed one). This is also
how it's done in Gtk+ and how it's documented in the wiki, see
http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration

Fixes #603710.
2010-04-03 14:03:45 +01:00
Tim-Philipp Müller
b37c993e4e gst-libs: more gobject-introspection fixes
Use right .pc file variable for compiler includes this time:
g-ir-compiler wants the girdirs not the typelibdirs as includes.
2010-03-30 23:46:10 +01:00
Tim-Philipp Müller
64cfa6bf73 gst-libs: fix up gobject-introspection some more
Use new girdir and typlibdir from core .pc files, so we can figure
out the right includes to pass to the gobject-introspection tools,
whether core is installed in the same prefix as gobject-introspection
or in a different prefix or uninstalled. This also keeps us from adding
bogus paths to the includes that only work if core is uninstalled.

Also add some missing includes/pkgs where needed.
2010-03-30 19:56:56 +01:00
Sebastian Dröge
d5a4ca9962 build: Make some more rules silent if requested 2010-03-09 21:01:38 +00:00
Sebastian Dröge
df9b8b57b3 introspection: Build pkgconfig before all libraries and set PKG_CONFIG_PATH
This way g-ir-scanner can find the gstreamer-*-0.10 pkg-config files.
2009-09-13 11:19:50 +02:00
Sebastian Dröge
7e90e0846c introspection: Strip Gst prefix from all types/functions 2009-09-05 12:31:47 +02:00
Sebastian Dröge
7794caf9f8 introspection: Fix build if gir-repository is not installed 2009-09-05 11:49:41 +02:00
Sebastian Dröge
8001b380b1 rtp: Add gobject-introspection support 2009-09-05 11:25:42 +02:00
Wim Taymans
7cdfb6d154 gst-libs/gst/rtp/: Added new file and header to deal with payload info.
Original commit message from CVS:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/rtp/gstrtppayloads.c: (gst_rtp_payload_info_for_pt),
(gst_rtp_payload_info_for_name):
* gst-libs/gst/rtp/gstrtppayloads.h:
Added new file and header to deal with payload info.
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
(gst_rtp_buffer_default_clock_rate):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Payload specific stuff is move to new headers.
Implement _default_clock rate using the new payload function.
* gst-libs/gst/sdp/gstsdpmessage.c: (is_multicast_address),
(gst_sdp_parse_line):
* gst-libs/gst/sdp/gstsdpmessage.h:
Add some more comments.
2007-10-01 13:22:14 +00:00
Wim Taymans
0a39f494b5 Add RTCP docs.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_get_adapter):
Add RTCP docs.
Fix some more docs.
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/rtp/gstrtcpbuffer.c:
(gst_rtcp_buffer_new_take_data), (gst_rtcp_buffer_new_copy_data),
(gst_rtcp_buffer_validate_data), (gst_rtcp_buffer_validate),
(gst_rtcp_buffer_get_packet_count), (read_packet_header),
(gst_rtcp_buffer_get_first_packet), (gst_rtcp_packet_move_to_next),
(gst_rtcp_buffer_add_packet), (gst_rtcp_packet_remove),
(gst_rtcp_packet_get_padding), (gst_rtcp_packet_get_type),
(gst_rtcp_packet_get_count), (gst_rtcp_packet_get_length),
(gst_rtcp_packet_sr_get_sender_info),
(gst_rtcp_packet_sr_set_sender_info),
(gst_rtcp_packet_rr_get_ssrc), (gst_rtcp_packet_rr_set_ssrc),
(gst_rtcp_packet_get_rb_count), (gst_rtcp_packet_get_rb),
(gst_rtcp_packet_add_rb), (gst_rtcp_packet_set_rb),
(gst_rtcp_packet_sdes_get_chunk_count),
(gst_rtcp_packet_sdes_first_chunk),
(gst_rtcp_packet_sdes_next_chunk), (gst_rtcp_packet_sdes_get_ssrc),
(gst_rtcp_packet_sdes_first_item),
(gst_rtcp_packet_sdes_next_item), (gst_rtcp_packet_sdes_get_item),
(gst_rtcp_packet_bye_get_ssrc_count),
(gst_rtcp_packet_bye_get_nth_ssrc), (gst_rtcp_packet_bye_add_ssrc),
(gst_rtcp_packet_bye_add_ssrcs), (get_reason_offset),
(gst_rtcp_packet_bye_get_reason_len),
(gst_rtcp_packet_bye_get_reason), (gst_rtcp_packet_bye_set_reason):
* gst-libs/gst/rtp/gstrtcpbuffer.h:
Add new helper object for parsing and creating RTCP messages.
2007-03-29 16:20:31 +00:00
Jan Schmidt
77683331e1 gst-libs/gst/rtp/Makefile.am: The base audio payloader uses GstAdapter - we need GST_BASE_LIBS.
Original commit message from CVS:
* gst-libs/gst/rtp/Makefile.am:
The base audio payloader uses GstAdapter - we need GST_BASE_LIBS.
2007-03-26 11:44:07 +00:00
Thomas Vander Stichele
95ada43982 configure.ac: split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS so that GST_BASE_CFLAGS can go inbetwe...
Original commit message from CVS:
* configure.ac:
split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS
so that GST_BASE_CFLAGS can go inbetween them, making sure
we use uninstalled gst-libs headers
* docs/libs/Makefile.am:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst-libs/gst/audio/Makefile.am:
* gst-libs/gst/cdda/Makefile.am:
* gst-libs/gst/interfaces/Makefile.am:
* gst-libs/gst/riff/Makefile.am:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/tag/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/playback/Makefile.am:
* gst/tcp/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/volume/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
* tests/icles/Makefile.am:
adapt
2007-01-04 12:49:48 +00:00
Wim Taymans
351622d028 gst-libs/gst/rtp/: Fix and activate base audio payloader.
Original commit message from CVS:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_init):
Fix and activate base audio payloader.
2006-10-31 10:49:19 +00:00
Thomas Vander Stichele
6f18aadd6b reverting rtp patches to fix freeze break on -base as explained on the list
Original commit message from CVS:
reverting rtp patches to fix freeze break on -base as explained on the list
2006-04-13 09:26:27 +00:00
Philippe Kalaf
a916af7c48 gst-libs/gst/rtp/gstrtpbuffer.h: Added GST_RTP_PAYLOAD_DYNAMIC_STRING for use by children
Original commit message from CVS:
2006-04-12 Philippe Kalaf <philippe.kalaf@collabora.co.uk>

* gst-libs/gst/rtp/gstrtpbuffer.h:
Added GST_RTP_PAYLOAD_DYNAMIC_STRING for use by children
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
New RTP audio base payloader class. Supports frame or sample based codecs
2006-04-13 03:55:12 +00:00
Thomas Vander Stichele
1a4ad8377d gst-libs/gst/: remove silly include
Original commit message from CVS:

* gst-libs/gst/net/Makefile.am:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/tag/Makefile.am:
remove silly include
* gst/tags/Makefile.am:
* gst/tags/gsttagediting.c:
* gst/tags/gsttageditingprivate.h:
* gst/tags/tagedit.vcproj:
remove directory, is as good as empty
2005-11-27 16:27:20 +00:00