Sangchul Lee [Wed, 10 Mar 2021 09:49:42 +0000 (18:49 +0900)]
webrtc: Add missing error codes to the description
Missing error codes are added to the description of callback prototypes below.
: webrtc_error_cb()
: webrtc_data_channel_error_cb()
[Version] 0.1.124
[Issue Type] Doxygen
Change-Id: I0ca78260580a14ad1ed84e1ab477bdf8b92eeff3
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 5 Mar 2021 01:09:23 +0000 (10:09 +0900)]
webrtc_source: Allow to push media packet of raw format
It is added to check to match the format of pushing packet
with the configured format.
[Version] 0.1.123
[Issue Type] Improvement
Change-Id: Ib443634c62d6f588768a5ecffe6fb1e9e4172612
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 5 Mar 2021 04:13:33 +0000 (13:13 +0900)]
webrtc_sink: Set width/height to media format for encoded frame callback
In case of video format, these will be set if caps has width and height
information in its structure.
[Version] 0.1.122
[Issue Type] Improvement
Change-Id: I77da9d41ec3ac3c3a63d31f34974161511bc4d1e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 4 Mar 2021 08:00:56 +0000 (17:00 +0900)]
webrtc_sink: Change log level in __media_packet_finalize_cb()
The log level is changed to INFO due to the importance of releasing
the packet by app side.
[Version] 0.1.121
[Issue Type] Log
Change-Id: Ic4f71e18bb5e3e0a918741cff8ae94d3c112b704
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 25 Feb 2021 02:03:37 +0000 (11:03 +0900)]
Added vpx encoder system configure setting for real-time CBR encoding and streaming
- Referred to https://www.webmproject.org/docs/encoder-parameters and
https://developers.google.com/media/vp9/the-basics#quality_and_speed_settings
[Version] 0.1.120
[Issue Type] Improvement
Change-Id: Ic3647fa6642a1ff06e3839250838d035add69531
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Thu, 25 Feb 2021 09:50:05 +0000 (18:50 +0900)]
webrtc_test: Change media test file path in case of TV profile build
To do this, spec and CMakefile are changed.
[Version] 0.1.119
[Issue Type] Test application
Change-Id: I913c8b9066ba92759c7299262d7a3b20b267855c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 19 Feb 2021 11:34:22 +0000 (20:34 +0900)]
webrtc_resource: Invoke error callback when a resource conflict happens
_post_error_cb_in_idle() is added to invoke the error callback in
the main thread.
[Version] 0.1.118
[Issue Type] Improvement
Change-Id: I35290cb5ae37970cd599fc74e90e499837e50cd9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 19 Feb 2021 11:00:38 +0000 (20:00 +0900)]
webrtc_private: Revise _post_state_in_idle()
Rename _post_state_in_idle() to __post_state_cb_in_idle().
Remove prototype in webrtc_private.h.
Allocate userdata to have expansibility.
[Version] 0.1.117
[Issue Type] Refactoring
Change-Id: Ie7e095501dc443474d464d6de78698e54220aed0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 22 Feb 2021 02:53:11 +0000 (11:53 +0900)]
webrtc_private: Apply designated initializers to arrays
[Version] 0.1.116
[Issue Type] Refactoring
Change-Id: I514bb42a8b8ee9ef5be1a58a8118608c2ecde42e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 5 Feb 2021 11:17:36 +0000 (20:17 +0900)]
webrtc_test: Add local rendering feature with encoded frame callback
__DEBUG_VALIDATE_ENCODED_FRAME_CB__ definition is added to test
the media packet for H264 encoded data received from the encoded
frame callback with local rendering pipeline.
[Version] 0.1.115
[Issue Type] Test application
Change-Id: I27c697737226d4715576a7057b4c2d66c6bbef79
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 4 Feb 2021 07:13:05 +0000 (16:13 +0900)]
webrtc_source: Add support for media packet with gstbuffer pointer
In case of using media packet source, now we support two kinds of
media packet. One is normal buffer which memory is allocated inside
of the packet, the other one is having an external buffer without
allocation. In the latter case, we assume that extra data of the
media packet has a gstreamer buffer pointer.
A test case for this is also added in webrtc_test.c.
[Version] 0.1.114
[Issue Type] Improvement
Change-Id: I391de40b6f5217e6a797e8a19d97a5640e093632
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 17 Feb 2021 00:05:49 +0000 (09:05 +0900)]
webrtc_sink: Revise media packet for encoded frame callback
The gstbuffer data field is set as external memory pointer of the
media packet. The pointer of gstbuffer is set to extra data of the
media packet. If the caps of the pad has 'codec_data' field, it is
set to the media packet.
[Version] 0.1.113
[Issue Type] Improvement
Change-Id: Ib361a0a9a2600b262c60486c22f27850a21cc5d0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 19 Feb 2021 05:59:46 +0000 (14:59 +0900)]
webrtc_source: Set 'do-timestamp' to TRUE to appsrc in case of media packet source
Setting 'emit-signals' to TRUE is also removed because it is default value.
[Version] 0.1.112
[Issue Type] Improvement
Change-Id: I390449180fd7ad91cde380d078a1a28b61ebc2a4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 17 Feb 2021 08:03:50 +0000 (17:03 +0900)]
webrtc_ini: Add log for FEC setting
[Version] 0.1.111
[Issue Type] Log
Change-Id: I5783988171c0c23e6d846ebad91314e3b24d2e94
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 9 Feb 2021 07:25:42 +0000 (16:25 +0900)]
webrtc: Add missing return check when changing pipeline state to READY/PLAYING
[Version] 0.1.110
[Issue Type] Bug fix
Change-Id: I349a7da7e39a95bf0c93e7a81d9f97165e75c309
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 31 Dec 2020 10:35:42 +0000 (19:35 +0900)]
webrtc_private: Set bundle-policy to max-bundle
[Version] 0.1.109
[Issue Type] Improvement
Change-Id: I49cf86977d7abb2574eaff77e951adc6e665aa5e
Signed-off-by: Sangchul Lee <sangchul1011@gmail.com>
Sangchul Lee [Thu, 4 Feb 2021 09:47:39 +0000 (18:47 +0900)]
webrtc_source: Add missing unref call of the media format when an error occurs
[Version] 0.1.108
[Issue Type] Bug fix
Change-Id: I79fcbe483146e4463196588e30a27af6231afd0a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 4 Feb 2021 10:13:32 +0000 (19:13 +0900)]
Apply network related features to webrtc_create() API
One of features below must be supported to use this webrtc API set.
- http://tizen.org/feature/network.wifi
- http://tizen.org/feature/network.telephony
- http://tizen.org/feature/network.ethernet
[Version] 0.1.107
[Issue Type] Feature
Change-Id: I9719036e4346f0f56919e4ebb6299c1676a3424c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 4 Feb 2021 13:30:56 +0000 (22:30 +0900)]
webrtc: Print warning log before overwriting user callback address
[Version] 0.1.106
[Issue Type] Log
Change-Id: I80848724b4ef90ac1f1d357c166a5ac9a4a29017
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 8 Feb 2021 04:09:21 +0000 (13:09 +0900)]
webrtc_sink: Add capsfilter to apply stream-format and alignment in case of H264/H265
In case of H264/H265 encoded frame callback, it is added to apply
'byte-stream' of stream format and 'au' of alignment, as default values.
[Version] 0.1.105
[Issue Type] Improvement
Change-Id: I352962743b714d3e45f4854faeb9984d357d304e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 2 Feb 2021 10:11:42 +0000 (19:11 +0900)]
webrtc_test: Add test cases for encoded audio/video frame callback
[Version] 0.1.104
[Issue Type] Test application
Change-Id: Ide975cd7fc5e5abf1029e4f98b2c1cce12ad70d3
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 2 Feb 2021 06:26:10 +0000 (15:26 +0900)]
Add API set for encoded audio/video frame callback
Functions are added as below.
- webrtc_set_encoded_audio_frame_cb()
- webrtc_unset_encoded_audio_frame_cb()
- webrtc_set_encoded_video_frame_cb()
- webrtc_unset_encoded_video_frame_cb()
Callback prototype
- typedef void (*webrtc_encoded_frame_cb)(webrtc_h webrtc,
webrtc_media_type_e type, unsigned int track_id,
media_packet_h packet, void *user_data)
[Version] 0.1.103
[Issue Type] API
Change-Id: I96c897f735a549fc84514b02727158b7e6892819
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 29 Jan 2021 11:06:01 +0000 (20:06 +0900)]
webrtc_private/sink: Add forwarding sink to support the encoded frame callback
[Version] 0.1.102
[Issue Type] New feature
Change-Id: I680cd9c3e00df22fe0e98c6de1df427f9e4d2924
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 22 Jan 2021 08:12:15 +0000 (17:12 +0900)]
webrtc_test: Add H264 test case for media packet source
__DEBUG_VALIDATE_MEDIA_PACKET__ definition is added to test
the media packet for H264 encoded data only with local rendering
pipeline.
[Version] 0.1.101
[Issue Type] Test application
Change-Id: I8f3d4ffd9113ec61f1d224f9a43f7d6942591067
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 27 Jan 2021 05:45:37 +0000 (14:45 +0900)]
webrtc_source: Revise caps information of appsrc in case of H264 format
To make negotiation with incoming media packet source of H264 byte stream data
caps information set to appsrc is revised.
[Version] 0.1.100
[Issue Type] Improvement
Change-Id: I0a95e4f5bdb1a02e195095ce1b862409fd65c64d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 28 Jan 2021 09:57:33 +0000 (18:57 +0900)]
webrtc_source: Remove H263-related codes
These will not be used.
[Version] 0.1.99
[Issue Type] Clean-up
Change-Id: Idac647008161b5d7ea95e9c499b7eea7e9e34976
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 28 Jan 2021 09:44:10 +0000 (18:44 +0900)]
Apply camera/microphone feature to webrtc_add_media_source() API
For WEBRTC_MEDIA_SOURCE_TYPE_CAMERA type
feature: http://tizen.org/feature/camera
For WEBRTC_MEDIA_SOURCE_TYPE_MIC type
feature: http://tizen.org/feature/microphone
[Version] 0.1.98
[Issue Type] Feature
Change-Id: Ife9d500d3c2ee743aa133a21134105429f5f0c61
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 28 Jan 2021 09:09:10 +0000 (18:09 +0900)]
webrtc_restriction: Add function to check feature
RET_ERR_IF_FEATURE_IS_NOT_SUPPORTED macro is also added in
webrtc_private.h.
[Version] 0.1.97
[Issue Type] Feature
Change-Id: I6b154da971830d2392fe691370fe88ec88afddfc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 15 Jan 2021 09:26:32 +0000 (18:26 +0900)]
webrtc_test: Add test cases to use signaling server/client API
[Version] 0.1.96
[Issue Type] Test application
Change-Id: I72388c8c15babfbec032ca85b956c0c29031480a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 15 Jan 2021 04:52:39 +0000 (13:52 +0900)]
webrtc_signaling_client: Parse message and forward it to user callback
A condition to allow only SDP or ICE candidate message is also added
in webrtc_signaling_send_message().
[Version] 0.1.95
[Issue Type] Implementation
Change-Id: Ia5c4de309c25825b5b94d81f0ecc30ed848255c1
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 12 Jan 2021 03:53:06 +0000 (12:53 +0900)]
webrtc_signaling_client: Add internal API set for client of signaling server
Functions are added as below.
- webrtc_signaling_connect()
- webrtc_signaling_request_session()
- webrtc_signaling_send_message()
- webrtc_signaling_get_id()
- webrtc_signaling_disconnect()
[Version] 0.1.94
[Issue Type] API
Change-Id: I95fe182d70cb6f255abee96a7e99793b3777a269
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 15 Jan 2021 07:01:07 +0000 (16:01 +0900)]
webrtc_signaling_server: Handle received SDP or ICE candidate message
[Version] 0.1.93
[Issue Type] Implementation
Change-Id: Ic265706a4c6fbec017444ad35178bdc7850d7441
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 14 Jan 2021 00:42:25 +0000 (09:42 +0900)]
webrtc_signaling_server: Handle request session message
Codes in LWS_CALLBACK_ESTABLISHED case are also revised
with new function.
[Version] 0.1.92
[Issue Type] Implementation
Change-Id: I710cd45fe1bdbc1c76c2a14f98f6990fddffe04c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 13 Jan 2021 10:41:19 +0000 (19:41 +0900)]
webrtc_signaling_server: Assign new id to incoming client
[Version] 0.1.91
[Issue Type] Implementation
Change-Id: Ia16f762883f232fab937ee3fb2c055f2f1102a7b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 11 Jan 2021 12:10:28 +0000 (21:10 +0900)]
webrtc_signaling_server: Add internal API set for signaling server
This signaling server is only for private network.
Handling messages between server and client will be added with
following patches.
Functions are adde as below.
- webrtc_signaling_server_create()
- webrtc_signaling_server_start()
- webrtc_signaling_server_stop()
- webrtc_signaling_server_destroy()
[Version] 0.1.90
[Issue Type] API
Change-Id: I7719cacb9bcb1a0639b0e425067beba5fcb4a881
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Mon, 11 Jan 2021 10:26:44 +0000 (19:26 +0900)]
Apply h/w resource management
- In case of TV profile, functions are disabled.
[Version] 0.1.89
[Issue Type] New feature
Change-Id: Ida0e5049b667c2cb14756d03dae25d9d757178bf
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Fri, 22 Jan 2021 03:20:09 +0000 (12:20 +0900)]
Apply camera/recoder privilege to webrtc_add_media_source() API
For WEBRTC_MEDIA_SOURCE_TYPE_CAMERA type
privilege: http://tizen.org/privilege/camera
privilege level: public
For WEBRTC_MEDIA_SOURCE_TYPE_MIC type
privilege: http://tizen.org/privilege/recorder
privilege level: public
[Version] 0.1.88
[Issue Type] Privilege
Change-Id: Idc91e92e73807e44678e795f34ff951b9ed57822
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 21 Jan 2021 11:53:32 +0000 (20:53 +0900)]
Apply internet privilege to webrtc_create() API
privilege: http://tizen.org/privilege/internet
privilege level: public
[Version] 0.1.87
[Issue Type] Privilege
Change-Id: I31a0015e206a7e27534960c387b3d4e16d2add8d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 21 Jan 2021 11:07:33 +0000 (20:07 +0900)]
Add support for checking privilege
webrtc_restriction.c file is added.
Function and macro to check the privilege are added.
[Version] 0.1.86
[Issue Type] New feature
Change-Id: I492cdd743330d7a82c3979318089e9ed3777e973
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 21 Jan 2021 08:19:36 +0000 (17:19 +0900)]
webrtc: Improve description
Fix wrong sentence in webrtc_start().
Add precondition to webrtc_set_transceiver_direction() and
webrtc_get_transceiver_direction().
[Version] 0.1.85
[Issue Type] Doxygen
Change-Id: Ibf3fe67f43c09b1324088ece4d616892de4fccb0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 20 Jan 2021 07:34:35 +0000 (16:34 +0900)]
webrtc_source: Postpone the link timing in case of media packet source
These is an issue that could not set transceiver direction to media
packet source. In case of media packet source, the media type is
determined when setting the format of the source by API. It affects
this issue because the media type which is not set yet is used inside
of the new transceiver callback triggered by reqeust pad to the webrtcbin
to link with the source.
This patch postphones the link timing including trigger of new transceiver
callback to avoid the fault.
[Version] 0.1.84
[Issue Type] Bug fix
Change-Id: I65c0d45703f825e3d200caf1b9aa739d4e442e22
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 11 Jan 2021 10:03:00 +0000 (19:03 +0900)]
webrtc_websocket: Add support for websocket service
These internal API set will be called by the signaling server
added by patches coming up next.
[Version] 0.1.83
[Issue Type] New feature
Change-Id: I9f047750aa36bbaa67625ac440de73f157c7aaa9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 13 Jan 2021 05:13:08 +0000 (14:13 +0900)]
webrtc_sink: Skip element when auto-plugging if it is in the excluded list
[Version] 0.1.82
[Issue Type] New feature
Change-Id: Ia051348d59944b0e7150399c2373678723abf083
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 12 Jan 2021 04:27:28 +0000 (13:27 +0900)]
webrtc_sink: Add more conditions to skip hw plugin
Ideally, klass metadata of hw element has the suffix of 'Hardware'.
But many cases are found without the suffix.
This patch responds to that case.
[Version] 0.1.81
[Issue Type] Improvement
Change-Id: Ib1d6a2863f1afac0fff7af7ff803c22b98f213d3
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 11 Jan 2021 23:14:04 +0000 (08:14 +0900)]
webrtc_test: Fix crash by adding null checking code
It happended when the stun_server is NULL.
[Version] 0.1.80
[Issue Type] Bug fix
Change-Id: Icd42e710ae171afd2689e67623c6b4d45b5d78f4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 7 Jan 2021 02:47:46 +0000 (11:47 +0900)]
webrtc_private: Have internal states in handle
Signaling state, peer connection state, ice connection state and
ice gathering state are defined as internal state.
The last states of those are kept in webrtc handle.
[Version] 0.1.79
[Issue Type] Improvement
Change-Id: I89b4ac5306ea6e111640199dc5f62989f35e3b41
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 4 Jan 2021 10:31:35 +0000 (19:31 +0900)]
webrtc_source: Use gst_audio_info_* functions of gst-plugins-base
gst_audio_info_set_format() and gst_audio_info_to_caps() are
used to make caps for raw media format.
[Version] 0.1.78
[Issue Type] Improvement
Change-Id: I1dd2aa407a2d5f6627c1856d83a992154a746954
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 31 Dec 2020 08:36:48 +0000 (17:36 +0900)]
webrtc_test: Add test cases for media packet source
Menu items are added as below.
a. 5:media packet
sf. Set media format to media packet source
sm. Set media packet source buffer state changed callback
um. Unset media packet source buffer state changed callback
sp. Start pushing packet to media packet source
tp. Stop pushing packet to media packet source
[Version] 0.1.77
[Issue Type] Test application
Change-Id: I2ca228d956418268d7810a3e34a50f75fc37b41f
Signed-off-by: Sangchul Lee <sangchul1011@gmail.com>
Sangchul Lee [Wed, 16 Dec 2020 08:30:18 +0000 (17:30 +0900)]
Add new API set for media packet source
Enumeration is added as below.
- WEBRTC_MEDIA_PACKET_SOURCE_BUFFER_STATE_UNDERFLOW
- WEBRTC_MEDIA_PACKET_SOURCE_BUFFER_STATE_OVERFLOW
Functions are added as below.
- webrtc_media_packet_source_set_format()
- webrtc_media_packet_source_push_packet()
- webrtc_media_packet_source_set_buffer_state_changed_cb()
- webrtc_media_packet_source_unset_buffer_state_changed_cb()
[Version] 0.1.76
[Issue Type] API
Change-Id: Idca077c8f1e933ef1a79828a0cf00a8f07c936ae
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Dec 2020 08:14:03 +0000 (17:14 +0900)]
webrtc_source: Add support for media packet of encoded format
Limited types of encoded format can be used with media packet
for the media packet type source pipeline.
[Version] 0.1.75
[Issue Type] New feature
Change-Id: I82400178ad34ead3e78321207af97ee258d63c3d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Dec 2020 07:16:57 +0000 (16:16 +0900)]
Add support for media packet source pipeline
The appsrc element is used to build this new type of media source
pipeline. A buffer packetizing by media packet API will be able to
be pushed to this new source pipeline with further patches.
In this patch, only limited types of raw format are supported to make
the new media source pipeline.
[Version] 0.1.74
[Issue Type] New feature
Change-Id: I44b207010df183ca350f763187e6aca063f98f42
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 24 Dec 2020 04:47:47 +0000 (13:47 +0900)]
Add system setting to use ULPFEC and RED
- ULPFEC: Generic Forward Error Correction(FEC) using
Uneven Level Protection(ULP) as described in
RFC 5109(https://tools.ietf.org/html/rfc5109)
- RED: Encoded Redundant Audio Data (RED) as per
RFC 2198(https://tools.ietf.org/html/rfc2198)
- Apply only to video with a large amount of RTP packet such as Chrome
[Version] 0.1.73
[Issue Type] New feature
Change-Id: If3fce2c16a626c1d4196a25209d9670396a9bb77
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Mon, 14 Dec 2020 10:20:08 +0000 (19:20 +0900)]
webrtc_display: Use mm_display_interface_set_display_mainloop_sync()
It is changed to use the new function of mm-display instead of calling
mm_display_interface_set_display() in default context by invoking
g_main_context_invoke().
It is updated by following new patch of mm-display.
: https://review.tizen.org/gerrit/#/c/platform/core/multimedia/libmm-display/+/249487/
[Version] 0.1.72
[Issue Type] Improvement
Change-Id: I2616bedefd19cac90d6a9450e3c4ab37f7b74fbd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 14 Dec 2020 06:38:18 +0000 (15:38 +0900)]
webrtc_display: Remove unused out-parameter
This out-parameter was not filled with the mm-display function.
It is updated by following new patch of mm-display.
: https://review.tizen.org/gerrit/#/c/platform/core/multimedia/libmm-display/+/249087/
[Version] 0.1.71
[Issue Type] Improvement
Change-Id: Icb69cb49d5797cb59fc7f1a653d2ba243df133d7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 14 Dec 2020 05:46:29 +0000 (14:46 +0900)]
fixup! Add webrtc_set_display() API
Change-Id: I7f1012eef50700f2aaf556576cd6f988f17caa1a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 9 Dec 2020 08:37:07 +0000 (17:37 +0900)]
webrtc_display: Improve codes regarding applying display in default context
Use g_main_context_invoke() instead of g_idle_add() to call the callback
function directly if the context is owned by caller.
Use g_idle_remove_by_data() to remove the idle function that might remain.
[Version] 0.1.70
[Issue Type] Improvement
Change-Id: I089c3cc876f55330050f532719d391a0181d07dc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 7 Dec 2020 06:57:58 +0000 (15:57 +0900)]
webrtc_internal: Add webrtc_set_ecore_wl_display() API
It can be utilized to set the ecore wayland window.
[Version] 0.1.69
[Issue Type] API
Change-Id: I036185364c75ab5c6e25c32855e7cabbbdc9bca9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 7 Dec 2020 03:05:47 +0000 (12:05 +0900)]
Add support for rendering video to overlay surface
[Version] 0.1.68
[Issue Type] New feature
Change-Id: I63d4e95a6bad43eca4083ac94a17564d51104cc3
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 1 Dec 2020 08:09:05 +0000 (17:09 +0900)]
webrtc_test: Add support for making up to four connections
Now it can make up to four connections to the signaling server.
Each connection can have one webrtc handle.
A test case for webrtc_set_display() is added.
[Version] 0.1.67
[Issue Type] Test application
Change-Id: I4d7d3d7991ef3a74018435c4e95ca16df6a0c1b7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 1 Dec 2020 08:05:46 +0000 (17:05 +0900)]
Add webrtc_set_display() API
[Version] 0.1.66
[Issue Type] API
Change-Id: I3fc91168cb7d6ead52292262014234897cfccaa1
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 1 Dec 2020 01:11:41 +0000 (10:11 +0900)]
Add support for rendering video to EVAS surface
In case of evas rendering, the handoff signal of fakesink is used
to forward each video frame. After making a media packet based on
the GstBuffer with creating tbm bo and surface, use the evas render
function of mm-display to request it render.
Most of codes are based on the implemenation of player/muse-player
functions except for the server-client structure and zero copy
implementation.
[Version] 0.1.65
[Issue Type] New feature
Change-Id: I138ee1ae01b9de042a1c560f59f4a6a4bee934ed
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 30 Nov 2020 07:29:04 +0000 (16:29 +0900)]
webrtc_tbm: Add internal functions regarding TBM buffer
It'll be used for video rendering pipeline of EVAS surface
without zerocopy format.
[Version] 0.1.64
[Issue Type] New feature
Change-Id: I15377253173684f86bc770f3bea717507fcc8f3b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 26 Nov 2020 11:23:53 +0000 (20:23 +0900)]
Add infrastructure for setting display object
Display type and object can be set to each video sink pipeline.
Now it has a dependency on mm-display-interface.
[Version] 0.1.63
[Issue Type] New feature
Change-Id: I856457101cc858acec86f68a86651bac116e8fdf
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 23 Nov 2020 06:20:55 +0000 (15:20 +0900)]
webrtc_test: Add menu for setting all the callbacks
[Version] 0.1.62
[Issue Type] Test application
Change-Id: I63167d8f25861196aa73e3d1937d952f1aaa5f37
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 23 Nov 2020 06:07:37 +0000 (15:07 +0900)]
Add webrtc_get_stun_server() API
[Version] 0.1.61
[Issue Type] API
Change-Id: I57f394e91b4708b34cea637a31f6c0536efbece5
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 20 Nov 2020 00:30:06 +0000 (09:30 +0900)]
webrtc_ini: Return NULL when empty string is returned by iniparser_getstring()
[Version] 0.1.60
[Issue Type] Improvement
Change-Id: I50e03c14ad4a0eb7dff421c89086e61e0a90b390
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 19 Nov 2020 03:17:58 +0000 (12:17 +0900)]
webrtc_ini: Add new item to set source element name
This item can be added in categories below.
[source camera] or [source mic] or [source audiotest] or [source videotest]
source element =
[Version] 0.1.59
[Issue Type] Improvement
Change-Id: I369278068526f15d214b5c0f5820146b9d85ec80
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 19 Nov 2020 03:07:33 +0000 (12:07 +0900)]
webrtc_data_channel: Remove unnecessary g_object_unref() of data channel
[Version] 0.1.58
[Issue Type] Bug fix
Change-Id: I2551164bfb960f840c346fdaab8fbcc2f6a2c329
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 18 Nov 2020 05:57:20 +0000 (14:57 +0900)]
webrtc_ini: Add new item to set jitterbuffer latency inside of rtpbin
This property can be set in ini file as below.
[general]
rtp jitterbuffer latency =
[Version] 0.1.57
[Issue Type] Improvement
Change-Id: I052f86539fb2b3b8f887ef9fe128f76a46027bce
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 18 Nov 2020 02:21:16 +0000 (11:21 +0900)]
webrtc_ini: Add new category for supporting hw decoder elements
For rendering audio or video data from the remote peer, we are
leaning on the decodebin to manipulate the rendering pipeline.
There can be cases that some elements of h/w decoder should not
be used in the rendering pipepline. Therefore this patch is added
to skip the h/w decoder element that is not specified in the ini
file.
The new category and items will be added in ini file as below.
[rendering sink]
; comma separated list of elements, it should be one by one per codec type
audio hw decoder elements =
video hw decoder elements =
[Version] 0.1.56
[Issue Type] Improvement
Change-Id: I13faa9fc2632a2b4b4082d70c9a86e67ef3d923b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 17 Nov 2020 07:08:38 +0000 (16:08 +0900)]
webrtc_test: Add test case to send/receive a file via data channel
[Version] 0.1.55
[Issue Type] Test application
Change-Id: Ie38f3d76a1c6b47f14a1ee7e3b1be74bb729f81a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 27 Oct 2020 02:13:45 +0000 (11:13 +0900)]
Add API to send byte data via data channel
New handle is added to be used inside of the data channel message callback
- webrtc_bytes_data_h
Functions are added as below.
- webrtc_data_channel_send_bytes()
- webrtc_get_data()
Test cases for these functions are added to webrtc_test.
Some descriptions are fixed correctly.
[Version] 0.1.54
[Issue Type] API
Change-Id: I9e6937e7cf0f9ce5c5bd28419156b8e4382d37c9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 9 Nov 2020 07:31:16 +0000 (16:31 +0900)]
webrtc_ini: Fix condition to get delimiter of gst arguments configuration
It's a side-effect of the commit below.
- webrtc_ini: Revise ini related codes (
3aa1d048c4df223ddd2f90e642b2420f5e79fba6)
Some log levels are changed.
[Version] 0.1.53
[Issue Type] Bug fix
Change-Id: I1641e6eee0be078bfdd1eb87dabbd68d1054a603
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 12 Nov 2020 05:42:12 +0000 (14:42 +0900)]
webrtc_ini: Load default STUN server url from ini configuration file
The value of 'stun server' item in [general] category in ini file
is used as default value.
[Version] 0.1.52
[Issue Type] Improvement
Change-Id: If66c0fc5514d7dcf57f1f54db9bbe46253f1c6ab
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 9 Nov 2020 07:30:26 +0000 (16:30 +0900)]
webrtc_source: Add support for h/w encoder element
[Version] 0.1.51
[Issue Type] Improvement
Change-Id: Ib5da2035f8f3b6cb68e6b147f4ece345332e5c35
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 5 Nov 2020 10:51:13 +0000 (19:51 +0900)]
webrtc_ini: Add support for values per each media source
Values of each media source can be set in ini configuration file.
These values will overwrite same things of [media source] default values.
Items for audio/video hw encoder element are also added.
[Version] 0.1.50
[Issue Type] Improvement
Change-Id: I41bfbe4f7d24d4b0dc09660c1b349cfc933ad827
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 9 Nov 2020 10:04:36 +0000 (19:04 +0900)]
Use bool instead of gboolean
One exception is following original function prototype.
e.g) type of return value and callback function
[Version] 0.1.49
[Issue Type] Revision
Change-Id: I44bcd10c34c254d5b92b709deb7b8d518801ba56
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 4 Nov 2020 07:32:55 +0000 (16:32 +0900)]
webrtc_ini: Revise ini related codes
video/audio codec items are moved to media source category.
Divide defines into category and item.
[Version] 0.1.48
[Issue Type] Improvement
Change-Id: Iaea41b20e00265833a7454f8ca1baa85b6a85604
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 5 Nov 2020 01:57:10 +0000 (10:57 +0900)]
webrtc_sink: Set wait-for-keyframe to rtpv8depay
- If property is set, rtpvp8depay drops the buffer being depayed and wait intra frame when packet loss occurs
- Add element-added callback
[Version] 0.1.47
[Issue Type] Improvement
Change-Id: Ia1289fc3e954e42dde53e8910c4a8e94c529563c
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Tue, 3 Nov 2020 06:44:09 +0000 (15:44 +0900)]
webrtc_source: Use 'ball' pattern of videotestsrc for default
It is added to check frame rate variation more easily by looking
at the display.
[Version] 0.1.46
[Issue Type] Improvement
Change-Id: I298cd809f2e17e21e694ca921223db8115f66027
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 28 Oct 2020 05:56:29 +0000 (14:56 +0900)]
webrtc_source: Fix memory leak when an error occurs in macro
[Version] 0.1.45
[Issue Type] Bug fix
Change-Id: I33958aed4c8f39cc521c849b7dff93df8b4f0d2d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 23 Oct 2020 12:02:07 +0000 (21:02 +0900)]
Apply values of newly added items in ini configuration file
Items regarding media source and codec are added in ini structure.
These values are now applied when creating a media source.
The new items are as below.
[general]
gstreamer excluded elements =
[media source]
video format =
video width =
video height =
video framerate =
audio format =
audio samplerate =
audio channels =
[codec]
audio codec =
video codec =
[Version] 0.1.44
[Issue Type] Improvement
Change-Id: I8a1a3570f5cf3001a25c529e63d0bdef900a44b9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 23 Oct 2020 04:50:20 +0000 (13:50 +0900)]
Import iniparser
webrtc_ini.c is added.
- get ready for reading items of ini configuration file as below.
[general]
generate dot =
dot path =
gstreamer arguments =
gstreamer excluded elements =
[Version] 0.1.43
[Issue Type] Improvement
Change-Id: Ib5a19ad4253867ff4e03d6daf6e5ada96aa54dcb
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 19 Oct 2020 23:49:27 +0000 (08:49 +0900)]
Add API set for notifying user when a track is added
This corresponds to the 'ontrack' property of the RTCPeerConnection.
Functions are added as below.
- webrtc_set_track_added_cb()
- webrtc_unset_track_added_cb()
Test cases for these functions are added to webrtc_test.
[Version] 0.1.42
[Issue Type] API
Change-Id: I32de15dda73f2654294505a8b478e6d589d77e3a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 15 Oct 2020 08:12:02 +0000 (17:12 +0900)]
Check the signaling state in webrtc_create_answer()
This function will return STATE error if a remote offer
message has not been set yet.
[Version] 0.1.41
[Issue Type] Improvement
Change-Id: I8cfaacbb2f72d0b6882c24af24a6aecde3d69587
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 29 Sep 2020 06:13:34 +0000 (15:13 +0900)]
Add API set for data channel
These correspond to methods and event handlers of the RTCPeerConnection
and RTCDataChannel as below.
- RTCPeerConnection: createDataChannel(), ondatachannel
- RTCDataChannel: send(), onopen, onclose, onerror, onmessage
Functions are added as below.
- webrtc_set[unset]_data_channel_cb()
- webrtc_create[destroy]_data_channel()
- webrtc_data_channel_set[unset]_open_cb()
- webrtc_data_channel_set[unset]_message_cb()
- webrtc_data_channel_set[unset]_error_cb()
- webrtc_data_channel_set[unset]_close_cb()
- webrtc_data_channel_send_string()
Test cases for these functions are added to webrtc_test.
[Version] 0.1.40
[Issue Type] API
Change-Id: Ic03a03499de2e44475469b119d2fa8d2f3b72e03
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 13 Oct 2020 06:20:33 +0000 (15:20 +0900)]
Revise webrtc_stop()
The gstreamer pipeline state is changed to NULL when after webrtc_stop().
In this situation, webrtc state is IDLE in which a media source can be added
or removed. This change intends to be sure to release all the resources
inside of the webrtcbin as well as avoid warning message when calling the
gst_bin_remove() within gstreamer READY state.
Release missing sink slots which have been created after finishing
negotiation APIs.
[Version] 0.1.39
[Issue Type] Improvement
Change-Id: Ia51d8f98d8e778619e20c36c6a87ed56721065db
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>