platform/upstream/gstreamer.git
5 years agovkqueue: unly unref the context query if it succeeds
Matthew Waters [Wed, 8 May 2019 04:48:43 +0000 (14:48 +1000)]
vkqueue: unly unref the context query if it succeeds

5 years agovulkansink: Respond to queue queries
Matthew Waters [Wed, 8 May 2019 04:47:43 +0000 (14:47 +1000)]
vulkansink: Respond to queue queries

5 years agovulkan: large docs update
Matthew Waters [Thu, 11 Apr 2019 06:52:54 +0000 (16:52 +1000)]
vulkan: large docs update

5 years agovulkan: add a command pool object for tracking
Matthew Waters [Wed, 10 Apr 2019 04:27:26 +0000 (14:27 +1000)]
vulkan: add a command pool object for tracking

5 years agovkswapper: don't output duplicate formats
Matthew Waters [Wed, 10 Apr 2019 01:56:59 +0000 (11:56 +1000)]
vkswapper: don't output duplicate formats

5 years agovulkan: make a gstvulkan library out of the existing API
Matthew Waters [Mon, 8 Apr 2019 11:35:22 +0000 (21:35 +1000)]
vulkan: make a gstvulkan library out of the existing API

5 years agovkbufferpool: Fix multiplaner allocations
Matthew Waters [Mon, 8 Apr 2019 08:43:50 +0000 (18:43 +1000)]
vkbufferpool: Fix multiplaner allocations

Use the plane width/height and the sizes required by vulkan

Fixes allocation of:
videotestsrc ! video/x-raw,format=I420 ! vulkanupload ! fakesink

5 years agovk*memory: explicitly error out for driver NPOT alignment
Matthew Waters [Mon, 8 Apr 2019 08:42:12 +0000 (18:42 +1000)]
vk*memory: explicitly error out for driver NPOT alignment

5 years agovulkan/image: initialize the requirements struct before using it
Matthew Waters [Thu, 4 Apr 2019 08:30:28 +0000 (19:30 +1100)]
vulkan/image: initialize the requirements struct before using it

5 years agovulkan: don't require every element to have a display
Matthew Waters [Thu, 4 Apr 2019 08:27:55 +0000 (19:27 +1100)]
vulkan: don't require every element to have a display

Only sink elements really care about a valid display

5 years agovulkan: remove unused X11 window system references
Matthew Waters [Thu, 4 Apr 2019 07:38:13 +0000 (18:38 +1100)]
vulkan: remove unused X11 window system references

We use XCB instead

5 years agovulkan: remove unused layer enablement
Matthew Waters [Thu, 4 Apr 2019 06:33:34 +0000 (17:33 +1100)]
vulkan: remove unused layer enablement

This is possible now via the vulkan loader

5 years agowebrtc: Fix log when adding stun server
Ali Yousuf [Mon, 20 May 2019 11:34:55 +0000 (16:34 +0500)]
webrtc: Fix log when adding stun server

5 years agowebrtc: fix the location of signalling-state change notification
Matthew Waters [Tue, 4 Jun 2019 05:35:24 +0000 (15:35 +1000)]
webrtc: fix the location of signalling-state change notification

1. The spec indicates that the notification should occur near the end of
   'setting the description' processing
2. The current location with the drop of the lock could cause the 'check
   if negotiation is needed' logic to execute and become confused about
   the state of the webrtcbin's current local descriptions.
   In the bad case, the following assertions could be hit:
   g_assert (trans->mline < gst_sdp_message_medias_len (webrtc->current_local_description->sdp));
   g_assert (trans->mline < gst_sdp_message_medias_len (webrtc->current_remote_description->sdp));

Moving the signalling state change later in the set description task
means that checking for a renegotiation will early abort as the
signalling state is not STABLE before the session description and
transceivers have been updated.

5 years agomake: rtp: Remove spurious header file
Nicolas Dufresne [Tue, 4 Jun 2019 00:29:18 +0000 (20:29 -0400)]
make: rtp: Remove spurious header file

This header file no longer exist.

5 years agortpmanagerbad: add RTP streaming elements
Marc Leeman [Mon, 3 Jun 2019 20:08:23 +0000 (20:08 +0000)]
rtpmanagerbad: add RTP streaming elements

This is a re-implementation of the RTP elements that are submitted in
2013 to handle RTP streams. The elements handle a correct connection
for the bi-directional use of the RTCP sockets.

https://bugzilla.gnome.org/show_bug.cgi?id=703111

The rtpsink and rtpsrc elements add an URI interface so that streams
can be decoded with decodebin using the rtp:// interface.

The code can be used as follows

```
gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay config-interval=3 ! rtpsink uri=rtp://239.1.1.1:1234

gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay config-interval=1 ! rtpsink uri=rtp://239.1.2.3:5000
gst-launch-1.0 rtpsrc uri=rtp://239.1.2.3:5000?encoding-name=H264 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink

gst-launch-1.0 videotestsrc ! avenc_mpeg4 ! rtpmp4vpay config-interval=1 ! rtpsink uri=rtp://239.1.2.3:5000
gst-launch-1.0 rtpsrc uri=rtp://239.1.2.3:5000?encoding-name=MP4V-ES ! rtpmp4vdepay ! avdec_mpeg4 ! videoconvert ! xvimagesink
```

rtpmanagerbad: add pkg-config
rtpmanagerbad: Rtp should be uppercase
rtpmanagerbad: add G_OS_WIN32 for shielding unix headers
rtpmanagerbad: remove Since from documentation
rtpmanagerbad: rename lib name from nrtp to rtpmanagerbad
rtpmanagerbad: sync meson.build with other modules
rtpmanagerbad: add Makefile.am
rtpmanagerbad: use GstElement to count pads
rtpmanagerbad: use gst_bin_set_suppressed_flags
rtpmanagerbad: check element creation
rtpmanagerbad: post message when trying to access missing rtpbin
rtpmanagerbad: return FALSE with g_return tests
rtpmanagerbad: use gsocket multicast check
rtpmanagerbad: use gst_caps_new_empty_simple iso gst_caps_from_string
rtpmanagerbad: sync with gstrtppayloads.h
rtpmanagerbad: correct media type X-GST
rtpmanagerbad: test if a compatible pad was found
rtpmanagerbad: remove evil copy of GstRTPPayloadInfo
rtpmanagerbad: add gio_dep to meson
rtpmanagerbad: revert to old glib boilerplate

GStreamer 1.16 does not yet support the newer GLib templates, so revert.

rtpmanagerbad: return GST_STATE_CHANGE_NO_PREROLL for live sources

for live sources, NO_PREROLL should be returned for PLAYING->PAUSED and
READY->PAUSED transitions.

rtpmanagerbad: use GstElement pad counting
rtpmanagerbad: just use template name to request pad
rtpmanagerbad: remove commented code
rtpmanagerbad: use funnel to send multiple streams on one socket
rtpmanagerbad: avoid beaches

beaches should only be used during the summer, so rewrite the code to
return explicitly and avoid beaches during the winter.

rtpmanagerbad: add copyright to test code
rtpmanagerbad: g_free is NULL safe
rtpmanagerbad: do not trace rtpbin
rtpmanagerbad: return NULL explitly
rtpmanagerbad: warn when data port is not even

According to RFC 3550, RTP data should be sent on even ports, while RTCP
is sent on the following odd port.

rtpmanagerbad: document port allocation in rtpsink/src
rtpmanagerbad: improve uri description
rtpmanagerbad: add comment re-use socket
rtpmanagerbad: rename gst_object_set_properties_from_uri_query
rtpmanagerbad: loan prop/val setter from rist
rtpmanagerbad: rtpsrc: fix unitialised pointer
rtpmanagerbad: fix silly typo
rtpmanagerbad: test for empty key/value
rtpmanagerbad: rtpsrc: deprecate ssrc collision to INFO
rtpmanagerbad: sync debug with rist
rtpmanagerbad: small strings allocated on stack
rtpmanagerbad: correct rename
rtpmanagerbad: add locking on prop setters/getters

Locking is added because the URI allows to access the properties too.

rtpmanagerbad: allow for RTCP through NAT
rtpmanagerbad: move gio to header file
rtpmanagerbad: free small strings too
rtpmanagerbad: ttl_mc for ttl on dynudpsink
rtpmanagerbad: add comments on the URI registered
rtpmanagerbad: correct macro after file rename
rtpmanagerbad: code style
rtpmanagerbad: handle wrong URIs in setter
rtpmanagerbad: nit URI notation correction

In an URI, the first key/value pair should not have an ampersand, the
parser did not die though.

5 years agomeson: Bump minimal GLib version to 2.44
Niels De Graef [Fri, 31 May 2019 21:06:33 +0000 (23:06 +0200)]
meson: Bump minimal GLib version to 2.44

This means we can use some newer features and get rid of some
boilerplate code using the G_DECLARE_* macros.

As discussed on IRC, 2.44 is old enough by now to start depending on it.

5 years agotests/dash_mpd: take account of Period start in expected timestamps
Alex Ashley [Tue, 11 Dec 2018 14:43:21 +0000 (14:43 +0000)]
tests/dash_mpd: take account of Period start in expected timestamps

The start of each segment is relative to the Period start, minus
the presentation time offset.

As specified in section 5.3.9.6 of the MPEG DASH specification:
The value of the @t attribute minus the value of the
@presentationTimeOffset specifies the MPD start time of
the first Segment in the series.

Several tests use a Period@start value of 10 seconds, which either
needs to be taken into account when calculating expected timestamps
or have that attribute removed.

This commit uses a mix of updating the timestamps and removing the
start attribute, so that both the case of its presence and absence
is tested.

5 years agodashdemux: include both Period start and presentationTimeOffset in segment start
Alex Ashley [Tue, 16 Oct 2018 15:57:30 +0000 (16:57 +0100)]
dashdemux: include both Period start and presentationTimeOffset in segment start

The start of each segment is relative to the Period start, minus
the presentation time offset.

As specified in section 5.3.9.6 of the MPEG DASH specification:
    The value of the @t attribute minus the value of the
    @presentationTimeOffset specifies the MPD start time of
    the first Segment in the series.

dashdemux was not taking account of presentationTimeOffset and in
some methods was not taking into account the Period start time.
This commit modifies the segment->start value to always be
relative to the MPD start time (zero for VOD,
availabilityStartTime for live streams). This makes all uses of
the segment list consistent.

Fixes #841

5 years agodocs: document gstreamer-bad-audio
Mathieu Duponchelle [Fri, 31 May 2019 23:42:51 +0000 (01:42 +0200)]
docs: document gstreamer-bad-audio

And unprefix subproject paths, making a special case for
webrtc, to not conflict with the webrtc plugin

5 years agolibs: build a gir file for gstreamer-bad-audio
Mathieu Duponchelle [Fri, 31 May 2019 23:42:06 +0000 (01:42 +0200)]
libs: build a gir file for gstreamer-bad-audio

5 years agoavwait: Don't print warnings for every buffer passed
Vivia Nikolaidou [Tue, 2 Oct 2018 08:25:14 +0000 (11:25 +0300)]
avwait: Don't print warnings for every buffer passed

5 years agomsdk: return a right pointer for VUYA format
Haihao Xiang [Fri, 31 May 2019 06:09:40 +0000 (14:09 +0800)]
msdk: return a right pointer for VUYA format

The first channel in memory is V for VUYA format, note
GST_VIDEO_FORMAT_VUYA is mapped to MFX_FOURCC_AYUV in this plugin

5 years agodocs: update plugin doc cache and add more plugins
Tim-Philipp Müller [Wed, 29 May 2019 16:05:34 +0000 (17:05 +0100)]
docs: update plugin doc cache and add more plugins

5 years agomeson: add more plugins to plugins list
Tim-Philipp Müller [Wed, 29 May 2019 10:28:00 +0000 (11:28 +0100)]
meson: add more plugins to plugins list

Makes sure their path gets added to the uninstalled environment
and makes sure they get included in the docs.

5 years agobasetsmux: don't reset pad on flush_stop
Mathieu Duponchelle [Wed, 22 May 2019 19:44:44 +0000 (21:44 +0200)]
basetsmux: don't reset pad on flush_stop

This was mistakenly added when porting to aggregator, this
restores the old behaviour, by only resetting them when the
muxer itself is reset

5 years agompegtssection: events don't necessarily have a structure
Mathieu Duponchelle [Wed, 22 May 2019 19:44:22 +0000 (21:44 +0200)]
mpegtssection: events don't necessarily have a structure

5 years agobasetsmux: fix send_event by chaining up
Mathieu Duponchelle [Wed, 22 May 2019 19:44:02 +0000 (21:44 +0200)]
basetsmux: fix send_event by chaining up

5 years agompegtsmux: add SECTION comment
Mathieu Duponchelle [Wed, 29 May 2019 16:27:09 +0000 (18:27 +0200)]
mpegtsmux: add SECTION comment

We include an example for injecting sections in the transport
stream in the documentation

5 years agotests: add example for injecting MPEG-TS sections
Mathieu Duponchelle [Wed, 29 May 2019 15:03:59 +0000 (17:03 +0200)]
tests: add example for injecting MPEG-TS sections

5 years agobasetsmux: preserve user-specified sections across resets
Mathieu Duponchelle [Wed, 29 May 2019 15:01:40 +0000 (17:01 +0200)]
basetsmux: preserve user-specified sections across resets

As sections can be provided by the user through send_event
when the element state is NULL, their lifetime is expected
to match that of the muxer, and they must be preserved when
the state changes

5 years agoatscmux: send empty RRT / MGT / STT tables
Mathieu Duponchelle [Wed, 22 May 2019 23:44:19 +0000 (01:44 +0200)]
atscmux: send empty RRT / MGT / STT tables

These are mandated by A/65, their absence gets flagged by
stream analyzers. Users can of course provide filled up
versions through the send_event API.

5 years agotsmux: maintain packet counters in a global array
Mathieu Duponchelle [Wed, 22 May 2019 22:03:18 +0000 (00:03 +0200)]
tsmux: maintain packet counters in a global array

We can have multiple TsMuxPacketInfo objects for the same PID
with user-provided sections, for example ATSC requires multiple
tables with the same PID.

5 years agompegts: extend support for ATSC tables
Mathieu Duponchelle [Tue, 21 May 2019 00:53:20 +0000 (02:53 +0200)]
mpegts: extend support for ATSC tables

Adds constructors for the following sections:

STT: System Time Table
MGT: Master Guide Table
RRT: Rating Region Table

Also adds parsing code for RRT

5 years agowebrtc: only set sctp ports if they are different
Matthew Waters [Fri, 24 May 2019 14:02:05 +0000 (00:02 +1000)]
webrtc: only set sctp ports if they are different

SCTPassociation will complain if we do that while running and resetting
is not something we support at the moment

5 years agotests/webrtc: wait until the SDP has been set before continuing
Matthew Waters [Thu, 7 Mar 2019 13:39:59 +0000 (00:39 +1100)]
tests/webrtc: wait until the SDP has been set before continuing

If we renegotiate, then it is currently possible for an added stream to
be added to webrtcbin before the SDP is complete.  This causes an
internal inconsistency as there is a 'pending sink transceiver' without
a corresponding media section in the sdp.  It also does not have an
associated transport stream and will fail in _connect_input_stream().

5 years agotests/webrtc: fix racy test with a prenegotiated data channel
Matthew Waters [Thu, 7 Mar 2019 13:37:39 +0000 (00:37 +1100)]
tests/webrtc: fix racy test with a prenegotiated data channel

If both data channels become ready simultaneously, then the two integer
read-add-update cycles can execute concurrently and only ever increment
once instead of the required twice.  Use an atomic add instead.

5 years agowebrtc/dc: move some code from webrtcbin into the datachannel
Matthew Waters [Thu, 7 Mar 2019 13:32:53 +0000 (00:32 +1100)]
webrtc/dc: move some code from webrtcbin into the datachannel

5 years agowebrtc: hold onto any unknown ICE candidates until the next SDP set
Matthew Waters [Mon, 4 Mar 2019 10:44:33 +0000 (21:44 +1100)]
webrtc: hold onto any unknown ICE candidates until the next SDP set

It is very possible for badly behaving signalling or peers to send
us ICE candidates before we receive an SDP.  While we had consideration
for that on the first set SDP, subsequent SDP's could result in
misconfigured ICE transports.  Expand the previous code to also take
into account reconfigurations.

5 years agowebrtc: Initial support for stream addition/removal
Matthew Waters [Wed, 28 Nov 2018 06:23:31 +0000 (17:23 +1100)]
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.

5 years agotests/webrtc: a couple of debug/error string fixes
Matthew Waters [Wed, 5 Dec 2018 07:36:27 +0000 (18:36 +1100)]
tests/webrtc: a couple of debug/error string fixes

5 years agotests/webrtc: rewrite bundle checks for separate validate_sdp passes
Matthew Waters [Tue, 4 Dec 2018 11:49:05 +0000 (22:49 +1100)]
tests/webrtc: rewrite bundle checks for separate validate_sdp passes

Improves reusability

5 years agotests/webrtc: add helper for getting the offer/answer element
Matthew Waters [Tue, 4 Dec 2018 09:38:19 +0000 (20:38 +1100)]
tests/webrtc: add helper for getting the offer/answer element

5 years agotests/webrtc: only check audio/video for direction attributes
Matthew Waters [Tue, 4 Dec 2018 09:32:56 +0000 (20:32 +1100)]
tests/webrtc: only check audio/video for direction attributes

5 years agowebrtcbin: expose the transceiver as a pad property
Matthew Waters [Thu, 6 Dec 2018 12:28:18 +0000 (23:28 +1100)]
webrtcbin: expose the transceiver as a pad property

5 years agowebrtc/transceiver: add a set_direction function
Matthew Waters [Thu, 6 Dec 2018 12:25:54 +0000 (23:25 +1100)]
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.

5 years agowebrtc: track and log more rtpbin state
Matthew Waters [Wed, 5 Dec 2018 08:17:45 +0000 (19:17 +1100)]
webrtc: track and log more rtpbin state

like bye's timeouts, validation, activation, etc

5 years agowebrtc: add support for intersecting inactive transceiver directions
Matthew Waters [Thu, 6 Dec 2018 05:59:52 +0000 (16:59 +1100)]
webrtc: add support for intersecting inactive transceiver directions

5 years agowebrtc: mark remote/local-description as readonly
Matthew Waters [Tue, 4 Dec 2018 09:30:49 +0000 (20:30 +1100)]
webrtc: mark remote/local-description as readonly

5 years agowebrtc: don't reuse stopped transceivers at all
Matthew Waters [Tue, 27 Nov 2018 08:27:27 +0000 (19:27 +1100)]
webrtc: don't reuse stopped transceivers at all

5 years agowebrtc: also check for a null mid to signify an unassociated transceiver
Matthew Waters [Tue, 27 Nov 2018 08:25:51 +0000 (19:25 +1100)]
webrtc: also check for a null mid to signify an unassociated transceiver

We always give our transceivers an mline on creation so that check is
not useful by itself

5 years agowebrtc: only check sink pads for a 'sink pads have caps' check
Matthew Waters [Tue, 27 Nov 2018 08:24:40 +0000 (19:24 +1100)]
webrtc: only check sink pads for a 'sink pads have caps' check

5 years agowebrtc: fix answer creation with multiple streams and similar caps
Matthew Waters [Mon, 26 Nov 2018 11:10:57 +0000 (22:10 +1100)]
webrtc: fix answer creation with multiple streams and similar caps

5 years agotests/webrtc: factor out sdp validation into a single function
Matthew Waters [Mon, 26 Nov 2018 09:41:29 +0000 (20:41 +1100)]
tests/webrtc: factor out sdp validation into a single function

5 years agotests/webrtc: validate number of sdp media using validate_sdp
Matthew Waters [Mon, 26 Nov 2018 08:54:18 +0000 (19:54 +1100)]
tests/webrtc: validate number of sdp media using validate_sdp

5 years agotests/webrtc: allow multiple validation functions
Matthew Waters [Mon, 26 Nov 2018 08:48:31 +0000 (19:48 +1100)]
tests/webrtc: allow multiple validation functions

5 years agotests/webrtc: test that duplicate negotiations succeed
Matthew Waters [Mon, 26 Nov 2018 08:19:04 +0000 (19:19 +1100)]
tests/webrtc: test that duplicate negotiations succeed

5 years agowebrtcbin: Expose current and pending local/remote description properties
Philippe Normand [Tue, 28 May 2019 15:58:20 +0000 (16:58 +0100)]
webrtcbin: Expose current and pending local/remote description properties

They are already handled in the property getter and setter functions but were
not formally declared in the GObject class.

5 years agodoc: remove xml from comments
Mathieu Duponchelle [Wed, 29 May 2019 20:58:08 +0000 (22:58 +0200)]
doc: remove xml from comments

5 years agoext/hls/meson.build: fix dependency logic
Adam Duskett [Wed, 29 May 2019 18:33:02 +0000 (18:33 +0000)]
ext/hls/meson.build: fix dependency logic

Currently, if one was to set -Dhls-crypto to either libgcrypt or openssl
instead of auto, the following lines would fail because hls_crypto_dep is not
yet set:

if not hls_crypto_dep.found() and ['auto', 'libgcrypt'].contains(hls_crypto)
if not hls_crypto_dep.found() and ['auto', 'openssl'].contains(hls_crypto)

Instead, change "if not hls_crypto_dep.found()" to "if not have_hls_crypto"
which fixes the error.

5 years agodocs: remove stale plugins from docs plugin cache
Tim-Philipp Müller [Wed, 29 May 2019 11:48:06 +0000 (12:48 +0100)]
docs: remove stale plugins from docs plugin cache

gtk plugin has moved to -good, schroedinger has been removed.

5 years agowaylandsink: Workaround gnome-shell bug
Nicolas Dufresne [Fri, 24 May 2019 00:24:40 +0000 (20:24 -0400)]
waylandsink: Workaround gnome-shell bug

Use a timeout to limit that amount of time we wait after the compositor
for the initial configure event. Compositor are support to emit a
configure event before any wl_buffer can be attached. The problem is
that Weston strongly enforce this, while gnome-shell simply does not
emit such an event.

5 years agokmssink: Fixup all errno tracing
Nicolas Dufresne [Sun, 26 May 2019 10:13:48 +0000 (12:13 +0200)]
kmssink: Fixup all errno tracing

All DRM ioctl uses errno to report the error and simply returns -1
when some error occured. This patch fixes all usage of the return
value instead of errno to trace the error type and moves to g_strerror
instead of string.h strerror in order to be consistent with the rest
of GStreamer.

5 years agodoc: update plugin cache
Mathieu Duponchelle [Sat, 25 May 2019 17:48:25 +0000 (19:48 +0200)]
doc: update plugin cache

5 years agodocs: Updated plugins cache file
Nicolas Dufresne [Sat, 25 May 2019 15:35:26 +0000 (17:35 +0200)]
docs: Updated plugins cache file

This was done so that the duplicated rist element would go way.

5 years agodoc: fix element section documentations
Mathieu Duponchelle [Sat, 25 May 2019 14:57:57 +0000 (16:57 +0200)]
doc: fix element section documentations

Element sections were not rendered anymore after the hotdoc
port, fixing this revealed a few incorrect links.

5 years agocodecparsers: fix debug category initialisation
Tim-Philipp Müller [Sat, 15 Nov 2014 22:58:49 +0000 (22:58 +0000)]
codecparsers: fix debug category initialisation

Make thread-safe.

5 years agoavwait: Protect properties and some other code with the mutex
Sebastian Dröge [Mon, 20 May 2019 13:15:08 +0000 (16:15 +0300)]
avwait: Protect properties and some other code with the mutex

These variables are all accessed from multiple threads.

Also fix some minor leaks in error code paths.

5 years agoavwait: Insert some empty lines to give the code some space to breath
Sebastian Dröge [Mon, 20 May 2019 12:45:50 +0000 (15:45 +0300)]
avwait: Insert some empty lines to give the code some space to breath

5 years agoavwait: Allow setting start timecode after end timecode and the other way around
Sebastian Dröge [Mon, 20 May 2019 12:30:28 +0000 (15:30 +0300)]
avwait: Allow setting start timecode after end timecode and the other way around

This might be necessary temporarily for changing the previous settings.
Make it an actual error if the settings are like this while processing a
buffer.

5 years agowayland/wlbuffer: just return if used_by_compositor is true when attach
Haihua Hu [Thu, 18 Oct 2018 05:35:04 +0000 (13:35 +0800)]
wayland/wlbuffer: just return if used_by_compositor is true when attach

When buffer is used by compositor, we don't need attach it and hold one
more reference. Just check used_by_compositor, just return if it is true.
Assert error log is not need, this is normal behavior.

5 years agoproxy: Forward queries/events sent directly to the element correctly
Sebastian Dröge [Tue, 21 May 2019 13:17:40 +0000 (16:17 +0300)]
proxy: Forward queries/events sent directly to the element correctly

5 years agoproxy: Set SOURCE flag on the source and SINK flag on the sink
Sebastian Dröge [Tue, 21 May 2019 13:03:21 +0000 (16:03 +0300)]
proxy: Set SOURCE flag on the source and SINK flag on the sink

So that they are properly recognized as such.

5 years agoivfparse: Check the data size against IVF_FRAME_HEADER_SIZE
Haihao Xiang [Wed, 22 May 2019 04:25:38 +0000 (12:25 +0800)]
ivfparse: Check the data size against IVF_FRAME_HEADER_SIZE

It is parsing frame data and so should check the data size against the
frame header size instead of the file header size. If don't, it is
possible to drop the last frame because IVF_FILE_HEADER_SIZE is greater
than IVF_FRAME_HEADER_SIZE

5 years agodoc: Add rist plugin to hotdoc
Nicolas Dufresne [Tue, 14 May 2019 21:04:41 +0000 (17:04 -0400)]
doc: Add rist plugin to hotdoc

5 years agorist: Add combined bonding-method support
Nicolas Dufresne [Tue, 7 May 2019 19:58:04 +0000 (15:58 -0400)]
rist: Add combined bonding-method support

This patchs add support for configuring the bonding method used. There is
two method specified

 - redundant: All the RTP packets are replicated
 - combined: RTP packet are evenly distributed over each links

Additionally, an application can set the "dispatcher" property in order
to implement custom dispatching method. Whenever the "dispatcher"
property is set, "bonding-method" property will be ignored.

5 years agoristsrc: Implement per session stats
Nicolas Dufresne [Tue, 7 May 2019 15:32:00 +0000 (11:32 -0400)]
ristsrc: Implement per session stats

As we can now have multiple sessions, stats need to be implemented per
session. This follow RTPSession model with sources. The stats are now:

    dropped: 0
    received: 0
    recovered: 0
    permanently-lost: 0
    duplicates: 0
    retransmission-requests-sent: 0
    rtx-roundtrip-time: 0
    session-stats:
        session-id=0
            rtp-from=""
            rtcp-from=""
            dropped=0
            received=0
        session-id=1
            rtp-from=""
            rtcp-from=""
            dropped=0
            received=0
        . . .

session-stats is a GValueArray as there is no better alternatives.

5 years agoristsrc: Cleanup unused include
Nicolas Dufresne [Sat, 4 May 2019 02:28:56 +0000 (22:28 -0400)]
ristsrc: Cleanup unused include

5 years agoristsink: Implement per session stats
Nicolas Dufresne [Fri, 3 May 2019 21:44:14 +0000 (17:44 -0400)]
ristsink: Implement per session stats

As we can now have multiple sessions, stats need to be implemented per
session. This follow RTPSession model with sources. The stats are now:

  sent-original-packets: 0
  sent-retransmitted-packets: 0
       session-stats:
            session-id=0
              sent-original-packets=0
              sent-retransmitted-packets=0
              round-trip-time=0
            session-id=1
              sent-original-packets=0
              sent-retransmitted-packets=0
              round-trip-time=0
            . . .

session-stats is a GValueArray as there is no better alternatives.

5 years agoristsrc: rtxbin may be null in finalize
Nicolas Dufresne [Fri, 3 May 2019 20:52:02 +0000 (16:52 -0400)]
ristsrc: rtxbin may be null in finalize

5 years agoristsrc: Add bonding support
Nicolas Dufresne [Thu, 28 Feb 2019 22:21:25 +0000 (17:21 -0500)]
ristsrc: Add bonding support

This add support for receiving and aggregating the same stream
over multiple addresses.

5 years agoristsink: Implement bonding support
Nicolas Dufresne [Fri, 15 Feb 2019 22:13:02 +0000 (17:13 -0500)]
ristsink: Implement bonding support

5 years agorist: spell and grammar corrects in top comments
Marc Leeman [Tue, 21 May 2019 18:49:02 +0000 (18:49 +0000)]
rist: spell and grammar corrects in top comments

5 years agodocs: Update cache and mark some rist prop as 'show-default'
Thibault Saunier [Mon, 20 May 2019 14:26:14 +0000 (10:26 -0400)]
docs: Update cache and mark some rist prop as 'show-default'

5 years agodoc: Add proxysink/proxysrc
Thibault Saunier [Mon, 20 May 2019 14:16:02 +0000 (10:16 -0400)]
doc: Add proxysink/proxysrc

5 years agowebrtc: Add various Since markers to new types after 1.14.0
Sebastian Dröge [Tue, 21 May 2019 09:15:55 +0000 (12:15 +0300)]
webrtc: Add various Since markers to new types after 1.14.0

5 years agompegtsmux: Fix build warning error
Seungha Yang [Mon, 20 May 2019 10:33:27 +0000 (19:33 +0900)]
mpegtsmux: Fix build warning error

gstmpegtsmux.c:291:3: error: implicit declaration of function ‘memmove’ [-Werror=implicit-function-declaration]
   memmove (map.data + 4, map.data, map.size - 4);
   ^
gstmpegtsmux.c:291:3: error: incompatible implicit declaration of built-in function ‘memmove’ [-Werror]
gstmpegtsmux.c:291:3: note: include ‘<string.h>’ or provide a declaration of ‘memmove’

5 years agobasetsmux: improve bitrate property documentation
Mathieu Duponchelle [Thu, 16 May 2019 23:21:53 +0000 (01:21 +0200)]
basetsmux: improve bitrate property documentation

5 years agotsmux: refactor logic for when to (re)transmit tables
Mathieu Duponchelle [Tue, 14 May 2019 23:35:04 +0000 (01:35 +0200)]
tsmux: refactor logic for when to (re)transmit tables

In order to output them at regular intervals in the bitstream
when a bitrate is specified.

5 years agobasetsmux: fix PCR stream selection
Mathieu Duponchelle [Tue, 14 May 2019 23:34:51 +0000 (01:34 +0200)]
basetsmux: fix PCR stream selection

5 years agoFix compile after aggregator rewrite and base class refactor
Jan Schmidt [Thu, 9 May 2019 15:33:17 +0000 (01:33 +1000)]
Fix compile after aggregator rewrite and base class refactor

5 years agotsmux: fix continuity counter for packets with no payload
Mathieu Duponchelle [Wed, 8 May 2019 14:56:29 +0000 (16:56 +0200)]
tsmux: fix continuity counter for packets with no payload

5 years agompegtsmux: aggregator port
Mathieu Duponchelle [Tue, 30 Apr 2019 23:09:19 +0000 (01:09 +0200)]
mpegtsmux: aggregator port

5 years agompegtsmux: spring cleanup, no functional change
Mathieu Duponchelle [Mon, 29 Apr 2019 23:42:59 +0000 (01:42 +0200)]
mpegtsmux: spring cleanup, no functional change

5 years agobasetsmux: extract m2ts-mode to mpegtsmux
Mathieu Duponchelle [Mon, 29 Apr 2019 22:50:06 +0000 (00:50 +0200)]
basetsmux: extract m2ts-mode to mpegtsmux

5 years agompegtsmux: extract an actual base class
Mathieu Duponchelle [Fri, 26 Apr 2019 18:26:55 +0000 (20:26 +0200)]
mpegtsmux: extract an actual base class

5 years agompegtsmux: expose the vmethods necessary for ATSC E-AC-3 handling
Mathieu Duponchelle [Thu, 25 Apr 2019 22:01:31 +0000 (00:01 +0200)]
mpegtsmux: expose the vmethods necessary for ATSC E-AC-3 handling

5 years agompegtsmux: provide API for subclasses to override stream creation
Mathieu Duponchelle [Thu, 25 Apr 2019 18:23:03 +0000 (20:23 +0200)]
mpegtsmux: provide API for subclasses to override stream creation

5 years agompegtsmux: add an ATSC subclass
Mathieu Duponchelle [Thu, 25 Apr 2019 16:26:27 +0000 (18:26 +0200)]
mpegtsmux: add an ATSC subclass

5 years agotsmux: Calculate PCR from number of bytes written in CBR mode
Mathieu Duponchelle [Mon, 22 Apr 2019 20:50:07 +0000 (22:50 +0200)]
tsmux: Calculate PCR from number of bytes written in CBR mode