Commit graph

3735 commits

Author SHA1 Message Date
Matthew Waters
177aa22bcd webrtc: Initial support for stream addition/removal
Limitations:
- No transport changes at all (ICE, DTLS)
- Codec changes are untested and probably don't work
- Stream removal doesn't remove transports (i.e. non-bundled transports
  will stay around until webrtcbin is shutdown)
- Unified Plan SDP only. No Plan-B support.
2019-05-30 21:33:09 +10:00
Matthew Waters
c3c4b07ad3 webrtc/transceiver: add a set_direction function
Matches the setDirection() from the W3C spec and allows changing the
transceiver direction at the next negotiation cycle.
2019-05-30 21:33:09 +10:00
Mathieu Duponchelle
da6afdec9c doc: remove xml from comments 2019-05-29 22:58:08 +02:00
Tim-Philipp Müller
0d59589935 codecparsers: fix debug category initialisation
Make thread-safe.
2019-05-25 15:29:25 +02:00
Sebastian Dröge
b3bf3a0d21 webrtc: Add various Since markers to new types after 1.14.0 2019-05-21 12:16:31 +03:00
Thibault Saunier
47a49f3381 docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
Thibault Saunier
7fe3f36ac8 Minor documentation fixes 2019-05-13 11:36:27 -04:00
Niels De Graef
39c8c206be webrtc: Add g_autoptr() support for public types 2019-05-08 15:47:06 +02:00
Christoph Reiter
22c6a4085f meson: fix build with opencv=enabled and opencv4. Fixes #964
Having the opencv feature enabled would lead to the opencv3 dependency
being required which failed with only opencv4 being available.

Instead don't require anything and error out at the end if the feature was enabled
but no dependency was found.
2019-05-06 07:21:45 +00:00
Christoph Reiter
3a5bcfc593 autotools: gstsctp: set LDFLAGS
This fixes the mingw build which failed because of "-no-undefined" missing.
2019-05-05 12:39:01 +02:00
Seungha Yang
bd91ebd6e4 h265parser: Add parsing mastering display colour volume SEI message
... and content light level SEI message. Those SEI messages are required
for HDR rendering.
2019-05-03 19:44:15 +00:00
Wangfei
3a0a82a783 h265parser: parse range extension message in SPS/PPS.
Range extension message may exist in some extension-profile clips.
2019-04-30 16:09:24 +08:00
Sebastian Dröge
e4b8f21a5a libs: Fix various Since markers 2019-04-23 15:09:17 +03:00
Sebastian Dröge
5b918e681d player: Fix various Since markers in the docs 2019-04-23 15:09:03 +03:00
Tim-Philipp Müller
76f1ed15fb h264parse: extract CEA-708 closed captions
Expose SEI data in the H.264 bitstream parser API and
extract closed captions and other things that are not
specified in the H.264 spec itself in the videoparser.

Based on patch by: Mathieu Duponchelle <mathieu@centricular.com>

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/940
2019-04-08 19:21:34 +01:00
Mathieu Duponchelle
55bb8966e1 h265parse: forward time codes
This transforms time code SEIs into GstVideoTimeCodeMeta
2019-04-01 10:02:33 +00:00
Mathieu Duponchelle
7c425cf339 h264parse: forward time codes
This transforms time codes from the timing SEI into
GstVideoTimeCodeMeta
2019-04-01 10:02:33 +00:00
Niels De Graef
67bb17e4fa waylandsink: Implement XDG-shell stable support
[wl_shell] is officially [deprecated], so provide support for the
XDG-shell protocol should be provided by all desktop-like compositors.
(In case they don't, we can of course fall back to wl_shell).

Note that the [XML spec] is provided by the `wayland-protocols`
git repository, which is provided by the Wayland project.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/897

[wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
[deprecated]: 698dde1958
[XML spec]: https://github.com/wayland-project/wayland-protocols/blob/master/stable/xdg-shell/xdg-shell.xml
2019-03-04 10:58:54 +00:00
Nicola Murino
26cabf9b1f opencv: port to c++ 2019-02-02 18:34:10 +00:00
Mathieu Duponchelle
85c75bb23b webrtc: expose ice-transport-policy property
This is the equivalent of iceTransportPolicy in the RTCConfiguration
dictionary.

Only two values are implemented:

* all: default behaviour
* relay: only gather relay candidates

The third member of the iceTransportPolicy enum, "public", is
obsolete.
2019-01-23 22:47:51 +00:00
Tim-Philipp Müller
b9e15fddb1 Remove GstVideoAggregator, moved into libgstvideo in -base
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/137
2018-12-26 19:06:33 +01:00
Philippe Normand
b5af1b9f2e player: Logging fix for updated audio info
Bitrate was logged a second time instead of the max_bitrate.
2018-12-22 18:39:44 +01:00
Sebastian Dröge
a171f30ab1 player: Don't crash if playbin is not available but kill the process cleanly 2018-12-10 13:21:43 +02:00
Guillaume Desmottes
64643fdfb4 h265parser: parse SEI recovery point
Copied the implementation from h264parser and adapted it to the HEVC
syntax.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/790
2018-12-02 02:07:39 +00:00
Maciej Wolny
465ea32d73 webrtc: Remove duplicate declarations
This causes 'redefinition of typedef ...' errors on GCC 4.5.3
2018-11-28 12:24:37 +00:00
Nicola Murino
b0773c6ea7 opencv: make compatible with opencv 4
Closed #826
2018-11-26 13:29:03 +00:00
Nicola Murino
890dbb560f opencv: fix indentation 2018-11-26 13:29:03 +00:00
Russel Winder
0341af78a4 mpegts: Register a number of new boxed types to support auto generation of bindings. 2018-11-08 08:15:41 +00:00
Seungha Yang
52f2054386 h265parser: Various update of vps parsing
* Add FIXME for future correction of HRDParames parsing.
Spec. defines that the number of HRDParames could be up to
"vps_num_layer_sets_minus1 + 1" (i.e., 1024).

* Add parsing vps_base_layer_{internal,available}_flag.

* Fix possible invalid vps_extension parsing.

Fixes #798
2018-11-07 18:24:59 +09:00
Seungha Yang
0916e2bb56 h265parser: Fix wrong maximum range check in gst_h265_parse_vps()
Fix validation of some syntax.

Fixes #798
2018-11-07 16:06:11 +09:00
Nicolas Dufresne
7d1be36561 h265parser: Stop considering 6 bytes NAL complete
This is only TRUE for EOS / EOB NALs. Before this patch, passing
any valid 6 bytes of a NAL would make the parser pretend this NAL is
complete.
2018-11-06 07:26:03 +00:00
Nicolas Dufresne
cf7ea41c75 h264parser: Stop considering 5 bytes NAL complete
This is only TRUE for SEQ_END / STREAM_END. Before this patch, passing
any valid 5 bytes of a NAL would make the parser pretend this NAL is
complete.
2018-11-06 07:26:03 +00:00
Russel Winder
4d67ecca33 mpegts: remove insignificant trailing whitespace from lines of files in the MPEG-TS library. 2018-11-05 16:18:26 +00:00
Russel Winder
dcad6d1031 mpegts: Register a boxed type for GstMpegtsContent 2018-11-01 14:39:36 +02:00
Víctor Manuel Jáquez Leal
00acafc209 player: don't change uri when setting subtitle uri
https://bugzilla.gnome.org/show_bug.cgi?id=797362
2018-11-01 11:59:59 +01:00
Philippe Normand
de26abc88a player: API additions for subtitle-video-offset property
This new property contols the synchronisation offset between subtitles and video
in nanoseconds.

https://bugzilla.gnome.org/show_bug.cgi?id=797134
2018-11-01 09:52:57 +00:00
Sebastian Dröge
77398f1c27 mpegts: Use gst and gst_mpegts as symbol prefix in the meson build
Just like we do in the autotools build.
2018-10-28 11:07:47 +00:00
Sebastian Dröge
ff47ef9ab9 mpegts: Add boxed type for DVB CableDeliverySystem descriptor 2018-10-27 13:59:57 +01:00
Sebastian Dröge
afbbc3a97e player: Don't set state to READY if we're already stopped
Otherwise setting an URI after creation will already set the state
to READY/buffering and disallow setting the configuration.

See https://github.com/servo/servo/issues/22010
2018-10-24 14:36:41 +01:00
Mathieu Duponchelle
9f684a2f81 webrtcbin: implement support for group: BUNDLE 2018-10-15 14:17:35 +02:00
Tim-Philipp Müller
96ac822b67 player: fix deprecated api declaration 2018-09-24 14:46:40 +01:00
Tim-Philipp Müller
b6411ae74c 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 14:45:56 +01:00
Tim-Philipp Müller
23feed7545 libs: dist new sctp lib 2018-09-21 16:37:41 +01:00
Edward Hervey
1d6814f54b gst-libs: Always build sctp mini-library
It doesn't depend on any external library
2018-09-21 14:57:35 +02:00
Matthew Waters
07e9374eff webrtcbin: add support for data channels based on SCTP
Mostly follows the W3C specification
https://www.w3.org/TR/webrtc/#peer-to-peer-data-api

With contributions from:
Mathieu Duponchelle <mathieu@centricular.com>

https://bugzilla.gnome.org/show_bug.cgi?id=794351
2018-09-21 19:45:12 +10:00
Matthew Waters
1f662b24a2 sctp*meta: fix api define in gst_sctp_buffer_get_*_meta() 2018-09-21 19:36:52 +10:00
Matthew Waters
88b4ce9fc0 Update sctp plugin for the current build system
- Add meson build definitions
- Add necessary API decorators
2018-09-21 19:36:52 +10:00
George Kiagiadakis
e2f06326ea Add new SCTP plugins (sctpenc/sctpdec)
https://bugzilla.gnome.org/show_bug.cgi?id=744863
2018-09-21 19:36:52 +10:00
Philippe Normand
d1ed94491e player: Set default position and duration value to GST_CLOCK_TIME_NONE
When the position query fails the returned value shall remain -1 instead of 0 to
avoid confusion on application side between error and beginning of media.

https://bugzilla.gnome.org/show_bug.cgi?id=797066
2018-09-03 12:11:42 +01:00
Nirbheek Chauhan
cea5e3fcdb meson: Maintain macOS ABI through dylib versioning
Requires Meson 0.48, but the feature will be ignored on older versions
so it's safe to add it without bumping the requirement.

Documentation:
https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-manual.md#shared_library
2018-08-31 14:41:00 +05:30