platform/upstream/gst-plugins-bad.git
2 years agowebrtcbin: Notify missing ice-gathering-state for COMPLETE 16/265816/7 submit/tizen/20211117.064045
Sangchul Lee [Fri, 29 Oct 2021 06:45:18 +0000 (15:45 +0900)]
webrtcbin: Notify missing ice-gathering-state for COMPLETE

Occasionally, GATHERING_STATE_COMPLETE was obtained in _update_ice_
gathering_state_task() before consuming all the tasks for local ICE
candidates in _on_local_ice_candidate_task(). It missed notifying the
'ice-gathering-state' signal for gathering completion.
This patch fixes it.

Change-Id: Ie0a997e6976f48b876cb0741f488826a0c172116
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
2 years agohlsdemux: Add condition for setting stream discontinuity 87/266587/3 submit/tizen/20211117.042930
Gilbok Lee [Tue, 16 Nov 2021 01:14:04 +0000 (10:14 +0900)]
hlsdemux: Add condition for setting stream discontinuity

- Set stream continuity when fragment time changes
- Change in the wrong define in the spec

Change-Id: I592f4cd915c2d186462f771714de797c4b424521

3 years agohlsdemux: Set stream discontinuity when the last PCR value differs by more than 1... 22/266422/4 accepted/tizen/unified/20211115.141610 submit/tizen/20211112.094049
Gilbok Lee [Fri, 12 Nov 2021 05:45:42 +0000 (14:45 +0900)]
hlsdemux: Set stream discontinuity when the last PCR value differs by more than 1 second

Change-Id: I1747f7485c9f2eabae67f6f17e11005715a1a081

3 years agotsdemux: Handle invalid PCR_PID streams 18/266418/3
Gilbok Lee [Fri, 12 Nov 2021 03:38:50 +0000 (12:38 +0900)]
tsdemux: Handle invalid PCR_PID streams

- If pcr_pid stream does not have PCR,
  find PCR in all streams and update the program PCR_pid

Change-Id: I53c7fcfc8c405eb9ff162d52000d56d7e9cf3bfb

3 years agowebrtcbin: Remove transceiver from array when releasing pad 29/265329/2
Sangchul Lee [Fri, 15 Oct 2021 03:07:47 +0000 (12:07 +0900)]
webrtcbin: Remove transceiver from array when releasing pad

Previously, even after releasing a pad, 'create-offer' could not
get valid sdp message. It is fixed.

Change-Id: I21120e5a4064f0c51cdf6dce88f51079592f5161
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agotsdemux: Fix the check for the wrong event type 99/263599/1 accepted/tizen/6.5/unified/20211029.013320 accepted/tizen/unified/20210907.121843 submit/tizen/20210907.025716 submit/tizen_6.5/20211028.163401 tizen_6.5.m2_release
Gilbok Lee [Tue, 7 Sep 2021 01:34:49 +0000 (10:34 +0900)]
tsdemux: Fix the check for the wrong event type

Change-Id: I54222748b3432b5f76392bb6567b0359c43dbb90

3 years agotsdemux: Save custom event(HLSMedia info) when program is NULL 33/263533/2 submit/tizen/20210906.055733
Gilbok Lee [Mon, 6 Sep 2021 04:52:58 +0000 (13:52 +0900)]
tsdemux: Save custom event(HLSMedia info) when program is NULL

Change-Id: Ida60c066ea5d069ccb7a64605317ee24805060bd

3 years agoMerge changes from topic "webrtc_based_on_1.19.1" into tizen
Sangchul Lee [Mon, 6 Sep 2021 04:53:59 +0000 (04:53 +0000)]
Merge changes from topic "webrtc_based_on_1.19.1" into tizen

* changes:
  tests/webrtc: check for more sdp things across the board
  webrtc: don't generate duplicate rtx payloads when bundle-policy is set
  webrtc ice: Add 'min/max-rtp-port' props for setting RTP port range
  webrtc ice: Only ever request one component, it's always rtcpmux
  webrtcbin: use regular ice nomination by default
  webrtc: expose transport property on sender and receiver
  webrtcbin: try harder not to pick duplicate media ids

3 years agotests/webrtc: check for more sdp things across the board 83/263483/1
Matthew Waters [Fri, 19 Mar 2021 05:36:41 +0000 (16:36 +1100)]
tests/webrtc: check for more sdp things across the board

e.g.

- test for a=setup:$val and direction attributes in all tests
- test number of media sections
- test number of formats in each m= section (for audio/video)
- test no duplicate formats

Change-Id: I9cbb75f9f127bc662f9f909bdc8bb33cd42326f6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2093>

3 years agowebrtc: don't generate duplicate rtx payloads when bundle-policy is set 81/263481/1
Matthew Waters [Mon, 1 Mar 2021 09:53:53 +0000 (20:53 +1100)]
webrtc: don't generate duplicate rtx payloads when bundle-policy is set

It was possible to generate a SDP that had an RTX payload type
that matched one of the media payload types when providing caps via
codec_preferences without any sink pads.

Fixes

m=video 9 UDP/TLS/RTP/SAVPF 96
...
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 nack pli
a=fmtp:96 apt=96

Change-Id: I0b2d360cb40abcf5a61035673d43f15a40fc09fa
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2046>

3 years agowebrtc ice: Add 'min/max-rtp-port' props for setting RTP port range 80/263480/1
Ilya Kreymer [Thu, 15 Aug 2019 15:25:26 +0000 (08:25 -0700)]
webrtc ice: Add 'min/max-rtp-port' props for setting RTP port range

default min port == 0, max port == 65535 -- if min port == 0, uses existing random port selection (range ignored)
add 'gathering_started' flag to avoid changing ports after gathering has started
validity checks: min port <= max port enforced, error thrown otherwise
include tests to ensure port range is being utilized (by @hhardy)

Change-Id: I5fcc747bb3416c37e2dfdb6d83c9552e30583212
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/119>

3 years agowebrtc ice: Only ever request one component, it's always rtcpmux 79/263479/1
Olivier Crête [Thu, 25 Feb 2021 16:58:57 +0000 (11:58 -0500)]
webrtc ice: Only ever request one component, it's always rtcpmux

Change-Id: Ic72fcc70844b5869961efed8878f815a087e71a9
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/119>

3 years agowebrtcbin: use regular ice nomination by default 75/263475/1
Matthew Waters [Mon, 22 Feb 2021 05:59:25 +0000 (16:59 +1100)]
webrtcbin: use regular ice nomination by default

1. We don't currently deal with an a=ice-options in the SDP which means
   we currently violate https://tools.ietf.org/html/rfc5245#section-8.1.1
   which states: "If its peer is using ICE options (present in
   an ice-options attribute from the peer) that the agent does not
   understand, the agent MUST use a regular nomination algorithm."
2. The recommendation is default to regular nomination in both RFC5245
   and RFC8445.  libnice change for this is
   https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/125
   which requires an API break in libnice.

Change-Id: I672c2d92b2ac258b563ed7a77a263502d1656bd2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2031>

3 years agowebrtc: expose transport property on sender and receiver 74/263474/1
Mathieu Duponchelle [Tue, 12 Jan 2021 18:12:42 +0000 (19:12 +0100)]
webrtc: expose transport property on sender and receiver

As advised by !1366#note_629558 , the nice transport should be
accessed through:

> transceiver->sender/receiver->transport/rtcp_transport->icetransport

All the objects on the path can be accessed through properties
except sender/receiver->transport. This patch addresses that.

Change-Id: I38e0c71f9dae0bf09ba4e8ea01cfa23726623d0a
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1952>

3 years agowebrtcbin: try harder not to pick duplicate media ids 73/263473/1
Mathieu Duponchelle [Tue, 22 Dec 2020 01:29:03 +0000 (02:29 +0100)]
webrtcbin: try harder not to pick duplicate media ids

On renegotiation, or when the user has specified a mid for
a transceiver, we need to avoid picking a duplicate mid for
a transceiver that doesn't yet have one.

Also assign the mid we created to the transceiver, that doesn't
fix a specific bug but seems to make sense to me.

Change-Id: I6c2399a352f2ab05b469914a348512bb2b5b4a34
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1902>

3 years agohlsdemux: Send HLSMedia information through custom event 06/263306/3
Gilbok Lee [Tue, 31 Aug 2021 08:22:13 +0000 (17:22 +0900)]
hlsdemux: Send HLSMedia information through custom event

Change-Id: Ibd1845ec1a40c81e026752b1e955cf16644f27bc

3 years agowebrtcbin: Reset need_negotiation flag in case of READY to NULL 85/262985/1 accepted/tizen/unified/20210826.123608 submit/tizen/20210825.083902
Sangchul Lee [Tue, 24 Aug 2021 07:49:13 +0000 (16:49 +0900)]
webrtcbin: Reset need_negotiation flag in case of READY to NULL

If the state is changed from PLAYING to NULL without releasing pad,
'on-negotiation-needed' signal is not be emitted even if the state
is changed to PLAYING again without any pad changes. It fixes this
issue.

[Version] 1.16.2-23
[Issue Type] Improvement

Change-Id: I15b6c34e590a84b6c9731e39f588078f8afaeef9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Make ssrc map into separate data structures 11/262811/2 accepted/tizen/unified/20210826.014219 submit/tizen/20210824.072619
Olivier Crête [Fri, 20 Nov 2020 22:32:44 +0000 (17:32 -0500)]
webrtc: Make ssrc map into separate data structures

They now contain a weak reference and that could be freed later
causing strange crashes as GWeakRef are not movable.

Change-Id: I3a5f4ee907bbaac48b25747f76f5d3abb7e3a1f6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: Get the remote-inbound stats from the right RTPSource 10/262810/2
Olivier Crête [Fri, 16 Oct 2020 01:23:08 +0000 (21:23 -0400)]
webrtcstats: Get the remote-inbound stats from the right RTPSource

This also means that we need to get the clock-rate from the codec instead
of from the RTPSource, as the remote one doesn't include a clock rate.

Change-Id: Ib7ee7746a26897fb0a6a188f8a4132acbd0a4e60
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agohlsdemux: Don't double-free variant streams on errors 23/262823/1 accepted/tizen/unified/20210824.123802 submit/tizen/20210823.074442
Edward Hervey [Wed, 11 Nov 2020 17:07:57 +0000 (18:07 +0100)]
hlsdemux: Don't double-free variant streams on errors

If an error happened switching to a new variant, we switch back to the previous
one ... except it will be unreffed when settin git.

In order to avoid such issues, keep a reference to the old variant until we're
sure we don't need it anymore

Fixes cases of double-free on variants and its contents

Change-Id: I2829e42d87e9d9218073aaa24ca18474748b092f
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1799>

3 years agohlsdemux: Re-use streams if possible 22/262822/1
Edward Hervey [Tue, 3 Nov 2020 16:48:02 +0000 (17:48 +0100)]
hlsdemux: Re-use streams if possible

When switching variants, try to re-use existing streams/pads instead of creating
new ones. When dealing with urisourcebin and decodebin3 this is not only the
expected way but also avoids a lot of buffering/hang issues.

Change-Id: I32cf158a0695e5af7de3a2e6001a0e9748f9e2b3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757>

3 years agom3u8: Make a debug function usable elsewhere 21/262821/1
Edward Hervey [Wed, 4 Nov 2020 09:36:21 +0000 (10:36 +0100)]
m3u8: Make a debug function usable elsewhere

The rest of the code might want to use this

Change-Id: Ica617d702a452e785fb1de16e910a3afcb56232d
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757>

3 years agowebrtcbin: Remove remnant of non-rtcp-mux mode 66/262666/2
Olivier Crête [Wed, 30 Dec 2020 18:51:21 +0000 (13:51 -0500)]
webrtcbin: Remove remnant of non-rtcp-mux mode

There was some code left that wasn't used anymore.

Change-Id: Ic192f19accf3d1758c80b66fe455851a1fce5442
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1930>

3 years agowebrtcstats: PLI/FIR/NACK direction are the opposite of the media 65/262665/2
Olivier Crête [Tue, 29 Dec 2020 18:29:05 +0000 (13:29 -0500)]
webrtcstats: PLI/FIR/NACK direction are the opposite of the media

Change-Id: I0c538c43041406abc1fb5b8727d2f0098594da51
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1924>

3 years agowebrtcbin: Implement getting stats for a specific pad 64/262664/2
Olivier Crête [Thu, 15 Oct 2020 23:36:45 +0000 (19:36 -0400)]
webrtcbin: Implement getting stats for a specific pad

Change-Id: I6147beab9bd62a7fe7c9cb4c76a0207476e3d77e
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: Also return the raw rtpsource stats for more information 63/262663/2
Olivier Crête [Sat, 10 Oct 2020 22:21:19 +0000 (18:21 -0400)]
webrtcstats: Also return the raw rtpsource stats for more information

Change-Id: Ic3d3503bedfb3d47b2ea5fc54c97b209f582d92a
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: Avoid copy of GstStructure 62/262662/2
Olivier Crête [Sat, 10 Oct 2020 00:59:58 +0000 (20:59 -0400)]
webrtcstats: Avoid copy of GstStructure

Instead transfer the ownership to the new structure

Change-Id: I08281880d7267ddddd39eb867669df48af5156d8
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: Remove receiver side when sending 61/262661/2
Olivier Crête [Sat, 10 Oct 2020 00:45:10 +0000 (20:45 -0400)]
webrtcstats: Remove receiver side when sending

Those are just invalid and just reflect what we sent. We'd need to parse the
RTCP XR packets from the other side to know more about those.

Change-Id: I071784b6017f156345e77463f4bb4980e9ee79f5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: Extract statistics from the rtpjitterbuffer 60/262660/2
Olivier Crête [Sat, 10 Oct 2020 00:27:40 +0000 (20:27 -0400)]
webrtcstats: Extract statistics from the rtpjitterbuffer

And expose them as standardised webrtc statistics

Change-Id: Ie4257b3ef0ffe0d3eb7128e3f48403cbba8a54f9
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcbin: Store the rtpjitterbuffer instances to extract stats from them 59/262659/2
Olivier Crête [Fri, 9 Oct 2020 22:45:57 +0000 (18:45 -0400)]
webrtcbin: Store the rtpjitterbuffer instances to extract stats from them

Store them as web refs to avoid having to worry about freeing later and because
the new-jitterbuffer is on a different thread

Change-Id: I96255421a669a3a08bf853ae0a5ad5f037ab114a
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: Document all RTP missing fields according to the latest spec 58/262658/2
Olivier Crête [Fri, 9 Oct 2020 23:59:18 +0000 (19:59 -0400)]
webrtcstats: Document all RTP missing fields according to the latest spec

Just document all the missing fields and document which ones will never
be implemented because they depend on the codec or depayloader

Change-Id: I52a9bde7155d146056dbc8bf8c450d3534b67847
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: RTCP computed RTT is only available at sender 54/262654/2
Olivier Crête [Fri, 9 Oct 2020 23:38:15 +0000 (19:38 -0400)]
webrtcstats: RTCP computed RTT is only available at sender

The receiver doesn't have the information to compute it.

Change-Id: Ic7ee27c650ca5853320a41c936a223f0c67198d1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcstats: Remove redundant lines 53/262653/2
Olivier Crête [Thu, 8 Oct 2020 21:11:30 +0000 (17:11 -0400)]
webrtcstats: Remove redundant lines

Change-Id: If5fd93a87026ca1d9d6e52c46c227b4e6209adf3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>

3 years agowebrtcbin: Call nice_debug_enable() to enable nice debug 99/262499/8 accepted/tizen/unified/20210824.123838 submit/tizen/20210818.024548
YoungHun Kim [Thu, 12 Aug 2021 06:15:21 +0000 (15:15 +0900)]
webrtcbin: Call nice_debug_enable() to enable nice debug

[Version] 1.16.2-22
[Issue Type] Improvement

Change-Id: Ibdb502e357bbe099703dbdff743980d9f1799eb7

3 years agowebrtc: Also remove rtcp_transport from the structure 26/262626/1
Olivier Crête [Wed, 4 Nov 2020 22:06:02 +0000 (17:06 -0500)]
webrtc: Also remove rtcp_transport from the structure

Change-Id: Id63ee4d28b7ebaf72004af554d16f711d6d72ee9
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Remove APIs to set transport on sender/receiver 25/262625/1
Olivier Crête [Tue, 3 Nov 2020 00:55:46 +0000 (19:55 -0500)]
webrtc: Remove APIs to set transport on sender/receiver

They're not not used ever.

Change-Id: Ia90b7edfd32571bc018cb0cb2e5c1a8132da79e7
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agortpsender: Add API to set the priority 24/262624/1
Olivier Crête [Thu, 9 Jul 2020 17:39:03 +0000 (13:39 -0400)]
rtpsender: Add API to set the priority

Change-Id: I2d2d907322a105e9e5d66667afca3373e03dc6d6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Remove non rtcp-mux code 23/262623/1
Olivier Crête [Tue, 3 Nov 2020 00:49:55 +0000 (19:49 -0500)]
webrtc: Remove non rtcp-mux code

RTCP mux is now always required by the WebRTC spec

Change-Id: I5a2112c84280d4ea7bf9969b5d2e7485855b9aaf
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Update libnice version requirement to 0.1.17 22/262622/1
Raul Tambre [Wed, 11 Nov 2020 11:39:37 +0000 (13:39 +0200)]
webrtc: Update libnice version requirement to 0.1.17

Since !1366 nice_agent_get_sockets() is used, which requires 0.1.17.
Update the version requirement accordingly.

Fixes #1459.

Change-Id: Ic7e8afdf65475e7ffde24aa0665dac8725cdc626
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1792>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Add properties to change the socket buffer sizes to ice object 21/262621/1
Olivier Crête [Tue, 23 Jun 2020 14:29:42 +0000 (10:29 -0400)]
webrtc: Add properties to change the socket buffer sizes to ice object

libnice doesn't touch the kernel buffer sizes. When dealing with RTP data,
it's generally advisable to increase them to avoid dropping packets locally.
This is especially important when running multiple higher bitrate streams at
the same time.

Change-Id: Iee0ad6c5252fba2b27dffadd629930b3152a5f9d
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1366>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Set the DSCP markings based on the priority 20/262620/1
Olivier Crête [Wed, 8 Jul 2020 21:24:36 +0000 (17:24 -0400)]
webrtc: Set the DSCP markings based on the priority

This matches how the WebRTC javascript API works and the Chrome implementation.

Change-Id: I83ee2bbf0afc6c627dc367ff7a1c8ea7a0fef43f
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Save the media kind in the transceiver 81/262581/2
Olivier Crête [Wed, 8 Jul 2020 23:13:33 +0000 (19:13 -0400)]
webrtc: Save the media kind in the transceiver

Change-Id: If05ff32397a82abfab8394dbaa0209261631cea7
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Document more objects 80/262580/2
Olivier Crête [Sat, 3 Oct 2020 01:38:00 +0000 (21:38 -0400)]
webrtc: Document more objects

Change-Id: I553f4312cbe67d159cb66f3b7a4359887c017874
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtcbin: Remove unused function 79/262579/2
Olivier Crête [Thu, 9 Jul 2020 17:45:20 +0000 (13:45 -0400)]
webrtcbin: Remove unused function

Change-Id: I98dea5b58f3b3870db28e5de6ee9d26728b07150
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Require gstreamer-sdp in the pkg-config file 78/262578/2
Sebastian Dröge [Wed, 7 Oct 2020 08:04:30 +0000 (11:04 +0300)]
webrtc: Require gstreamer-sdp in the pkg-config file

Some headers include API from it.

Change-Id: Iefdcb95ee4bc897dc6ce034a374c5df184a66b31
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1660>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtcbin: Accept end-of-candidate pass it to libnice 75/262575/2
Olivier Crête [Thu, 26 Mar 2020 00:50:01 +0000 (20:50 -0400)]
webrtcbin: Accept end-of-candidate pass it to libnice

libnice now supports the concept of end-of-candidate, so use the API
for it. This also means that if you don't do that, the webrtcbin will
never declared the connection as failed.

This requires bumping the dependency to libnice 0.1.16

Change-Id: I6eae82ce39e7e65ff71247f6d4343e6df0b547e5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1139>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtcbin: Merge the RTX SSRCs from all transceivers when bundling 74/262574/2
Olivier Crête [Wed, 26 Aug 2020 21:48:06 +0000 (17:48 -0400)]
webrtcbin: Merge the RTX SSRCs from all transceivers when bundling

Change-Id: Iedc2ed9fdeecc4b0b846983957be9a4fb47c6aaa
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1545>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: propagate more errors through the promise 73/262573/2
Matthew Waters [Wed, 26 Aug 2020 05:45:35 +0000 (15:45 +1000)]
webrtc: propagate more errors through the promise

Return errors on promises when things fail where available.

Things like parsing errors, invalid states, missing fields, unsupported
transitions, etc.

Change-Id: I1ca633d2620c99bf874a27d1c10f129d7aee96eb
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1565>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Update tests/ based on 1.18.4 60/262560/2
Sangchul Lee [Fri, 13 Aug 2021 08:06:03 +0000 (17:06 +0900)]
webrtc: Update tests/ based on 1.18.4

Files below are updated.
 - tests/check/elements/webrtcbin.c
 - tests/examples/webrtc/*

Change-Id: Ife33500c886357ec60fbaf28f5fdd16a84d4d575
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agotsdemux: Save language tag when program is NULL 35/262535/3 accepted/tizen/unified/20210817.123201 submit/tizen/20210813.081349
Gilbok Lee [Fri, 13 Aug 2021 04:10:06 +0000 (13:10 +0900)]
tsdemux: Save language tag when program is NULL

- When streaming HLS, global_tag release because of the buffer discontinue.
  So, Save and sending pending laguage tag

Change-Id: Ia2823d64894701d27dd47810c0a5a6db385e71b2

3 years agohlsdemux: Save the EXT-X-MEDIA information about embedded stream 63/262463/2
Gilbok Lee [Wed, 11 Aug 2021 08:26:48 +0000 (17:26 +0900)]
hlsdemux: Save the EXT-X-MEDIA information about embedded stream

- And set the tag for embedded stream language code

Change-Id: Ie5336e24d5c09c90324df902b63dfa57324f0dfd

3 years agovideoparse: Only add a single closed caption meta 78/261278/1
Eunhye Choi [Wed, 14 Jul 2021 10:00:24 +0000 (19:00 +0900)]
videoparse: Only add a single closed caption meta

Only add a single closed caption meta

Otherwise, having a stream go through a parser multiple times would
result in duplicate closed caption meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1396>

upstream commit id : 31d5d04bb1f5e3f6acdef8460193019237ecf5df

Change-Id: I587de0415e78e9e0de21ef079e594bec9bfedabd

3 years agowebrtcbin: Fix memory leak in _set_rtx_ptmap_from_stream() 24/260924/1 accepted/tizen/unified/20210708.131449 submit/tizen/20210707.051555
Sangchul Lee [Wed, 7 Jul 2021 03:27:20 +0000 (12:27 +0900)]
webrtcbin: Fix memory leak in _set_rtx_ptmap_from_stream()

[Version] 1.16.2-20
[Issue Type] Coverity (Resource leak)

Change-Id: Ieb7ae7649503026eff5737c5fbe28057ce81a590
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agotsdemux: send converted GST_BUFFER_PTS() when emit stats 33/260433/1 accepted/tizen/unified/20210707.070815 submit/tizen/20210702.012922 submit/tizen/20210705.030138
Gilbok Lee [Fri, 25 Jun 2021 00:34:09 +0000 (09:34 +0900)]
tsdemux: send converted GST_BUFFER_PTS() when emit stats

Change-Id: I1730850632eef9f93e25e6b5f40a5d0ef034bb09

3 years agowebrtcbin: Remove unreachable codes and redundant condition 82/260382/1 accepted/tizen/unified/20210625.170419 submit/tizen/20210624.075953
Sangchul Lee [Thu, 24 Jun 2021 03:03:14 +0000 (12:03 +0900)]
webrtcbin: Remove unreachable codes and redundant condition

[Version] 1.16.2-18
[Issue Type] SVACE (UNREACHABLE_CODE/SIMILAR_BRANCHES)

Change-Id: Ic3475956be436e9d2151b1dee1fbc79a1cd1c8b7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtcdatachannel: Fix memory leak 63/260363/1
Sangchul Lee [Thu, 24 Jun 2021 02:11:20 +0000 (11:11 +0900)]
webrtcdatachannel: Fix memory leak

[Version] 1.16.2-17
[Issue Type] SVACE (MEMORY_LEAK.STRDUP)

Change-Id: I8b24e1e01b9f82a952cf53240e6626a55dcedb12
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtcice: Avoid access memory after free and fix memory leak 62/260362/1
Sangchul Lee [Thu, 24 Jun 2021 01:59:54 +0000 (10:59 +0900)]
webrtcice: Avoid access memory after free and fix memory leak

[Version] 1.16.2-16
[Issue Type] SVACE (PASSED_TO_PROC_AFTER_FREE.EX)

Change-Id: I61f9148466ec842972cf44d8e87a01e8a504b363
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agom3u8: remove unreachable code 24/259824/1 accepted/tizen/unified/20210618.120812 submit/tizen/20210616.025147 submit/tizen/20210617.050928
Eunhye Choi [Tue, 15 Jun 2021 08:09:05 +0000 (17:09 +0900)]
m3u8: remove unreachable code

- fix svace issue

Change-Id: I342e992e126f2d2ffbbaa1a9e47c403f171f6bae

3 years agowebrtcbin: Remove remnant of non-rtcp-mux mode 42/259342/1 accepted/tizen/unified/20210609.140307 submit/tizen/20210609.023517
Olivier Crête [Wed, 30 Dec 2020 18:51:21 +0000 (13:51 -0500)]
webrtcbin: Remove remnant of non-rtcp-mux mode

There was some code left that wasn't used anymore.

Change-Id: I76d0148e40012adf07f42c9008075d2f529537ed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1930>

3 years agowebrtc: Remove non rtcp-mux code 41/259341/1
Olivier Crête [Tue, 3 Nov 2020 00:49:55 +0000 (19:49 -0500)]
webrtc: Remove non rtcp-mux code

RTCP mux is now always required by the WebRTC spec

Change-Id: I541ca3e3a9a6a016f9d0be1ab6da1f37c2dde69e
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765>

3 years agowebrtcbin: Call the missing gst_ghost_pad_construct() 03/257203/3 accepted/tizen/unified/20210607.124422 submit/tizen/20210604.082845
Sangchul Lee [Wed, 21 Apr 2021 06:01:15 +0000 (15:01 +0900)]
webrtcbin: Call the missing gst_ghost_pad_construct()

[Version] 1.16.2-14
[Issue Type] Improvement

Change-Id: Ia733b9972f72595e7dac175b22983332889b6fcf
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agodtls: Update codes based on 1.18.4 52/253452/5
Sangchul Lee [Wed, 10 Feb 2021 07:17:14 +0000 (16:17 +0900)]
dtls: Update codes based on 1.18.4

Files in ext/dtls/ are updated.

Change-Id: I14a943cf0210610c4e8ee3da31d03bd4f47944dd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agowebrtc: Update codes based on 1.18.4 88/250688/7
Sangchul Lee [Thu, 31 Dec 2020 11:31:09 +0000 (20:31 +0900)]
webrtc: Update codes based on 1.18.4

files below are updated.
 - ext/webrtc/*
 - gst-libs/gst/webrtc/*

Change-Id: Ic2622a1e0275a4e11ccd806a631d923a5601308e
Signed-off-by: Sangchul Lee <sangchul1011@gmail.com>
3 years agohlsdemux: add property about live info 06/258306/1 accepted/tizen/unified/20210602.122622 submit/tizen/20210531.015432
Eunhye Choi [Wed, 12 May 2021 11:26:51 +0000 (20:26 +0900)]
hlsdemux: add property about live info

- add readable property about live info
  : is live, live start time, live end time

Change-Id: I0be1bfec4527cad2db6910e8e0cae5a6fa2eb498

3 years agohlsdemux: push language code tag 09/258209/2
Gilbok Lee [Wed, 12 May 2021 08:11:16 +0000 (17:11 +0900)]
hlsdemux: push language code tag

Change-Id: I0941e39c9384f6c936d8ea736704d2b718902b3c

3 years agohlsdemux: Enable support for external subtitles 16/257616/3
Gilbok Lee [Tue, 11 May 2021 04:40:01 +0000 (13:40 +0900)]
hlsdemux: Enable support for external subtitles

- auto-indented using gst-indent

Change-Id: I71f521a191bbca086e8cd01883bed600e3e50b5d

3 years agohlsdemux: post first variant bandwidth info 79/258079/1
Eunhye Choi [Thu, 6 May 2021 07:59:40 +0000 (16:59 +0900)]
hlsdemux: post first variant bandwidth info

- post bandwidth information if the first variant is selected.
- when the variant is changed, the bandwidth info has been posted.

Change-Id: Ic22cf3e41524bce1b46bd83a2fc0ea54c0e9debd

3 years agohlsdemux: parse cue related tag for AD 22/257522/1 accepted/tizen/unified/20210428.092142 submit/tizen/20210427.071055 submit/tizen/20210428.054922
Eunhye Choi [Mon, 26 Apr 2021 10:36:07 +0000 (19:36 +0900)]
hlsdemux: parse cue related tag for AD

- parse cue-out, cue-in, cue-out-cont hls tag
  to get AD information

Change-Id: I9b9e4ec3e370418b8cf1310d0aed7afc4cffb79f

3 years agofixup! adaptive: allow pad switching 08/257208/1 accepted/tizen/unified/20210422.005353 submit/tizen/20210421.110538
Sangchul Lee [Wed, 21 Apr 2021 06:18:08 +0000 (15:18 +0900)]
fixup! adaptive: allow pad switching

Fix ignoring build definitions caused by the commented line.

Change-Id: Ie08002787deb634c6b5e560ea529d10c972207b6
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agoadaptive: allow pad switching 67/257067/1
Eunhye Choi [Tue, 13 Apr 2021 09:52:52 +0000 (18:52 +0900)]
adaptive: allow pad switching

- disable the AVOID_PAD_SWITCHING patch to support
  pad switching as upstream.
- pad switching should be allowed to support AD during
  adaptive streaming.

Change-Id: Iabec91fe30e9069970b057efa80d143d5d191f50

3 years agowebrtcbin: Make it possible to create data channel before READY state 42/256742/2 accepted/tizen/unified/20210415.100509 submit/tizen/20210415.043549
Sangchul Lee [Fri, 2 Apr 2021 08:45:46 +0000 (17:45 +0900)]
webrtcbin: Make it possible to create data channel before READY state

The condition 'webrtc->priv->is_closed' is set to TRUE when NULL state.
In Tizen, skip checking this condition to create data channel within
NULL state.

[Version] 1.16.2-8
[Profile] Common
[Issue Type] Improvement

Change-Id: I60dad04350372d6fa10dd987be92b152e9cada19
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
3 years agohls: support bandwidth limit 51/254751/2
Eunhye Choi [Tue, 9 Mar 2021 06:55:26 +0000 (15:55 +0900)]
hls: support bandwidth limit

- add start-bandwidth, min-bandwidth properties
  to use when switching to alternates.

Change-Id: I616847f7a6f9c71564b9a054feae1a0b38625506

3 years agodashdemux: Check bandwidth instead of video mime-type when storing variant information. 11/250711/2 accepted/tizen/unified/20210113.121051 submit/tizen/20210112.010247
Gilbok Lee [Mon, 4 Jan 2021 04:36:46 +0000 (13:36 +0900)]
dashdemux: Check bandwidth instead of video mime-type when storing variant information.

- There may be no mimetype in the representation field

Change-Id: Icf40af82ea8c01f649bf982ecb37d19fc33e49b0

3 years agoMerge "h264parse: ignore GST_H264_PARSER_NO_NAL return when last nal type is GST_H264... accepted/tizen/unified/20201228.130121 submit/tizen/20201224.044957
Gilbok Lee [Thu, 24 Dec 2020 03:54:46 +0000 (03:54 +0000)]
Merge "h264parse: ignore GST_H264_PARSER_NO_NAL return when last nal type is GST_H264_NAL_SEQ_END" into tizen

3 years agoh264parse: ignore GST_H264_PARSER_NO_NAL return when last nal type is GST_H264_NAL_SE... 50/249650/2
Gilbok Lee [Tue, 15 Dec 2020 08:46:18 +0000 (17:46 +0900)]
h264parse: ignore GST_H264_PARSER_NO_NAL return when last nal type is GST_H264_NAL_SEQ_END

Change-Id: Ie3c42c98ff22079bd1da31c96e8f26d04d035b6d

3 years agowebrtcsdp: Fix memory leaks 48/249648/2
Sangchul Lee [Wed, 16 Dec 2020 02:52:22 +0000 (11:52 +0900)]
webrtcsdp: Fix memory leaks

[Version] 1.16.2-5
[Profile] Common
[Issue Type] Bug fix (SVACE)

Change-Id: I3d60ac5e2cb6b89065edab44ab9139b4e2b442fa
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoActivate plug-in for Gstreamer Editing Services 23/247223/1 submit/tizen/20201110.045527
Minje Ahn [Mon, 9 Nov 2020 06:54:58 +0000 (15:54 +0900)]
Activate plug-in for Gstreamer Editing Services

Activation list:
 - libgstgaudieffects.so
 - libgstcoloreffects.so (Activated in TV profile)

Change-Id: I789d3667f65e40c5a03c87f6884fe6d579f169b4
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
4 years agoadaptivedemux/mpegdemux : Fix coverity issue (Missing unlock) 25/244125/2 accepted/tizen/6.0/unified/20201030.110835 accepted/tizen/6.0/unified/hotfix/20201102.233423 accepted/tizen/6.0/unified/hotfix/20201103.050319 accepted/tizen/unified/20200916.212647 submit/tizen/20200916.082856 submit/tizen_6.0/20201029.205502 submit/tizen_6.0_hotfix/20201102.192902 submit/tizen_6.0_hotfix/20201103.115102 tizen_6.0.m2_release
Gilbok Lee [Tue, 15 Sep 2020 07:25:49 +0000 (16:25 +0900)]
adaptivedemux/mpegdemux : Fix coverity issue (Missing unlock)

Change-Id: I51fea48a0d00b2a38e136e03fa5f7b3a537440da

4 years ago[SPEC] Enable gst gdp plugin 99/238299/2 accepted/tizen/unified/20200714.134952 submit/tizen/20200713.024249
gichan-jang [Fri, 10 Jul 2020 08:16:36 +0000 (17:16 +0900)]
[SPEC] Enable gst gdp plugin

Gdp plugin need to be transmit the gst buffers through tcp communication.

Change-Id: I2cdc012f96bdb0ddf1b30164ffb061b92a086bb7
Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years agoAdd webrtcsendrecv test app to tests/example/webrtc 94/231994/14
Hyunil [Mon, 27 Apr 2020 07:58:52 +0000 (16:58 +0900)]
Add webrtcsendrecv test app to tests/example/webrtc

 - Answerer logic is added
 - Add call stack log
 - Add use-camera-mic feature to use camera and mic
 - Add use-proxy feature to use proxy server
 - Add build define for webrtctest

Change-Id: Ide51737b4ef5a87ec853b4f8c1920ddab39dd502
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agofixup! Enable opusparse plugin 59/231559/2 accepted/tizen/unified/20200423.054557 submit/tizen/20200422.053831
Jeongmo Yang [Wed, 22 Apr 2020 10:57:30 +0000 (19:57 +0900)]
fixup! Enable opusparse plugin

- The explicit build dependency should be added after correct spec file of gst-plugins-base package.

[Version] 1.16.2-2
[Profile] Common
[Issue Type] Bug fix

Change-Id: I6adcea6a2d2d7c4af6dc74912918707b2aeff3b1
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
4 years agoEnable opusparse plugin 77/230777/1 accepted/tizen/unified/20200417.152749 submit/tizen/20200416.021254
Jeongmo Yang [Tue, 14 Apr 2020 06:08:24 +0000 (15:08 +0900)]
Enable opusparse plugin

- This patch should be merged with opus enabled gst-plugins-base package.

[Version] 1.16.2-1
[Profile] Common
[Issue Type] Update

Change-Id: Iefa7deceff196974151e10fe4e820d52e93c7b02
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
4 years agosrtp: enable plugins 86/229486/2 accepted/tizen/unified/20200414.034752 submit/tizen/20200413.061815
Hyunil [Wed, 1 Apr 2020 09:08:32 +0000 (18:08 +0900)]
srtp: enable plugins

Change-Id: I3fc2b995862f194d63f84919635b5c31f1f62f97
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
4 years agoMerge "Remove unrecognized configure options" into tizen accepted/tizen/unified/20200403.034458 submit/tizen/20200401.043141
Gilbok Lee [Tue, 31 Mar 2020 04:55:15 +0000 (04:55 +0000)]
Merge "Remove unrecognized configure options" into tizen

4 years agoRemove unrecognized configure options 99/229199/1
Gilbok Lee [Mon, 30 Mar 2020 08:20:28 +0000 (17:20 +0900)]
Remove unrecognized configure options

Change-Id: I3b2c18c417567ccd00edf50267769df8ddbeb213

4 years agosctp: enable sctpdec and sctpenc plugins 40/228040/2 accepted/tizen/unified/20200331.113953 submit/tizen/20200330.071150 submit/tizen/20200331.035513
Hyunil [Wed, 18 Mar 2020 09:15:55 +0000 (18:15 +0900)]
sctp: enable sctpdec and sctpenc plugins

Change-Id: Ifcd70387b5d3f36dcc980f5ee5a99f335440dc31
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
4 years agodtls: enable plugins 45/227845/2 accepted/tizen/unified/20200319.131222 submit/tizen/20200319.040207
Hyunil [Tue, 17 Mar 2020 01:00:25 +0000 (10:00 +0900)]
dtls: enable plugins

Change-Id: Ia8c157ce48f59448eb600d84e3da2d3138c2a153
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
4 years agowebrtc: modify to allow installation of webrtc plugin 34/227334/2 submit/tizen/20200316.053051
Hyunil [Wed, 11 Mar 2020 08:35:38 +0000 (17:35 +0900)]
webrtc: modify to allow installation of webrtc plugin

Change-Id: I84a51559a4504ff0d73f9b4617906e51d57c5e42
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
4 years agosoundtouch: fix coverity issue 08/227008/1 accepted/tizen/unified/20200311.130844 submit/tizen/20200309.044950 submit/tizen/20200309.101910 submit/tizen/20200310.083131
Eunhye Choi [Mon, 9 Mar 2020 04:45:03 +0000 (13:45 +0900)]
soundtouch: fix coverity issue

Change-Id: I7290f22c61ffda3f27ea77e5232d332be9d5c3d4

4 years agoMerge branch 'tizen_gst_1.16.2' into tizen 94/225594/1 accepted/tizen/unified/20200304.124000 submit/tizen/20200221.064623 submit/tizen/20200302.032418
Gilbok Lee [Fri, 21 Feb 2020 06:24:41 +0000 (15:24 +0900)]
Merge branch 'tizen_gst_1.16.2' into tizen

Change-Id: Icf2e38c593ba1f1e4a74ddb1bd1559af6d123676

4 years agopitch: add audio meta 51/225051/3 tizen_gst_1.16.2
Eunhye Choi [Fri, 14 Feb 2020 07:59:05 +0000 (16:59 +0900)]
pitch: add audio meta

- add audio meta info in case of non-interleaved layout
  which is required when it is converted to interleaved.

Change-Id: I8a7c03b9a40f9093e6f0416e53b75f14086d6b88

4 years agoMerge branch 'upstream/1.16' into tizen_gst_1.16.2 52/223352/1
Gilbok Lee [Thu, 23 Jan 2020 02:18:14 +0000 (11:18 +0900)]
Merge branch 'upstream/1.16' into tizen_gst_1.16.2

Change-Id: Ib1a717363ad97f1695fb888bc2caa3c2ccff8ee2

4 years agoRelease 1.16.2 upstream/1.16 1.16.2
Tim-Philipp Müller [Tue, 3 Dec 2019 11:12:59 +0000 (11:12 +0000)]
Release 1.16.2

4 years agoUpdate docs
Tim-Philipp Müller [Tue, 3 Dec 2019 11:12:58 +0000 (11:12 +0000)]
Update docs

4 years agoUpdate translations
Tim-Philipp Müller [Tue, 3 Dec 2019 11:12:56 +0000 (11:12 +0000)]
Update translations

4 years agoavfvideosrc: Explicitly request device video permissions for macOS 10.14+
o0Ignition0o [Sat, 30 Nov 2019 13:08:06 +0000 (14:08 +0100)]
avfvideosrc: Explicitly request device video permissions for macOS 10.14+

Since macOS Mojave (10.14), video permissions have to be explicitly
granted by a user in order to open a video device such as a camera.
This commit adds a check for the current permission status, and tries
to request for permission if applicable.

4 years agoopenexr: Fix check for when to pass -std=c++98
Nirbheek Chauhan [Sun, 1 Dec 2019 11:34:05 +0000 (17:04 +0530)]
openexr: Fix check for when to pass -std=c++98

commit 6adfb120ab0e1bb0b3439ad725a362cfe4fbe733 added this flag to fix
builds with `-Werror`, and afterwards it was changed to use a version
check when newer versions of openexr moved over to C++11.

However, some distros have backported patches to older openexr
versions which make it require C++11, which makes the version check
incorrect and causes an error because we passed `-Werror -std=c++98`.

Instead, directly check when usage of the header requires `-std=c++98`
with `-Werror` and override the `cpp_std` setting on the target.

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

4 years agowasapisrc: Correctly handle BUFFERFLAGS_SILENT
Nirbheek Chauhan [Tue, 26 Nov 2019 06:09:32 +0000 (11:39 +0530)]
wasapisrc: Correctly handle BUFFERFLAGS_SILENT

We need to ignore the data we get from WASAPI in this case and write
out silence (zeroes).

Initially reported at https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/808

4 years agowasapisrc: Try harder to avoid debug output in the hot loop
Nirbheek Chauhan [Mon, 25 Nov 2019 15:55:43 +0000 (21:25 +0530)]
wasapisrc: Try harder to avoid debug output in the hot loop

The whole `src_read()` function is a hot loop since the ringbuffer
thread is waiting on us, and printing to the console from inside it
can easily cause us to miss our deadline.

F.ex., if you had GST_DEBUG=3 and we accidentally missed a device
period, we'd trigger the "reported glitch" warning, which would cause
us to miss another device period, and so on. Let's reduce the log
level so that GST_DEBUG=3 is more usable, and only print buffer flag
info when it's actually relevant.

4 years agowasapisrc: Fix capturing from some buggy audio drivers
Nirbheek Chauhan [Mon, 25 Nov 2019 15:49:59 +0000 (21:19 +0530)]
wasapisrc: Fix capturing from some buggy audio drivers

Some audio drivers return varying amounts of data per ::GetBuffer
call, instead of following the device period that they've told us
about in `src_prepare()`.

Previously, we would just drop those extra buffers hoping that the
extra buffers were temporary (f.ex., a startup 'burst' of audio data).
However, it seems that some audio drivers, particularly on older
Windows versions (such as Windows 10 1703 and older) consistently
return varying amounts of data.

Use GstAdapter to smooth that out, and hope that the audio driver is
locally varying but globally periodic.

Initially reported in https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/808