Commit graph

3800 commits

Author SHA1 Message Date
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
Sebastian Dröge
dad8f75f87 videoaggregator: Make sure to hold object lock while iterating sink pads
They might otherwise just change while we iterate.
2018-08-16 10:03:19 +03:00
Bastian Köcher
c73abb0c71 meson: fix install dir for generated header files
Nixos installs into a non-standard includedir, so need
to take account of the 'includedir' option instead of
just hard-coding 'include' here.

https://bugzilla.gnome.org/show_bug.cgi?id=794856
2018-08-10 12:57:47 +01:00
Nicolas Dufresne
9a2e0de9af badaudio: Fix typo, ADUIO vs AUDIO 2018-08-03 08:16:19 -04:00
Nicolas Dufresne
7aaab9bca6 GstPlanarAudioAdapter: Add audio library in Makefile.am
This fixes a build regression.
2018-08-03 07:58:59 -04:00
George Kiagiadakis
0591bc934a GstPlanarAudioAdapter: copy pts, dts and offset tracking from GstAdapter
https://bugzilla.gnome.org/show_bug.cgi?id=793605
2018-08-03 13:20:09 +03:00
George Kiagiadakis
9cf58eb3e4 libs: audio: add new GstPlanarAudioAdapter class
This is a GstAdapter, but for planar audio buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=793605
2018-08-03 13:20:02 +03:00
Nicolas Dufresne
9c91282ba6 opencv: Updated to use new header path 2018-08-02 11:31:34 -04:00
Nicolas Dufresne
cabf875098 opencv: Bump requirement to 3.0.0+
And removes all the ifdef code to support the 2.X APIs.
2018-08-02 11:31:34 -04:00
Nirbheek Chauhan
b55dfb5313 Add feature options for almost all plugins
The only plugins remaining are those that haven't been ported to Meson
yet, and msdk. Also, the tests are still automagic.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 19:04:38 +05:30
Jan Schmidt
cb750efd6c webrtc: Move dtlssrtpenc state management
Move the errant piece of dtlssrtpenc state change
management from dtlstransport in the Webrtc libs,
into the transportsendbin that does the rest of
the element management so it's all in one place.
2018-07-14 23:18:50 +10:00
Jan Schmidt
3a6777d599 webrtc/dtlstransport: Add more debug. Rename category
Rename the dtlstransport debug category to webrtcdtlstransport.
2018-07-14 23:18:40 +10:00
Roland Jon
d5aabd0f58 player: Avoid trying to join the player thread from itself
https://bugzilla.gnome.org/show_bug.cgi?id=796731
2018-07-02 15:27:17 +03:00
Tim-Philipp Müller
86c1a7b4ad libs: Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 12:19:17 +02:00
Tim-Philipp Müller
fc4f861d48 videoaggregator: Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 01:47:29 +02:00
Seungha Yang
9e981ed503 videoaggregator: Fix string leak
gst_video_colorimetry_to_string() returns allocated memory which
must be freed.

https://bugzilla.gnome.org/show_bug.cgi?id=796596
2018-06-15 10:17:14 -04:00
Mathieu Duponchelle
0178354e6e gst_webrtc_session_description_new: fix annotations 2018-06-11 18:34:59 +02:00
Tim-Philipp Müller
06e50313ad videoaggregator: log an ERROR if we're going to return a flow error 2018-06-11 13:48:09 +01:00
Thibault Saunier
4c97eb10bc webrtc: Fix wrong parent classes for DTLSTransport and ICETransport
Those are GObjects not GstBins
2018-06-05 14:11:24 -04:00
Lyon Wang
92576e7db8 player: Fix duration-changed CRITICAL warning if duration did not actually change
Check if duration is changed before emitting duration-changed signal

https://bugzilla.gnome.org/show_bug.cgi?id=796491
2018-06-04 21:06:28 +03:00
Sreerenj Balachandran
700d6782ce codecparsers: mpeg2: don't mess the StartCode only packets
It is completely legal to have packets with zero sizes.
Zero-sized packet indicates header with only Start Code.
One eg: is user data packet. The patch allows having
GstMpegVideoPacket with zero sizes.

https://bugzilla.gnome.org/show_bug.cgi?id=796477
2018-06-01 08:17:09 +02:00
Hosang Lee
9992564102 adaptivedemux: Set connection-speed value as current download rate if set
If connection-speed property is in use, this value should be used as the
current download rate since subclasses might read it to figure out
which playlist variant they will use.

https://bugzilla.gnome.org/show_bug.cgi?id=784592
2018-05-28 16:02:45 +02:00
Russel Winder
bfe26464c9 mpegts: Add GIR generation array anotations
For function parameters that are known to be arrays.

https://bugzilla.gnome.org/show_bug.cgi?id=796221
2018-05-19 11:06:14 +02:00
Antoine Jacoutot
5c7719ea74 libs: g-ir-scanner: do not hardcode libtool path
https://bugzilla.gnome.org/show_bug.cgi?id=726571
2018-05-18 14:49:53 +02:00
Olivier Crête
feb6002680 videoaggregator: Remove custom get_next_time implementation
GstAggregator now has the same thing in the simple implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=795486
2018-05-16 22:24:18 +02:00
Seungha Yang
a8cb7662d7 adaptivedemux: Support period change in live playlist
Regardless of LIVE or VOD, "a manifest has next period but
currently EOSed" state is meaning that it's time to advance period.

Previous behavior of adpativedemux, however, was able to period
advancing only for VOD case, since the adaptivedemux tried to
update and wait new manifest without respecting existence of the next period.

https://bugzilla.gnome.org/show_bug.cgi?id=781183
2018-05-12 09:27:46 +02:00
Mathieu Duponchelle
5c450c5992 webrtcbin: implement support for FEC and RTX
https://bugzilla.gnome.org/show_bug.cgi?id=795044
2018-05-09 14:46:14 +02:00
Sebastian Dröge
2308c9555a videoaggregator: Set video-meta option on buffer pool configuration correctly
CID 1435451
2018-05-07 17:53:32 +03:00
Sebastian Dröge
e21481e301 videoaggregator: First override set/get_property vfuncs, then install properties
Gives assertions otherwise.
2018-05-07 09:17:16 +02:00
Sebastian Dröge
cd49913283 videoaggregator: Some more documentation fixes 2018-05-06 16:49:57 +02:00
Mathieu Duponchelle
67a495c324 videoaggregator: expose converter-config on convert pads
This in order to allow users control over the conversion
process, for example the scaling method.
2018-05-06 16:45:43 +02:00
Sebastian Dröge
fecbc713f4 videoaggregator: Fix up documentation some more 2018-05-06 16:43:32 +02:00
Sebastian Dröge
d235133c88 videoaggregator: Clean up header and update docs a bit 2018-05-06 16:22:01 +02:00
Sebastian Dröge
4249cb5768 videoaggregator: Rename get_output_buffer() to create_output_buffer()
For consistency with GstAudioAggregator.
2018-05-06 16:05:28 +02:00
Sebastian Dröge
e6c80d94f1 videoaggregator: Validate pool configuration and create a new pool if it just does not work
Also pass the given allocator to the pool if one is set.
2018-05-06 15:49:36 +02:00
Sebastian Dröge
ea5de0d757 videoaggregator: Switch to a GstVideoAggregatorConvertPad subclass
This moves all the conversion related code to a single place, allows
less code-duplication inside compositor and makes the glmixer code less
awkward. It's also the same pattern as used by GstAudioAggregator.
2018-05-06 15:22:51 +02:00
Sebastian Dröge
0dcd431c0e videoaggregator: Remove sink_non_alpha_caps class field
This is only used for caching reasons and should never actually be in
the public API. If this is ever a bottleneck later, caching around a
class private struct could be implemented.
2018-05-05 16:32:19 +02:00
Sebastian Dröge
0680c3e47d videoaggregator: Move needs_alpha pad field to the private struct
And also trigger renegotiation if the value has changed.

https://bugzilla.gnome.org/show_bug.cgi?id=795836
2018-05-05 16:32:19 +02:00
Sebastian Dröge
83192bce84 videoaggregator: Move aggregated_frame and the pad buffer into the private struct
The aggregated_frame is now called prepared_frame and passed to the
prepare_frame and cleanup_frame virtual methods directly. For the
currently queued buffer there is a method on the video aggregator pad
now.
2018-05-05 16:32:19 +02:00
Sebastian Dröge
e9e98715b0 videoaggregator: Move property storage to private pad struct 2018-05-04 17:18:12 +02:00
Sebastian Dröge
10b7b13732 videoaggregator: Rename ignore-eos pad property to repeat-after-eos
What it does is to repeat the last frame forever after EOS, it does not
literally ignore EOS.
2018-05-04 16:46:00 +02:00
Sebastian Dröge
e34d4e9bf4 videoaggregator: Move GstChildProxy implementations into leaf classes
Not every subclass will want to expose the pads via the interface.

https://bugzilla.gnome.org/show_bug.cgi?id=739011
2018-05-04 16:13:16 +02:00
Sebastian Dröge
e27083211c videoaggregator: Get rid of separate header for the aggregator pad 2018-05-04 15:35:52 +02:00
Guillaume Desmottes
5a5bf4b3e3 h264parse: add constrained and progressive profiles
Those profiles have been added in the version 2012-01
and 2011-06 of the AVC spec.

https://bugzilla.gnome.org/show_bug.cgi?id=794127
2018-04-25 09:12:45 +02:00
Stefan Ringel
52372a25c7 docs: mpegts: add atsc docs
https://bugzilla.gnome.org/show_bug.cgi?id=730940
2018-04-23 16:32:49 +02:00
Víctor Manuel Jáquez Leal
3ab5a8cace webrtc: fix gtk-doc annotations 2018-04-16 10:52:02 +02:00
Tim-Philipp Müller
db6374b308 meson: mpegts: make internal mpegts lib dep depend on the enumtypes header 2018-04-03 14:04:15 +01:00
Tim-Philipp Müller
b647888dc8 meson: webrtc: use gnome.mkenums_simple() to generate enumtypes files 2018-03-22 14:34:17 +00:00
Tim-Philipp Müller
503769e8e3 webrtc: use right export define in generated enumtypes file 2018-03-22 14:34:08 +00:00
Tim-Philipp Müller
f48564b700 webrtc: fix g-ir-scanner complaining about unstable API 2018-03-22 14:34:08 +00:00
Alessandro Decina
f49134095c meson: use gnome.mkenums_simple() to generate enumtypes files
Means we no longer need our custom scripts, nor template files.
2018-03-22 14:34:05 +00:00
Sebastian Dröge
d4762bc5d5 webrtc: Fix make distcheck for g-i build
ERROR: ../../../../../gst-libs/gst/webrtc/webrtc-enumtypes.c: no such a file or directory
2018-03-16 19:21:31 +02:00
Sebastian Dröge
0d4b9fd307 webrtc: Include webrtc-enumtypes in the g-i build 2018-03-16 17:00:56 +02:00
Sebastian Dröge
b1ca76377f webrtc: Remove unused parameter from rtpsender constructor
https://bugzilla.gnome.org/show_bug.cgi?id=794363
2018-03-16 10:37:24 +02:00
Sebastian Dröge
950ead9215 webrtc: Add some locks to setters and remove non-existing functions from headers
https://bugzilla.gnome.org/show_bug.cgi?id=794363
2018-03-16 10:37:24 +02:00
Sebastian Dröge
dabfe399eb webrtc: Rename GstWebRTCIceRole to GstWebRTCICERole for consistency
Everything else is ICE, not Ice.

https://bugzilla.gnome.org/show_bug.cgi?id=794362
2018-03-16 10:37:24 +02:00
Sebastian Dröge
1a889a3adc webrtc: Fix gobject-introspection build with meson 2018-03-15 16:45:46 +02:00
Sebastian Dröge
b35b01ad09 webrtc: Add gobject-introspection integration
https://bugzilla.gnome.org/show_bug.cgi?id=794347
2018-03-15 16:37:04 +02:00
Tim-Philipp Müller
333f636555 webrtc: GST_EXPORT -> GST_WEBRTC_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 13:36:33 +00:00
Tim-Philipp Müller
bdbe83a88e wayland: GST_EXPORT -> GST_WAYLAND_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 13:36:33 +00:00
Tim-Philipp Müller
46a6d3f899 video: GST_EXPORT -> GST_URI_VIDEO_BAD_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 13:36:33 +00:00
Tim-Philipp Müller
665cc1c6f2 uridownloader: GST_EXPORT -> GST_URI_DOWNLOADER_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 13:05:45 +00:00
Tim-Philipp Müller
fc9bdae8e2 player: GST_EXPORT -> GST_PLAYER_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 13:02:54 +00:00
Tim-Philipp Müller
456f60164c opencv: GST_EXPORT -> GST_OPENCV_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:57:56 +00:00
Tim-Philipp Müller
3eb033bba2 mpegts: GST_EXPORT -> GST_MPEGTS_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:47:03 +00:00
Tim-Philipp Müller
7536263044 isoff: GST_EXPORT -> GST_ISOFF_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:43:00 +00:00
Tim-Philipp Müller
97de0a3c69 photography: GST_EXPORT -> GST_PHOTOGRAPHY_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:41:42 +00:00
Tim-Philipp Müller
42491f0d11 insertbin: GST_EXPORT -> GST_INSERT_BIN_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:36:26 +00:00
Tim-Philipp Müller
a05006944a codecparsers: GST_EXPORT -> GST_CODEC_PARSERS_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:34:24 +00:00
Tim-Philipp Müller
a4c2d1ea31 basecamerabinsrc: GST_EXPORT -> GST_BASE_CAMERA_BIN_SRC_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:29:08 +00:00
Tim-Philipp Müller
6b8f92d84f audio: GST_EXPORT -> GST_AUDIO_BAD_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:22:07 +00:00
Tim-Philipp Müller
04d25d9e4f adaptivedemux: GST_EXPORT -> GST_ADAPTIVE_DEMUX_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:17:50 +00:00
Guillaume Desmottes
6dd997541c h265parser: allow partial matching on range extension profile
Best to return a valid profiles rather than no profile if bitstream uses
a not standard profile.

https://bugzilla.gnome.org/show_bug.cgi?id=793876
2018-03-05 13:22:12 -05:00
Guillaume Desmottes
9f25fcdfc9 h265parse: add support for 'Format range extensions profiles'
Those profiles have been introduced in version 2 of the HEVC spec
(A.3.5).

https://bugzilla.gnome.org/show_bug.cgi?id=793876
2018-03-05 13:22:12 -05:00
Guillaume Desmottes
977af86e8b h265parser: parse extra profile fields
Those fields have been introduced in version 2 and later to define new
profiles like the format range extensions profiles (A.3.5).

NOTE: This patch breaks the parser ABI, rebuild needed.

https://bugzilla.gnome.org/show_bug.cgi?id=793876
2018-03-05 13:21:33 -05:00
Guillaume Desmottes
d252f503fc h265parser: decouple GstH265Profile and GstH265ProfileIDC
We used to have the same enum to represent H265 profiles and idc values.
Those are no longer the same with extension profiles defined from
version 2 of the spec.
Split those enums so the semantic of each is clearer and we'll be able
to add extension profiles to GstH265Profile.

Also add gst_h265_profile_tier_level_get_profile() to retrieve the
GstH265Profile from the GstH265ProfileTierLevel. It will be used to
implement the detection of extension profiles.

https://bugzilla.gnome.org/show_bug.cgi?id=793876
2018-03-05 13:19:42 -05:00
Mathieu Duponchelle
39d408f3d6 Port to latest GstAggregator segment API
The aggregator segment is now exposed on the src pad

https://bugzilla.gnome.org/show_bug.cgi?id=793946
2018-03-01 15:37:06 +01:00
Nicolas Dufresne
4300611082 h264parser: Expose framerate even if fixed_frame_rate flag isn't set
There is nothing in the spec that state that framerate is not valid in
that case. This aligns GStreamer with FFMPEG behaviour for similar
streams.

https://bugzilla.gnome.org/show_bug.cgi?id=793284
2018-02-21 16:31:27 -05:00
Tim-Philipp Müller
5b1a968840 audioaggregator: remove, moved to -base
https://bugzilla.gnome.org/show_bug.cgi?id=791218
2018-02-13 14:12:09 +00:00
Mathieu Duponchelle
ce98e7b87b adaptivedemux: reject segment seeks
While #782140 can stay open for actually handling these,
the fact is currently adaptivedemux does not handle segment
seeks, and as such should not accept them.

https://bugzilla.gnome.org/show_bug.cgi?id=784655
2018-02-02 16:59:54 +01:00
Matthew Waters
1894293d63 webrtcbin: an element that handles the transport aspects of webrtc connections
SDP's are generated and consumed according to the W3C PeerConnection API
available from https://www.w3.org/TR/webrtc/

The SDP is either created initially from the connected
sink pads/attached transceivers as in the case of generating an offer or
intersected with the connected sink pads/attached transceivers as in
the case for creating an answer.  In both cases, the rtp payloaded streams
sent by the peer are exposed as separate src pads.

The implementation supports trickle ICE, RTCP muxing, reduced size RTCP.

With contributions from:
Nirbheek Chauhan <nirbheek@centricular.com>
Mathieu Duponchelle <mathieu@centricular.com>
Edward Hervey <edward@centricular.com>

https://bugzilla.gnome.org/show_bug.cgi?id=792523
2018-02-02 15:02:21 +11:00
Sreerenj Balachandran
cedc7d4def codecparser: vp8: Fix range decoder init
According to the vp8 spec, the first partition (size can be derived from
the frame header) should have all compressed header information and we
implemented gst codecparser based on that. But it doesn't seem to be the
case with some of the streams (#792773) and libvpx
works fine because it uses the whole frame size (not the first partition
size) to initialize the bool decoder.

https://bugzilla.gnome.org/show_bug.cgi?id=792773
2018-01-30 11:34:58 -09:00
Mathieu Duponchelle
99f646b009 videoaggregatorpad: implement skip_buffer
Skip buffers from sources with a framerate higher than the output
framerate.

https://bugzilla.gnome.org/show_bug.cgi?id=781928
2018-01-23 20:19:38 +01:00
Tim-Philipp Müller
c7e34a0b2f Update for renamed aggregator pad API
https://bugzilla.gnome.org/show_bug.cgi?id=791204
2018-01-23 09:01:00 +00:00
Philippe Normand
0c14a92c28 player: doc update for set_subtitle_uri()
A call to this function without enabling the subtitle track has no effect.
2018-01-07 17:03:10 +00:00
Edward Hervey
7ecb3dc917 nalutils: Fix Exponential-Golomb 'ue' parsing
The algorithm we use only supports up to a maximum exponent of 31
(for a maximum resulting of 2**32 -1)

CID #1427097
2018-01-02 15:37:32 +01:00
Philippe Normand
13363f2388 player: transfer ownership of info properties
The previous code would emit GObject critical warnings when the info properties
are NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=791982
2017-12-27 15:28:44 +00:00
Edward Hervey
12f8410cd2 audioaggregator: Don't leak pads
all audioaggregator subclasses were leaking the first sink pad :)
2017-12-20 15:03:44 +01:00
Jun Xie
26cd1f108e adaptivedemux: fix pending_segment log
pending_segment shall be logged as GST_PTR_FORMAT, it's an event

https://bugzilla.gnome.org/show_bug.cgi?id=791813
2017-12-20 14:20:55 +02:00
Mathieu Duponchelle
536cb12577 audioaggregator: implement input conversion
https://bugzilla.gnome.org/show_bug.cgi?id=786344
2017-12-19 23:39:37 +01:00
Tim-Philipp Müller
2b7cc47990 allocatorsbad: physmem moved to -base 2017-12-19 12:02:31 +00:00
Tim-Philipp Müller
769a21d0bb gl: remove GStreamer OpenGL integration library and move to -base
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2017-12-19 12:02:31 +00:00
Jun Xie
f995bcf85a adaptivedemux: fix log integer format
range_start/range_end shall be logged as G_GINT64_FORMAT

https://bugzilla.gnome.org/show_bug.cgi?id=791735
2017-12-18 14:09:36 +01:00
Sebastian Dröge
cc58bd6ae0 player: Fix-up set_seek_accurate() configuration to take a player config instead of a player instance 2017-12-16 10:44:26 +02:00
Sebastian Dröge
20c4dc25fb player: Consistently use GstVideoMultiviewFramePacking instead of Mode
The latter needs additional metadata, and the former was already used
everywhere except for the functions: in properties in playbin itself.
2017-12-16 10:23:41 +02:00
Josep Torra
842d7a9162 cocoa: fix a warning when building in MacOS 10.12
gstglwindow_cocoa.m:186:60: error: incompatible pointer types sending 'GstGLContextCocoa *'
(aka 'struct _GstGLContextCocoa *') to parameter of type 'GstGLContext *' (aka 'struct _GstGLContext *')
2017-12-12 08:31:47 +01:00
Víctor Manuel Jáquez Leal
c0d87b5dd3 gl: display: demote error level at display creation error
https://bugzilla.gnome.org/show_bug.cgi?id=791391
2017-12-11 22:47:01 +01:00
Nicolas Dufresne
472b8a3736 gldisplay: Prefer wayland over X11
As most Wayland compositors supports XWayland, X11 backend get
selected. This also realign better GStreamer decision to what
happens with GTK and other stack out there.
2017-12-02 15:25:38 -05:00