Sangchul Lee [Tue, 12 Apr 2022 04:34:25 +0000 (13:34 +0900)]
webrtc_data_channel: Release data channel after receiving close callback
When destroying a data channel created by local peer, close callback could
be invoked in the middle of the process. Due to the early disconnection
signals, it'd never happen properly.
Add 'from_remote' variable to check if it is created by
_webrtcbin_on_data_channel_cb(). This kind of data channel can not be
destroyed by webrtc_destroy_data_channel().
A FIXME comment is added in _webrtcbin_on_data_channel_cb().
[Version] 0.3.83
[Issue Type] Improvement
Change-Id: Ic0bf5b3efc0760fe3221888cde038d5b1b4000fd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 8 Apr 2022 05:24:28 +0000 (14:24 +0900)]
webrtc_data_channel: Fix memory leak and double free
g_object_unref() is added for data channel object.
When webrtc_destroy() is called, data channels appended to the data channel
list are also released. Due to the omitted code to remove one from the list
when calling webrtc_destroy_data_channel(), double free can occur.
The above are fixed now.
[Version] 0.3.82
[Issue Type] Bug fix
Change-Id: I2b2942666c8ab992bb2a7fe21fc9546b5bdd3019
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 8 Apr 2022 04:18:32 +0000 (13:18 +0900)]
webrtc_data_channel: Add sub-function to prepare data channel
[Version] 0.3.81
[Issue Type] Refactoring
Change-Id: Idae4533ee3b790e43daaa60a26999364bdbe791f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 1 Apr 2022 01:19:28 +0000 (10:19 +0900)]
Fix spacing
[Version] 0.3.80
[Issue Type] Coding convention
Change-Id: Idbb43d9e817afe715c0ca1d9c956171c262d61ed
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 29 Mar 2022 12:31:09 +0000 (21:31 +0900)]
Revise description
webrtc_doc.h
- Fix invalid information
webrtc.h
- Add @remarks to callback function prototypes
[Version] 0.3.79
[Issue Type] Doxygen
Change-Id: Iac7524e8fcee20341a147d1c8eaefb58cfec1035
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 31 Mar 2022 05:09:03 +0000 (14:09 +0900)]
Add missing required libraries for pkg config
[Version] 0.3.78
[Issue Type] pkg-config
Change-Id: I3e1bbe2957379c9a58e2fae7e5e22014f837971e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 23 Mar 2022 04:21:00 +0000 (13:21 +0900)]
webrtc_test: Print stats type as string
[Version] 0.3.77
[Issue Type] Log
Change-Id: I7126c2da4ec511a10abe2f7d8dd71afb62d74d45
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 25 Mar 2022 06:23:34 +0000 (15:23 +0900)]
webrtc_doc: Add callback operation description of the data channel module
[Version] 0.3.76
[Issue Type] Documentation
Change-Id: I8d82b12c99c5830fc214236dc646caa2be790a2a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 25 Mar 2022 05:31:43 +0000 (14:31 +0900)]
webrtc_doc: Add description for statistics module
[Version] 0.3.75
[Issue Type] Documentation
Change-Id: I4a616a34500b5227ba33016a04b39ef950b9ca87
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 23 Mar 2022 02:48:18 +0000 (11:48 +0900)]
Add new statistics type for 'remote-outbound-rtp'
New statistics type is added as below.
- WEBRTC_STATS_TYPE_REMOTE_OUTBOUND_RTP
Property enum is added as below for this type
- WEBRTC_STATS_PROP_REMOTE_TIMESTAMP
Example codes are also added to the doxygen of
webrtc_foreach_stats().
[Version] 0.3.74
[Issue Type] API
Change-Id: I871069caf3dfd9591feff497f0e013a63995f7a9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 23 Mar 2022 02:19:37 +0000 (11:19 +0900)]
Add new statistics type for 'remote-inbound-rtp'
New statistics type is added as below.
- WEBRTC_STATS_TYPE_REMOTE_INBOUND_RTP
Property enums are added as below for this type
- WEBRTC_STATS_PROP_LOCAL_ID
- WEBRTC_STATS_PROP_ROUND_TRIP_TIME
- WEBRTC_STATS_PROP_FRACTION_LOST
[Version] 0.3.73
[Issue Type] API
Change-Id: I9547674d2ca3e5a083bd649ae78880efaf2f1d5a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 22 Mar 2022 12:29:09 +0000 (21:29 +0900)]
Add new statistics type for 'outbound-rtp'
New statistics type is added as below.
- WEBRTC_STATS_TYPE_OUTBOUND_RTP
Property enums are added as below for this type
- WEBRTC_STATS_PROP_BYTES_SENT
- WEBRTC_STATS_PROP_PACKETS_SENT
[Version] 0.3.72
[Issue Type] API
Change-Id: Ia8574ddec63893eebacbd413ef253bed8b4a5102
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 21 Mar 2022 13:12:24 +0000 (22:12 +0900)]
Add new statistics type for 'inbound-rtp'
New statistics type is added as below.
- WEBRTC_STATS_TYPE_INBOUND_RTP
Property enums are added as below for this type
- WEBRTC_STATS_PROP_SSRC
- WEBRTC_STATS_PROP_TRANSPORT_ID
- WEBRTC_STATS_PROP_CODEC_ID
- WEBRTC_STATS_PROP_PACKETS_RECEIVED
- WEBRTC_STATS_PROP_PACKETS_LOST
- WEBRTC_STATS_PROP_PACKETS_DISCARDED
- WEBRTC_STATS_PROP_JITTER
- WEBRTC_STATS_PROP_REMOTE_ID
- WEBRTC_STATS_PROP_BYTES_RECEIVED
- WEBRTC_STATS_PROP_PACKETS_DUPLICATED
- WEBRTC_STATS_PROP_FIR_COUNT
- WEBRTC_STATS_PROP_PLI_COUNT
- WEBRTC_STATS_PROP_NACK_COUNT
[Version] 0.3.71
[Issue Type] API
Change-Id: I2e1d4f7bd65659dcdb9931c6df7505e3180836e9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 18 Mar 2022 09:43:31 +0000 (18:43 +0900)]
webrtc_stats: Add support for skip callback of stats type or field not exported
[Version] 0.3.70
[Issue Type] Improvement
Change-Id: I87774427c28dea4197239f03947b792ea9d5268b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Mar 2022 04:13:43 +0000 (13:13 +0900)]
Add statistics API
For now, only 'codec' statistics type is exported.
Other types will be supported with the following patches.
Function is added to get all the properties per statistics type.
- webrtc_foreach_stats()
Callback function prototype is added as below.
- typedef bool (*webrtc_stats_cb)(webrtc_stats_type_e type,
webrtc_stats_prop_info_s *prop_info,
void *user_data);
Enum is added as below for statistics type.
- WEBRTC_STATS_TYPE_CODEC
Struct is added to be used as a parameter of the callback function.
- webrtc_stats_prop_info_s
Enums are added as below for statisics property
- WEBRTC_STATS_PROP_TIMESTAMP
- WEBRTC_STATS_PROP_ID
- WEBRTC_STATS_PROP_PAYLOAD_TYPE
- WEBRTC_STATS_PROP_CLOCK_RATE
- WEBRTC_STATS_PROP_CHANNELS
- WEBRTC_STATS_PROP_MIME_TYPE
- WEBRTC_STATS_PROP_CODEC_TYPE
- WEBRTC_STATS_PROP_SDP_FMTP_LINE
Enums are added as below for statistics property data type
- WEBRTC_STATS_PROP_TYPE_BOOL
- WEBRTC_STATS_PROP_TYPE_INT
- WEBRTC_STATS_PROP_TYPE_UINT
- WEBRTC_STATS_PROP_TYPE_INT64
- WEBRTC_STATS_PROP_TYPE_UINT64
- WEBRTC_STATS_PROP_TYPE_FLOAT
- WEBRTC_STATS_PROP_TYPE_DOUBLE
- WEBRTC_STATS_PROP_TYPE_STRING
[Version] 0.3.69
[Issue Type] API
Change-Id: I52bbe25d6c03c4db1b0e0ffbf7c8f293da0b62a0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 17 Mar 2022 02:55:30 +0000 (11:55 +0900)]
webrtc_data_channel: Change the application of macro for coverage mesurement exclusion
It is updated as per the following ITC update.
: https://review.tizen.org/gerrit/#/c/test/tct/native/api/+/269285/
[Version] 0.3.68
[Issue Type] Line coverage
Change-Id: I623da2cf1986c42170533b67d6cc1bc1e5a9eef9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Mar 2022 02:23:40 +0000 (11:23 +0900)]
webrtc_stats: Add user callback parameters to _webrtcbin_get_stats()
Some improvements are also applied
: Use gst_promise_new_with_change_func()'s notify parameter to free userdata
: Rename __gststructure_foreach_cb() to __stats_field_foreach_cb()
: Separate user data structure for __stats_field_foreach_cb()
[Version] 0.3.67
[Issue Type] Improvement
Change-Id: Iad04f0b544b0c2c311a83c0497996da6f47a6d72
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Seungbae Shin [Thu, 10 Mar 2022 04:22:31 +0000 (13:22 +0900)]
Use GStrv instead of gchar** on explict NULL-terminated vector string
use g_auto for GStrv whenever possible
[Version] 0.3.66
[Issue Type] Refactoring
Change-Id: I58458c31bf4ff6e384358b9eb3bf6be53d71c531
Sangchul Lee [Fri, 25 Feb 2022 07:29:59 +0000 (16:29 +0900)]
webrtc_stats: Update codec, remote-inbound-rtp and remote-outbound-rtp stats
[codec]
channels, mime-type, codec-type and sdp-fmtp-line fields are added.
[remote-inbound-rtp]
fraction-lost field is added.
[remote-outbound-rtp]
packets-sent and bytes-sent fields are added.
These are newly added due to the GStreamer 1.20 update.
[Version] 0.3.65
[Issue Type] Update
Change-Id: I8857968b3f286d84bf2a54ec8391197d8acadb57
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 2 Mar 2022 11:40:04 +0000 (20:40 +0900)]
webrtc_private: Add omitted lock/unlock mutex for g_cond_signal()
This ensures to call g_cond_wait_until() before sending the signal.
[Version] 0.3.64
[Issue Type] Bug fix
Change-Id: I78b799067cf3f6a4a45ddf58c9341e679415a079
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 25 Feb 2022 06:15:14 +0000 (15:15 +0900)]
webrtc_stats: Revise to allow pre-defined fields per stats type
It is also possible to check easily fields incoming from gstreamer
which are not defined in this library yet.
[Version] 0.3.63
[Issue Type] Refactoring
Change-Id: Ied57fcf1ad4b350588d1456ddca56f6fe4003774
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 24 Feb 2022 11:10:04 +0000 (20:10 +0900)]
webrtc_stats: Print values in __gststructure_foreach_cb()
[Version] 0.3.62
[Issue Type] Log
Change-Id: I9c17a00657e64459b4106741618bfd4fd84cd5db
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 24 Feb 2022 07:30:50 +0000 (16:30 +0900)]
webrtc_stats: Fix to get valid user data in __webrtcbin_stats_cb()
[Version] 0.3.61
[Issue Type] Bug fix
Change-Id: I2393b2298118c52beb86eb8444d90978bc6c0e4c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 22 Feb 2022 08:00:39 +0000 (17:00 +0900)]
fixup! Add more mutex guard for callbacks
New mutex variable is defined for idle cb event source.
[Version] 0.3.60
[Issue Type] Improvement
Change-Id: Iee25695dbee13d25ff027baf39be79986a7bd9a0
Sangchul Lee [Tue, 22 Feb 2022 05:11:22 +0000 (14:11 +0900)]
webrtc_test: Fix data type to prevent integer overflow
[Version] 0.3.59
[Issue Type] SVACE
Change-Id: I5722a5c8f5fc8ef0b4d8200ff2d74113cc06037c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 21 Feb 2022 10:15:45 +0000 (19:15 +0900)]
webrtc_data_channel: Reference data channel object in _on_data_channel_cb()
It is added due to the GStreamer update to 1.20 that includes patches below.
: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2186
Otherwise, some warning messages occur when releasing data channels.
[Version] 0.3.58
[Issue Type] Update
Change-Id: Ic1437a4e6e46610ed9eecd406208781d1b0231db
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 18 Feb 2022 10:25:46 +0000 (19:25 +0900)]
Add more mutex guard for callbacks
[Version] 0.3.57
[Issue Type] Improvement
Change-Id: I1f536532c3c4bac4101d68c125197d80b267856f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 18 Feb 2022 07:29:08 +0000 (16:29 +0900)]
webrtc_stats: Add support for masking stats type
Entering logs are added for each callback.
[Version] 0.3.56
[Issue Type] Improvement
Change-Id: I5e38d9640e5e0c4fa5c9520eacdcaf5edac0c58e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 7 Feb 2022 09:15:28 +0000 (18:15 +0900)]
Fix codes along with GStreamer 1.19.3 update
[Version] 0.3.55
[Issue Type] Update
Change-Id: Icc8b596b7261e7e1a632edb9457e2be599bd01c9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 3 Feb 2022 04:52:14 +0000 (13:52 +0900)]
webrtc_source: Use gst_element_request_pad_simple()
gst_element_get_request_pad() is deprecated since GStreamer 1.19.1.
[Version] 0.3.54
[Issue Type] Update
Change-Id: I9a81e2d80a036d070d4ca3c00da511beac1e1dd4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 8 Feb 2022 00:32:53 +0000 (09:32 +0900)]
webrtc_sink/source: Add const keywords
[Version] 0.3.53
[Issue Type] Improvement
Change-Id: Icd1575632033d62f245b29d4a7a8528ef879a02e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 3 Feb 2022 09:15:39 +0000 (18:15 +0900)]
webrtc_source: Use transceiver pointer instead of mline variable
Since gst 1.19.x version, at this point in 'on-new-transceiver'
signal callback of webrtcbin, the transceiver mline index could be
set to -1. Therefore, it is changed to refer the transceiver object
itself.
[Version] 0.3.52
[Issue Type] Refactoring
Change-Id: I3b1b1eab5309362374df40dd96d89b1fff32257a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 27 Jan 2022 06:12:48 +0000 (15:12 +0900)]
webrtc_data_channel: Remove unreachable code and revise error log
[Version] 0.3.51
[Issue Type] Improvement
Change-Id: I3fb502f8ea712233a660e382904a65fd2e47fee0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 27 Jan 2022 04:14:29 +0000 (13:14 +0900)]
Revise doxygen
FPS is mentioned to functions regarding video framerate.
Post command regarding error callback is described in case of
failure on sending data via data channel.
[Version] 0.3.50
[Issue Type] Doxygen
Change-Id: I3fa1e5f84b25a35bda9260292945889dda429a9c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 25 Jan 2022 00:19:57 +0000 (09:19 +0900)]
webrtc_test: Add menu to get mute
Unused definition is removed.
A space is added before asterisk in case of casting with pointer type.
[Version] 0.3.49
[Issue Type] Add
Change-Id: Id0a253eb77d55c4148138ed7019db9bfaacbe589
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 21 Jan 2022 07:55:17 +0000 (16:55 +0900)]
Add more macro to exclude lines from coverage measurement
[Version] 0.3.48
[Issue Type] Line coverage
Change-Id: Icfa24afaa6ca76d881a58a6a4bb27090c5936f99
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 21 Jan 2022 04:53:44 +0000 (13:53 +0900)]
Add space before asterisk in case of casting with pointer type
[Version] 0.3.47
[Issue Type] Coding convention
Change-Id: I574d1f547c66851d428c25c2f9d9125d939559aa
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 14 Jan 2022 09:55:52 +0000 (18:55 +0900)]
webrtc_test: Add test cases for bundle policy and video frame rate
Menu items below are added.
f. Set video framerate
m. Get video framerate
sbp. Set bundle policy
gbp. Get bundle policy
[Version] 0.3.46
[Issue Type] Add
Change-Id: I9a147947a86e340726734e58b565f20d8c12cc69
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 12 Aug 2021 08:37:30 +0000 (17:37 +0900)]
Add API to set/get bundle policy
Enums are added as below.
- WEBRTC_BUNDLE_POLICY_NONE
- WEBRTC_BUNDLE_POLICY_MAX_BUNDLE
Functions are added as below.
- webrtc_set_bundle_policy()
- webrtc_get_bundle_policy()
[Version] 0.3.45
[Issue Type] API
Change-Id: Ie3a66548f4f0300023ab24a23b84312cd6c888f8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 13 Jan 2022 02:43:52 +0000 (11:43 +0900)]
Add API to set/get video frame rate
Functions are added as below.
- webrtc_media_source_set_video_framerate()
- webrtc_media_source_get_video_framerate()
[Version] 0.3.44
[Issue Type] API
Change-Id: I3f48537153c245a17a1833404f4441513a2cf6c2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 20 Jan 2022 04:52:37 +0000 (13:52 +0900)]
Change gcov object install path
[Version] 0.3.43
[Issue Type] Gcov
Change-Id: I10061f55df49d2c7cc4ae43de352cd46808b1e82
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Thu, 20 Jan 2022 03:20:35 +0000 (12:20 +0900)]
Add missing parameter check code
[Version] 0.3.42
[Issue Type] Improvement
Change-Id: I89cb4efc0a9b533c000f76b65c05ee3cba7c90bf
Sangchul Lee [Fri, 14 Jan 2022 05:49:27 +0000 (14:49 +0900)]
Add omitted error checking in webrtc_create()
[Version] 0.3.41
[Issue Type] Improvement
Change-Id: Ib208fc70c4f477495b8f44a155a85e9ba3c5c123
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Thu, 6 Jan 2022 07:38:57 +0000 (16:38 +0900)]
Add new data channel buffered amount APIs
Functions are added as below.
- typedef void (*webrtc_data_channel_buffered_amount_low_cb)()
- webrtc_data_channel_get_buffered_amount()
- webrtc_data_channel_set_buffered_amount_low_cb()
- webrtc_data_channel_get_buffered_amount_low_threshold()
- webrtc_data_channel_unset_buffered_amount_low_cb()
[Version] 0.3.40
[Issue Type] API
Change-Id: I3279925a1508955eded709927639ca2249c20137
Sangchul Lee [Tue, 4 Jan 2022 04:59:54 +0000 (13:59 +0900)]
Remove event sources not invoked when destroying webrtc handle
A crash can happen with the previous codes.
It is fixed by removing event sources of idle callbacks
which are not invoked yet before destroying webrtc handle.
[Version] 0.3.39
[Issue Type] Bug fix
Change-Id: Icff390fdd63ee2aa7bfeedd547d63dbb3e0f5d5a
Sangchul Lee [Wed, 22 Dec 2021 09:41:31 +0000 (18:41 +0900)]
webrtc_test: Add vp8 decoding pipeline when __DEBUG_VALIDATE_ENCODED_FRAME_CB__ is enabled
[Version] 0.3.38
[Issue Type] Debug
Change-Id: I1a99f64c86f10769b539e6a15a0fda64b1f19a4d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 8 Nov 2021 05:31:47 +0000 (14:31 +0900)]
webrtc_test: Add opus decoding pipeline when __DEBUG_VALIDATE_ENCODED_FRAME_CB__ is enabled
[Version] 0.3.37
[Issue Type] Debug
Change-Id: I47828c656e7ac86ee9111434b53478f9f50d4d4d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 29 Dec 2021 08:34:53 +0000 (17:34 +0900)]
webrtc_ini: Add new item to set in-band FEC and packet loss percentage
e.g)
[media source]
use inbandfec = no
packet loss percentage = 0
[source audiotest]
; values below will override the default one of [media source] above
use inbandfec = yes
packet loss percentage = 10
[Version] 0.3.36
[Issue Type] Improvement
Change-Id: If4fb6b658d02d7890ddb9924ebe3aceb5cdc4f08
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 28 Dec 2021 07:27:26 +0000 (16:27 +0900)]
Rename payload id to payload type(pt)
New one is the term the most commonly used.
[Version] 0.3.35
[Issue Type] Refactoring
Change-Id: Ic0b070cab1fd445ae0bd327f382a4f3d349356ff
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 12 Nov 2021 08:15:11 +0000 (17:15 +0900)]
webrtc_source: Enable in-band FEC of OPUS encoder
Revise caller of g_object_set()/get() to use multiple lines.
[Version] 0.3.34
[Issue Type] New feature
Change-Id: I8f514758e0e768c1ffad1f2288c87207f963c05a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 14 Dec 2021 06:42:48 +0000 (15:42 +0900)]
webrtc_sink: Enable in-band FEC of OPUS decoder
[Version] 0.3.33
[Issue Type] New feature
Change-Id: I48d271615a1f742e15c2ba2d10e4de023d4430cc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 27 Dec 2021 05:23:59 +0000 (14:23 +0900)]
webrtc_sink: Change parameter and use existing macro to print some log
[Version] 0.3.32
[Issue Type] Refactoring
Change-Id: I46e430d17016bffb4c5b64a88c9597a147564aa2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 23 Dec 2021 07:07:21 +0000 (16:07 +0900)]
webrtc_ini: Add new item to set bundle policy and apply it
[general]
; SDP bundle policy (0:none, 1:balanced, 2:max compat, 3:max bundle)
bundle policy = 3
Note that 1 and 2 are not supported yet.
[Version] 0.3.31
[Issue Type] Improvement
Change-Id: I47f72ad12d21399727a398ea74da7e452b5a71ec
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Mon, 13 Dec 2021 06:47:33 +0000 (15:47 +0900)]
Fix resource leak when get caps from pad
[Version] 0.3.30
[Issue Type] Resource leak
Change-Id: I1123877111921b88c898299cc2a9ef1f7ae3dec1
Sangchul Lee [Fri, 17 Dec 2021 04:43:28 +0000 (13:43 +0900)]
webrtc_test: Add menu to set/get RTP packet drop probability
sdp. Set RTP packet drop probability
gdp. Get RTP packet drop probability
[Version] 0.3.29
[Issue Type] New feature
Change-Id: I40899c4948614e0b94fd2f8485335b38e21533ca
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 17 Dec 2021 04:06:55 +0000 (13:06 +0900)]
Remove unused internal API
Use webrtc_set[get]_rtp_packet_drop_probability() instead.
[Version] 0.3.28
[Issue Type] Clean up
Change-Id: I1e32d62c2a727aba58dd0cf8cf43dec096fd00f7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 17 Dec 2021 02:43:11 +0000 (11:43 +0900)]
webrtc_internal: Add APIs to set/get RTP packet drop probability
Functions below are added.
- webrtc_set_rtp_packet_drop_probability()
- webrtc_get_rtp_packet_drop_probability()
RTP packets can be dropped before sending or after being received
with this new function.
[Version] 0.3.27
[Issue Type] New feature
Change-Id: I8d2ca412bb272d750e40d39332d999e3b0cc0085
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 13 Dec 2021 08:17:34 +0000 (17:17 +0900)]
webrtc_private: Parse fmtp attribute and save useinbandfec value to the handle
It is parsed from a remote description. This information will be used
to set related property to a decoder.
[Version] 0.3.26
[Issue Type] New feature
Change-Id: Ieef7a244405c617d64b28c069f5f55cbc65fde69
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 22 Dec 2021 04:17:13 +0000 (13:17 +0900)]
fixup! webrtc_private: Add structure for data recovery types and update it
One more condition is added for an offerer.
1. set local offer description (changed to HAVE_LOCAL_OFFER)
2. set remote answer description (changed to STABLE)
Function name is also changed.
Change-Id: I2a2bdc5058c41750a2a0e46c50b7112cda6b0a72
backto.kim [Mon, 20 Dec 2021 01:56:00 +0000 (10:56 +0900)]
Fix caps double unref when making element
[Version] 0.3.25
[Issue Type] Bug fix
Change-Id: I8ac9b81d6301eb0c519d6976b6fe620cad6bade5
backto.kim [Mon, 20 Dec 2021 02:37:57 +0000 (11:37 +0900)]
Separate the code to get encoder
[Version] 0.3.24
[Issue Type] Refactoring
Change-Id: Iee321f4b3126c0d1545421d95594076b395ccd4a
Sangchul Lee [Tue, 14 Dec 2021 09:42:22 +0000 (18:42 +0900)]
webrtc_ini: Revise two default values
1. DEFAULT_USE_ULPFEC_RED is changed to FALSE
FEC is optional functionality that also affects bitrate and latency,
so, set it FALSE as a default value.
2. DEFAULT_VPXENC_KEYFRAME_MAX_DIST is changed from 999999 to 10
The previous value which has been brought from www.webmproject.org
with no thought of that we are using 'wait-for-keyframe' of VP8
depayloader. With a high value, received video stream can be shown
to be freezed when a RTP packet gets lost. Therefore, this value is
now changed to the reasonable value.
Note that these values affect only if there's empty value in ini file
or there's no ini file in a target.
[Version] 0.3.23
[Issue Type] Improvement
Change-Id: I19dd64b5bdb3fd21f09ab213cf2d8bae9b52a190
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 13 Dec 2021 07:44:02 +0000 (16:44 +0900)]
webrtc_private: Add some parsing functions for rtpmap attribute
A verbose log for attribute key/value is added.
[Version] 0.3.22
[Issue Type] Improvement
Change-Id: I6412f5842f196b2310c42a48b39ae129d3c54e5c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 10 Dec 2021 11:40:58 +0000 (20:40 +0900)]
Improve codes for setting transceiver FEC
It is revised to update the values before creating offer/answer.
Logic is branched by situation if it is an offer or answer.
[Version] 0.3.21
[Issue Type] Improvement
Change-Id: I3e71683ed0adc4413cab30f2ef27b941db12e9de
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 10 Dec 2021 10:34:32 +0000 (19:34 +0900)]
webrtc_private: Revise FEC setting condition in case of answerer without media source
In this case, it is fixed to depend on related values of remote offer description
instead of the ini value.
'fec-percentage' is not required for a 'recvonly' transceiver.
[Version] 0.3.20
[Issue Type] Improvement
Change-Id: I5de375283865ae604e590c7a74c099a649b3354c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 6 Dec 2021 11:07:29 +0000 (20:07 +0900)]
webrtc_private: Add structure for data recovery types and update it
It is updated from remote offer description. And it'll be used to
determine to enable the recovery mechanism for answerer.
[Version] 0.3.19
[Issue Type] Improvement
Change-Id: I35716c66381cfae8931f17b07817d0c93f52395b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Thu, 9 Dec 2021 06:13:31 +0000 (15:13 +0900)]
Fix resource leak when get caps from pad
[Version] 0.3.18
[Issue Type] Resource leak
Change-Id: Ia25db3063b47c6f00c59f2cfabf0b8cb0a22c38b
backto.kim [Thu, 9 Dec 2021 04:22:47 +0000 (13:22 +0900)]
Improve the code to check media type
[Version] 0.3.17
[Issue Type] Refactoring
Change-Id: Icc49b8e30ab2744d6d08a64f59dcc2b7c4b93c30
backto.kim [Wed, 1 Dec 2021 09:05:12 +0000 (18:05 +0900)]
Move internal file source functions to the public header
Functions below are moved to the public header.
- webrtc_file_source_set_path()
- webrtc_file_source_set_looping()
- webrtc_file_source_get_looping()
[Version] 0.3.16
[Issue Type] API
Change-Id: I62ae2ca6a8a52dde7a9471e894476a61b4d59c45
Sangchul Lee [Wed, 8 Dec 2021 02:21:14 +0000 (11:21 +0900)]
webrtc_private: Use const keyword to return type of _ini_get_source_by_type()
The value of returned structure pointer should not be modified.
All the callers are also modified to use the keyword.
[Version] 0.3.15
[Issue Type] Improvement
Change-Id: I14b6c2184835fe94dcf4f0cf4403242068e82cbb
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 6 Dec 2021 11:46:30 +0000 (20:46 +0900)]
webrtc_source: Set source element properties values from ini file
[Version] 0.3.14
[Issue Type] Improvement
Change-Id: I3367d1d8ae0f5b20be644330a3131c9906edcefd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Tue, 23 Nov 2021 04:36:17 +0000 (13:36 +0900)]
webrtc_source: Use _av_tbl to get element name
[Version] 0.3.13
[Issue Type] Refactoring
Change-Id: Ic6c2aacd44f4a01bf65f0b8ec5c91c011a93b843
backto.kim [Tue, 23 Nov 2021 02:20:53 +0000 (11:20 +0900)]
Blocking filesrc streaming until the connection with peer is completed
Common streaming sending is blocked while connecting with peer.
but until now, filesrc has not been blocked because filesrc constructs it's own pipeline.
[Version] 0.3.12
[Issue Type] Improvement
Change-Id: I18c45e075b5b1db6e78822d7af2ee6a0148a8d8b
Sangchul Lee [Tue, 16 Nov 2021 10:59:02 +0000 (19:59 +0900)]
webrtc_ini: Add new item to set source element properties
ini file example)
[source xxx]
source element properties = prop_name1=value1, prop_name2=value2
_gst_set_element_properties() is added to set property list
to an element.
[Version] 0.3.11
[Issue Type] New feature
Change-Id: Ic9bd7e7c019c8eb6c086b48d33dbe572e6ed23f5
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 16 Nov 2021 03:38:00 +0000 (12:38 +0900)]
webrtc_private: Add excluded element list to CREATE_ELEMENT_FROM_REGISTRY()
The excluded element list from ini file is now referenced by two locations.
1. sink side (previous one) - _decodebin_autoplug_select_cb()
2. source side - CREATE_ELEMENT_FROM_REGISTRY() in __create_rest_of_elements()
[Version] 0.3.10
[Issue Type] Improvement
Change-Id: I277dfd574d8abbb9cd25e961a46efbaff7855ffc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Tue, 12 Oct 2021 06:25:01 +0000 (15:25 +0900)]
Add new audio/video loopback unset APIs
Functions are added as below.
- webrtc_media_source_unset_audio_loopback()
- webrtc_media_source_unset_video_loopback()
[Version] 0.3.9
[Issue Type] API
Change-Id: I78612a39367a56891bed8c7d6c6fa6aeae007098
Sangchul Lee [Fri, 12 Nov 2021 08:00:43 +0000 (17:00 +0900)]
fixup! Added vpx encoder system configure setting for real-time CBR encoding and streaming
Wrong comparisons are fixed. The previous patch is now affected.
Change-Id: If16b7a7be15ad1062b3736352bcdccd7071e8f15
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 11 Nov 2021 06:57:58 +0000 (15:57 +0900)]
webrtc_test: Add sub-menu to use mic only in room case
Parameter of _webrtc_add_media_source() is revised.
[Version] 0.3.8
[Issue Type] Add
Change-Id: I8312d9f19701b2859bc736745fc54d1c79b8ab57
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 9 Nov 2021 07:37:59 +0000 (16:37 +0900)]
webrtc_test: Show server ip/port/status when using private signaling server
It is also fixed to use designated initializers for some string arrays.
[Version] 0.3.7
[Issue Type] Improvement
Change-Id: I28f50fee799466de6ac0fee6de1772374a196246
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 9 Nov 2021 06:56:05 +0000 (15:56 +0900)]
webrtc_source: Fix typos
DEFAULT_NAME_XXX should be ELEMENT_NAME_XXX.
[Version] 0.3.6
[Issue Type] Typo fix
Change-Id: Id365803d8e92272aec050e9bccc1a4b2075bfa28
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 9 Nov 2021 06:25:52 +0000 (15:25 +0900)]
webrtc_sink: Set channel and samplerate if available when making a media format
This code blocks is activated when user calls webrtc_set_encoded_audio_frame_cb().
[Version] 0.3.5
[Issue Type] Improvement
Change-Id: I663a3e3416beb2cf974f346c43bd0b750ae79737
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 8 Nov 2021 01:29:05 +0000 (10:29 +0900)]
webrtc_source: Use list to carry elements to remove these from file source
Variable and function are also renamed to use 'payloader' not 'payload'.
[Version] 0.3.4
[Issue Type] Refactoring
Change-Id: Iaf165625dc135d2e0248e3c103ffc0aa9775bcd4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 1 Nov 2021 11:16:07 +0000 (20:16 +0900)]
webrtc_test: Add menu to set/get RTP packet drop probability
[Version] 0.3.3
[Issue Type] New feature
Change-Id: Icee1dcba86b477a44a97708481a006b2f36c28fb
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 1 Nov 2021 09:43:00 +0000 (18:43 +0900)]
webrtc_internal: Add APIs to set/get RTP packet drop probability
Functions below are added.
- webrtc_media_source_set_rtp_packet_drop_probability()
- webrtc_media_source_get_rtp_packet_drop_probability()
[Version] 0.3.2
[Issue Type] API
Change-Id: I0dfbc2e39705c2d47485807bc0cc1c8ba1850d58
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 28 Oct 2021 06:06:45 +0000 (15:06 +0900)]
webrtc_ini: Add new item to enable network simulator
The network simulator element will be imported when the item
is set to 'yes' in the ini file.
This element is added right after payload of a source bin.
Dropping packets can be simulated by calling new internal API
coming up next patch.
Missing g_value_unset() is added.
[Version] 0.3.1
[Issue Type] New feature
Change-Id: Ia9231c68c19f6bec6bafb404b4d269c5ae3ab5d8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 1 Nov 2021 09:54:15 +0000 (18:54 +0900)]
webrtc_internal: Revise webrtc_screen_source_set/unset_crop()
Parameter check codes are revised.
g_mutex_locker_new() applies to this function.
[Version] 0.2.147
[Issue Type] Refactoring
Change-Id: I1ce481aa9e65a34a5b813258885019a0f7e6afa9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 1 Nov 2021 06:26:16 +0000 (15:26 +0900)]
webrtc_source: Use list to carry elements for making encoded media packet source
Some codes exiting without releasing resources are fixed.
Level of logs in __link_elements() is changed.
Redundant logs are removed.
[Version] 0.2.146
[Issue Type] Improvement
Change-Id: I3d315984ab5fd4d2046a546d823549a29ab4c7e2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 2 Nov 2021 04:12:29 +0000 (13:12 +0900)]
webrtc_source: Improve list handling in __complete_mediapacketsrc_from_raw_format()
When an error occurs, a node memory of list for appsrc is not freed.
It is now fixed.
[Version] 0.2.145
[Issue Type] Bug fix
Change-Id: I092cfb4dc86570fca0f77e4c68171c5b9a228908
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 2 Nov 2021 03:32:42 +0000 (12:32 +0900)]
webrtc_source: Improve error handling when failure on adding element to bin
If an error occurs when calling gst_bin_add() for element list,
error handling codes for unreferencing the elements should be divided
with two phases, one is for elements already added to the bin, the other
one is for the rest of elements in the list.
[Version] 0.2.144
[Issue Type] Improvement
Change-Id: Ie5a8c9eaa0f8dd462ec0079a59e85ebc1b8f070a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 28 Oct 2021 03:27:15 +0000 (12:27 +0900)]
webrtc_test: Fix to add ice candidate to the valid handle
[Version] 0.2.143
[Issue Type] Bug fix
Change-Id: Ic3c8a754382b222d74143fd8062146449d20d842
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 28 Oct 2021 01:16:38 +0000 (10:16 +0900)]
webrtc_private: Append webrtc handle pointer address to webrtcbin name
This can help user analyze logs more easily.
[Version] 0.2.142
[Issue Type] Debug
Change-Id: I6afaa2d622f76cf57a63823dff4c80e6fd709b8f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 26 Oct 2021 00:01:01 +0000 (09:01 +0900)]
webrtc_test: Support data channel in case of room join test
It is now possible send/receive text message via data channel
in case of room join test.
'zs', 'zb' menu can be used to send message to peers in the room.
[Version] 0.2.141
[Issue Type] New feature
Change-Id: Ia4847e8a91e55023c789bd113cbc6e4c6d8e1813
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 25 Oct 2021 06:13:58 +0000 (15:13 +0900)]
webrtc_test: Fix bug of room join test
In case of room scenario, when a remote peer is joining the room
where the first handle has already joined, new webrtc handle uses
same media sources that the first handle is using.
[Version] 0.2.140
[Issue Type] Bug fix
Change-Id: Ifa9ecea9b01a35370d871a8277668cba4b64083c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 25 Oct 2021 09:47:40 +0000 (18:47 +0900)]
webrtc_test: Abandon connection change menu
The connection change menu intended to use multiple websocket
connections is not that useful considering the conflict of display
object. This application is now modified to use only one websocket
connection with signaling server.
The room joining scenario still can have multiple peers(webrtc handles)
with only one websocket connection.
[Version] 0.2.139
[Issue Type] Clean-up
Change-Id: I712665a9f1040e192706716e6fa6b4f75fb7599a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 21 Oct 2021 01:06:48 +0000 (10:06 +0900)]
webrtc_test: Show text message from data channel to the display
[Version] 0.2.138
[Issue Type] Improvement
Change-Id: I217484ed9bf9d74a1519dee8726afaf8f9b5c4d4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Wed, 20 Oct 2021 02:49:19 +0000 (11:49 +0900)]
webrtc_source: Use list to carry elements for loopback pipeline
[Version] 0.2.137
[Issue Type] Refactoring
Change-Id: I35530c0bb7fdb89bdcdde5897d068a8acfaa599c
Sangchul Lee [Thu, 21 Oct 2021 01:36:12 +0000 (10:36 +0900)]
Apply macros to exclude lines from coverage measurement #2
[Version] 0.2.136
[Issue Type] Line coverage
Change-Id: I472ebce3a0748d0056ec929a920388262f1e1288
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 19 Oct 2021 11:09:00 +0000 (20:09 +0900)]
webrtc_source: Apply GENERATE_DOT() macro to loopback and filesrc
The filesrc pipeline name and loopback render pipeline name are
changed to be identified easily that which source belongs to it
by its name.
Dot file names are also changed.
[Version] 0.2.135
[Issue Type] Debug feature
Change-Id: I843eb7b4e8f42df20c5cd04a89c42a773e79af8c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 20 Oct 2021 02:34:18 +0000 (11:34 +0900)]
webrtc_private: Revise macro definitions
Some are modified to use do/while(0).
[Version] 0.2.134
[Issue Type] Improvement
Change-Id: Iae3b8aa519077fd03593651b3478deb7f2397e57
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Tue, 19 Oct 2021 08:25:30 +0000 (17:25 +0900)]
webrtc_source: Add parameter to __create_rest_of_elements() to check the exact media type.
file source can have audio and video together in the "media type".
So, actual media type to make proper elements should not be determined only by the "media type".
[Version] 0.2.133
[Issue Type] Improvement
Change-Id: Idc9ffa36d5ca01bdf59410be78dad8c57158e0d5