platform/core/api/webrtc.git
4 years agoAdd missing g_array_unref() 55/245555/1
Sangchul Lee [Mon, 12 Oct 2020 08:48:45 +0000 (17:48 +0900)]
Add missing g_array_unref()

It should be called after getting GArray pointer from
'get-transceivers' of webrtcbin.

[Version] 0.1.38
[Issue Type] Bug fix

Change-Id: I10564beba8579e59be95e475c9f38fd1baa733ab
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoInvoke state changed callback when webrtc_stop() is called 22/245422/2
Sangchul Lee [Thu, 8 Oct 2020 09:57:05 +0000 (18:57 +0900)]
Invoke state changed callback when webrtc_stop() is called

These was no state change when it is called. Now it is fixed.

[Version] 0.1.37
[Issue Type] Bug fix

Change-Id: I6aec1947114f6cc81ee58b03e5d9c820f57a0af8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd codes to invoke error callback in two cases 68/245268/3
Sangchul Lee [Tue, 6 Oct 2020 07:59:43 +0000 (16:59 +0900)]
Add codes to invoke error callback in two cases

There are cases that 'peer connection state callback' or
'ice connection state callback' of webrtcbin is called
with FAILED state. Such cases deserve to be forwarded to
user via the error callback.

[Version] 0.1.36
[Issue Type] Improvement

Change-Id: I54f85da412b200b53b07f9ca5011df8f0295c11b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoUnlock mutex before invoking state callback 67/245267/2
Sangchul Lee [Tue, 6 Oct 2020 07:37:02 +0000 (16:37 +0900)]
Unlock mutex before invoking state callback

Codes about the mutex to secure the state are also added
in __webrtcbin_peer_connection_state_cb().

[Version] 0.1.35
[Issue Type] Improvement

Change-Id: I1c811912b3d9432fbae74b0c2037e9a78247fe23
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoSplit webrtc_private.c 46/244946/3
Sangchul Lee [Mon, 28 Sep 2020 07:44:42 +0000 (16:44 +0900)]
Split webrtc_private.c

webrtc_source.c is added and codes regarding media source are moved
into it.

webrtc_sink.c is added and codes regarding rendering audio and video
are moved into it.

[Version] 0.1.34
[Issue Type] Refactoring

Change-Id: I5835ddbc832386151cb537388da503714c44f64d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc: Print logs within critical section 27/244927/3
Sangchul Lee [Mon, 28 Sep 2020 03:58:19 +0000 (12:58 +0900)]
webrtc: Print logs within critical section

Some logs are also revised not to be confusing with its contents.

[Version] 0.1.33
[Issue Type] Log

Change-Id: Ie490f3a0d346018e393e505bce012799436cb8cb
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd precondition to webrtc_start() 74/244774/5
Sangchul Lee [Thu, 24 Sep 2020 06:17:38 +0000 (15:17 +0900)]
Add precondition to webrtc_start()

The @pre command with the statement as below is added to the doxygen.
 - @pre webrtc_ice_candidate_cb() must be set by calling
   webrtc_set_ice_candidate_cb().

This condition is added because both offer and answer sides should
send ICE candidates after setting local description inevitably.

[Version] 0.1.32
[Issue Type] Improvement

Change-Id: Ic190e4924d3ef84a2170e364f78e56da7eced2aa
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd API set to get/set transceiver direction 19/244719/7
Sangchul Lee [Wed, 23 Sep 2020 11:13:50 +0000 (20:13 +0900)]
Add API set to get/set transceiver direction

Enums are added as below.
 - WEBRTC_MEDIA_TYPE_AUDIO
 - WEBRTC_MEDIA_TYPE_VIDEO
 - WEBRTC_TRANSCEIVER_DIRECTION_SENDONLY
 - WEBRTC_TRANSCEIVER_DIRECTION_RECVONLY
 - WEBRTC_TRANSCEIVER_DIRECTION_SENDRECV

Functions are added as below.
 - webrtc_get_transceiver_direction()
 - webrtc_set_transceiver_direction()

Test cases for these functions are added to webrtc_test.

[Version] 0.1.31
[Issue Type] API

Change-Id: I6753b7480a6b363f262cf9edbcdf08c9cb20f24c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd more members to the slot structure for source/sink 41/244541/6
Sangchul Lee [Mon, 21 Sep 2020 10:44:46 +0000 (19:44 +0900)]
Add more members to the slot structure for source/sink

The mline value is got from the transceiver object via
on-new-transceiver callback. It will be used to find the
tranceiver object to modify the direction.

[Version] 0.1.30
[Issue Type] Improvement

Change-Id: I279f7ed5870b228eccbe6d14af1105f1f01b3d2c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc_test: Show handle state and STUN server 30/244430/4
Sangchul Lee [Fri, 18 Sep 2020 10:03:56 +0000 (19:03 +0900)]
webrtc_test: Show handle state and STUN server

[Version] 0.1.29
[Issue Type] Test application

Change-Id: Ie69368af3a563f4b1ce98f05e6d684475d9051be
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoGenerate dot files to take snapshots of pipeline 29/244429/4
Sangchul Lee [Fri, 18 Sep 2020 09:38:02 +0000 (18:38 +0900)]
Generate dot files to take snapshots of pipeline

Add code to create dot files when
 - after invoking state changed callback
 - a decodebin is added inside of pad-added callback of the webrtcbin
 - a rendering sink is added inside of pad-added callback of the decodebin

[Version] 0.1.28
[Issue Type] Debug

Change-Id: I3a752d5af5cb58cf21fbca3e9e45785b5e542c1d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoRevise description 48/244348/5
Sangchul Lee [Thu, 17 Sep 2020 11:25:50 +0000 (20:25 +0900)]
Revise description

Add omitted description of webrtc_media_source_type_e.
Add @details regarding possbile error codes to webrtc_error_cb()
Remove unneeded space.

[Version] 0.1.27
[Issue Type] Doxygen

Change-Id: Id52bca581a6a8c007c15117d9519c3a28b40130d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd support for audio/video rendering pipelines 79/244179/8
Sangchul Lee [Tue, 15 Sep 2020 13:31:14 +0000 (22:31 +0900)]
Add support for audio/video rendering pipelines

Multiple rendering pipelines can be added.
The decodebin is used to make each audio/video rendering pipeline.
These will be triggered by webrtcbin based on the session description
from remote peer during the negotiation.

[Version] 0.1.26
[Issue Type] Improvement

Change-Id: Iaade731f695181b8fe1a2a9aafa299c73feb4d32
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoRevise @since_tizen 60/244160/7
Sangchul Lee [Tue, 15 Sep 2020 09:30:56 +0000 (18:30 +0900)]
Revise @since_tizen

Fix it from 6.0 to 6.5.

[Version] 0.1.25
[Issue Type] Doxygen

Change-Id: Iaa9c834604c2da4a5a61b8dacb49ea090a9e63ad
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd new error types 58/244158/6
Sangchul Lee [Tue, 15 Sep 2020 09:26:26 +0000 (18:26 +0900)]
Add new error types

WEBRTC_ERROR_STREAM_FAILED and WEBRTC_ERROR_RESOURCE_FAILED
are added.

These will be delivered by error callback.

[Version] 0.1.24
[Issue Type] API

Change-Id: I1f493aa4f14708e4bf55890d50140caab3554263
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAssign source id with a value of limited range (1-32) 99/244099/7
Sangchul Lee [Tue, 15 Sep 2020 04:12:51 +0000 (13:12 +0900)]
Assign source id with a value of limited range (1-32)

Unused value in ascending order is the most priority.

Payload identifier which is set for RTP caps is also
modified to assign it in range of 96-127 dynamically.

Please refer to the link below regarding the dynamic
payload types.
 : https://tools.ietf.org/html/rfc3551

[Version] 0.1.23
[Issue Type] Improvement

Change-Id: I2d028617f621fbaf91f2b76e6dc266f6f2ffa7ae
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd new state for negotiation stage 34/244034/8
Sangchul Lee [Mon, 14 Sep 2020 07:52:18 +0000 (16:52 +0900)]
Add new state for negotiation stage

WEBRTC_STATE_NEGOTIATING is added.

[Version] 0.1.22
[Issue Type] API

Change-Id: Ibedaadb1f82e5482174da6d85f46e7f42073cd8a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd capsfilter after RTP payloader 06/244006/8
Sangchul Lee [Fri, 11 Sep 2020 13:22:21 +0000 (22:22 +0900)]
Add capsfilter after RTP payloader

It is added to set detailed GstCaps to the source
which will be linked to webrtcbin.

__close_websocket() is revised in webrtc_test.

[Version] 0.1.21
[Issue Type] Improvement

Change-Id: I63bd4b3c60faff72600dcdc0974947528e697aa0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoConnect to signals for various states inside of webrtcbin 33/243833/7
Sangchul Lee [Thu, 10 Sep 2020 10:07:45 +0000 (19:07 +0900)]
Connect to signals for various states inside of webrtcbin

Internal callbacks for state types below are added.
 - peer connection state
 - signaling state
 - ICE gathering state
 - ICE connection state

These are implementation in webrtcbin based on
 - https://w3c.github.io/webrtc-pc/#state-definitions

These will be utilized for dividing current states of this API set
into more steps with further patches.

[Version] 0.1.20
[Issue Type] Improvement

Change-Id: I28c540bf69952070485d09d9e06a6b9635caf93a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd API set for ICE candidate 71/243671/10
Sangchul Lee [Wed, 9 Sep 2020 04:56:06 +0000 (13:56 +0900)]
Add API set for ICE candidate

These correspond to the 'onicecandidate' property
and 'addIceCandidate' method of the RTCPeerConnection
respectively.

Functions are added as below.
 - webrtc_set_ice_candidate_cb()
 - webrtc_unset_ice_candidate_cb()
 - webrtc_add_ice_candidate()

Test cases for these functions are added to webrtc_test.
Some release handle information are added to @remarks.

[Version] 0.1.19
[Issue Type] API

Change-Id: Ib6675943d3aa2917360b8de82a4e76700089c961
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc_test: Revise setting remote description 49/243649/8
Sangchul Lee [Wed, 9 Sep 2020 02:19:40 +0000 (11:19 +0900)]
webrtc_test: Revise setting remote description

It should be set after receiving it from server.

[Version] 0.1.18
[Issue Type] Test application

Change-Id: I50f1ef6beefd24238fa2e9df1e6a890887262d43
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc_test: Add code to show setting and server status 42/243642/7
Sangchul Lee [Wed, 9 Sep 2020 01:49:02 +0000 (10:49 +0900)]
webrtc_test: Add code to show setting and server status

[Version] 0.1.17
[Issue Type] Test application

Change-Id: I2a5194af68f695909b874f64f43bf539746d8a2f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc_test: Add more menu regarding signaling server 90/243590/7
Sangchul Lee [Tue, 8 Sep 2020 10:01:52 +0000 (19:01 +0900)]
webrtc_test: Add more menu regarding signaling server

Menu for request session of remote peer id and
sending local description to server are added.

[Version] 0.1.16
[Issue Type] Test application

Change-Id: I97fd587d656e237fa82468a1c36f18c7dfb3000a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc_test: Add support for connecting to a signaling server 00/243500/9
Sangchul Lee [Mon, 7 Sep 2020 14:38:09 +0000 (23:38 +0900)]
webrtc_test: Add support for connecting to a signaling server

A menu for this is added to the test application.
 : cs. Connect to the signaling server

We assume that the signaling server provides websocket interface.
The logics for handshaking from a peer to the server can be
different in each server. The upcoming patch will address this
handshaking protocol for demo server.

[Version] 0.1.15
[Issue Type] Test application

Change-Id: I95ed1ab2d0b6cf44d5d24cd39b8559d6be0024c4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc_test: Check URL length before setting it 93/243393/8
Sangchul Lee [Mon, 7 Sep 2020 08:56:11 +0000 (17:56 +0900)]
webrtc_test: Check URL length before setting it

Two similar functions are merged into one.

[Version] 0.1.14
[Issue Type] Test application

Change-Id: I6e0760278b177eef6a3d835fe2d59910ca91a6b2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agowebrtc_test: Fix typo - signalling to signaling 05/243905/1
Sangchul Lee [Fri, 11 Sep 2020 05:30:33 +0000 (14:30 +0900)]
webrtc_test: Fix typo - signalling to signaling

[Version] 0.1.13
[Issue Type] Typo fix

Change-Id: I4edaf287387842f2c04df52c544b546f3ff80bda
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd API set for error callback 54/243254/9
Sangchul Lee [Fri, 4 Sep 2020 08:01:44 +0000 (17:01 +0900)]
Add API set for error callback

Functions are added as below.
 - webrtc_set_error_cb()
 - webrtc_unset_error_cb()

Test cases for these functions are added to webrtc_test.

[Version] 0.1.12
[Issue Type] API

Change-Id: Ib4393388e3e440d88fd5f1aa013bb3d62c7b92c2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd API set for state changed callback 01/243201/12
Sangchul Lee [Fri, 4 Sep 2020 01:45:39 +0000 (10:45 +0900)]
Add API set for state changed callback

Functions are added as below.
 - webrtc_set_state_changed_cb()
 - webrtc_unset_state_changed_cb()

Test cases for these functions are added to webrtc_test.

[Version] 0.1.11
[Issue Type] API

Change-Id: I384ce3da148cd6181795a998abb33b98855543c2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd webrtc_set_local[remote]_description() API 09/243109/11
Sangchul Lee [Thu, 3 Sep 2020 06:35:52 +0000 (15:35 +0900)]
Add webrtc_set_local[remote]_description() API

It corresponds to the setLocal[Remote]Description() method
of the RTCPeerConnection respectively.

[Version] 0.1.10
[Issue Type] API

Change-Id: Ie1e2ddad5d6b3cd5741b034d14d07f13625d492c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd webrtc_create_offer() and webrtc_create_answer() API 58/242858/14
Sangchul Lee [Tue, 1 Sep 2020 09:32:31 +0000 (18:32 +0900)]
Add webrtc_create_offer() and webrtc_create_answer() API

It corresponds to the createOffer() and createAnswer() method
of the RTCPeerConnection respectively.

[Version] 0.1.9
[Issue Type] API

Change-Id: Ib2c3fc35a5b9adc7a2d35ad92f7001869a7d9dc4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd webrtc_set[unset]_negotiation_needed_cb() API 57/242857/11
Sangchul Lee [Tue, 1 Sep 2020 09:29:42 +0000 (18:29 +0900)]
Add webrtc_set[unset]_negotiation_needed_cb() API

It corresponds to the negotiationneeded event of RTCPeerConnection.
Internal functions regarding signal connection are added.

[Version] 0.1.8
[Issue Type] API

Change-Id: I14587a3073315d8b2cece0b415d04799747d2ed0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd codes to set STUN server URL 56/242856/8
Sangchul Lee [Tue, 1 Sep 2020 09:28:41 +0000 (18:28 +0900)]
Add codes to set STUN server URL

Implementation of webrtc_set_stun_server().

[Version] 0.1.7
[Issue Type] Implementation

Change-Id: Iba22cda51ff9c0bde7fed270dc6878377b1510d0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd macro for log - LOG_ERROR_IF_REACHED() 24/242624/7
Sangchul Lee [Fri, 28 Aug 2020 09:10:31 +0000 (18:10 +0900)]
Add macro for log - LOG_ERROR_IF_REACHED()

[Version] 0.1.6
[Issue Type] Debug

Change-Id: I813d9d383ae80cf4bba59c12eedc65720db9868b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd to build source elements by media source type and link it with webrtcbin 23/242623/7
Sangchul Lee [Fri, 28 Aug 2020 09:01:53 +0000 (18:01 +0900)]
Add to build source elements by media source type and link it with webrtcbin

Source type selection bug in webrtc_test is also fixed.

[Version] 0.1.5
[Issue Type] Implementation

Change-Id: I513e1524190f72de88fe2dc50d0fb0ec0c5f0200
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd infrastructure for adding/removing media source 22/242622/6
Sangchul Lee [Fri, 28 Aug 2020 08:52:02 +0000 (17:52 +0900)]
Add infrastructure for adding/removing media source

g_hash_table is used to manage source elements.

[Version] 0.1.4
[Issue Type] Implementation

Change-Id: Ifcf131c61cb48ec284d36f5765afefab9def1901
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd the basic state change logic 21/242621/5
Sangchul Lee [Fri, 28 Aug 2020 08:48:22 +0000 (17:48 +0900)]
Add the basic state change logic

[Version] 0.1.3
[Issue Type] Implementation

Change-Id: Ib2ecbfde9b7791753c8c2f56c34bbda7ed8dd616
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd webrtcbin element to pipeline and add _gst_destroy_pipeline() sub-function 20/242620/5
Sangchul Lee [Fri, 28 Aug 2020 08:45:44 +0000 (17:45 +0900)]
Add webrtcbin element to pipeline and add _gst_destroy_pipeline() sub-function

[Version] 0.1.2
[Issue Type] Improvement

Change-Id: I324a02b04453eb9dfebe4105241e55036ee14c64
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoAdd initial APIs and test application 11/242611/5
Sangchul Lee [Fri, 28 Aug 2020 08:37:54 +0000 (17:37 +0900)]
Add initial APIs and test application

[Version] 0.1.1
[Issue Type] Initial code

Change-Id: I398b849a97e7d88d0569ee74385754c59264d768
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
4 years agoInitial empty repository master
Tizen Infrastructure [Fri, 28 Aug 2020 01:13:48 +0000 (01:13 +0000)]
Initial empty repository