Sangchul Lee [Fri, 27 Aug 2021 08:40:02 +0000 (17:40 +0900)]
webrtc_source: Use fixed payload id for particular codecs
This patch enables normal operation with that codecs between
web API and gstreamer webrtc at last.
[Version] 0.2.88
[Issue Type] Improvement
Change-Id: Ib4094ac5814d59632032f649a69e0b45bc5b4b1d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 27 Aug 2021 06:23:51 +0000 (15:23 +0900)]
webrtc_private: Apply FEC in case of answerer without setting any media source
If a webrtc handle that does not have any media source, so-called recvonly,
tries to create an answer SDP with the received offer SDP, FEC also should be
applied according to ini configuration if the offerer wants to use the FEC.
[Version] 0.2.87
[Issue Type] Improvement
Change-Id: I182bbc1a982ff244e0656d78dbc9cc833fd0b4f0
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 27 Aug 2021 03:51:09 +0000 (12:51 +0900)]
webrtc_source: Add support for G.711 one of mandatory audio codecs
PCMU and PCMA which support 64kbps with 8kHz sample rates are added.
Please refer to https://datatracker.ietf.org/doc/html/rfc7874 for
more details.
[Version] 0.2.86
[Issue Type] New feature
Change-Id: I56b2972817a652761cc8f0249d4ecf29389ec0df
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 26 Aug 2021 11:10:48 +0000 (20:10 +0900)]
webrtc_source: Remove S24LE audio raw format
The gstreamer encoders for PCMU/PCMA/OPUS, the formats supported by
the WebRTC spec, do not support 24bit PCM format as its input.
[Version] 0.2.85
[Issue Type] Clean-up
Change-Id: I374876c7806b01ba0902cb72a554a676863c550f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 26 Aug 2021 07:16:00 +0000 (16:16 +0900)]
webrtc_source/display/tbm: Change some logs to verbose level
[Version] 0.2.84
[Issue Type] Log
Change-Id: I815d44f8332e839604f7660c678c26cca4a6347e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 26 Aug 2021 05:57:06 +0000 (14:57 +0900)]
webrtc_ini: Add new item for verbose logging
[general]
verbose log = yes or no
LOG_VERBOSE() macro is also added.
[Version] 0.2.83
[Issue Type] New feature
Change-Id: I84d74b99496e1062445ef49423b6b9a643534286
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 25 Aug 2021 08:58:02 +0000 (17:58 +0900)]
webrtc_private: Increase timeout value when getting an offer/answer message
It is changed from 10 sec. to 30 sec.
Also, null checking code is added for gst_promise_get_reply().
[Version] 0.2.82
[Issue Type] Improvement
Change-Id: Ic83418d46a33eb0a0c98628f4fbc4631862cc21d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 24 Aug 2021 08:14:16 +0000 (17:14 +0900)]
webrtc_private: Remove workaround codes regarding negotiation needed callback
[Version] 0.2.81
[Issue Type] Improvement
Change-Id: I9e1686e858b3c7ae25976af2ed5ff9fde482d040
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 17 Aug 2021 11:25:54 +0000 (20:25 +0900)]
Add support for statistic functionality
[Version] 0.2.80
[Issue Type] New feature
Change-Id: I284137c02bc53c24e731c90265e6df3e420bbdef
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 23 Aug 2021 03:09:13 +0000 (12:09 +0900)]
webrtc_display: Check return value of gst_video_info_from_caps()
[Version] 0.2.79
[Issue Type] Coverity (CHECKED_RETURN)
Change-Id: I6c7ff1dfc4c2352122c57c5a53fa160928033cec
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 17 Aug 2021 03:53:04 +0000 (12:53 +0900)]
webrtc_private: Remove unuseful generating dot files
These are not related to the pipeline changes.
Plus some invoked in the main thread are cause of deadlock
when the 'generate dot' is enabled in ini file.
[Version] 0.2.78
[Issue Type] Cleanup & Bug fix
Change-Id: I61dbf149b26999672f748ae4867f46476fd9f929
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Wed, 11 Aug 2021 09:00:23 +0000 (18:00 +0900)]
webrtc_source: enable loopback for filesrc
When the pipeline status becomes NULL, the decodebin destroys all of the added pads and associated probes.
so, the probe information related to loopback should be reinitialized when the pad in the decodebin is removed.
[Version] 0.2.77
[Issue Type] Improvement
Change-Id: I2e07ac17736304bf32b1d31bfa52d99e75613fdb
backto.kim [Mon, 9 Aug 2021 03:25:31 +0000 (12:25 +0900)]
webrtc_source: set proper media types for filesrc
[Version] 0.2.76
[Issue Type] Improvement
Change-Id: I3bf6b2ac6c1d8e641e2628f6a4e31eb28d339cea
Sangchul Lee [Thu, 12 Aug 2021 09:19:00 +0000 (18:19 +0900)]
webrtc/webrtc_websocket: Apply g_mutex_locker_new()
Unused macros are removed
[Version] 0.2.75
[Issue Type] Refactoring
Change-Id: Icba100fdca5d5f8a92bd25bd7cfab4a8eb31fc88
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 12 Aug 2021 03:38:35 +0000 (12:38 +0900)]
webrtc_test: Check null before freeing device list
[Version] 0.2.74
[Issue Type] Bug fix
Change-Id: If1686021704fa72df73834f3269139e07ef0be38
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 12 Aug 2021 03:10:40 +0000 (12:10 +0900)]
webrtc_test: Realign menu
[Version] 0.2.73
[Issue Type] Cleanup
Change-Id: If3cb054baf5de692a764b32455649fd22aad975c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 5 Aug 2021 06:29:10 +0000 (15:29 +0900)]
webrtc_internal/private: Apply g_mutex_locker_new()
[Version] 0.2.72
[Issue Type] Refactoring
Change-Id: I2a564902a6ebba778e77162d29d39b86c628c533
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 5 Aug 2021 06:19:22 +0000 (15:19 +0900)]
webrtc_display/tbm: Apply g_mutex_locker_new()
[Version] 0.2.71
[Issue Type] Refactoring
Change-Id: If8ba39506177180e91cc66558ae9094f62e9be89
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 23 Jul 2021 07:01:43 +0000 (16:01 +0900)]
Add API to set/get display visibleness
Functions are added as below.
- webrtc_set_display_visible()
- webrtc_get_display_visible()
[Version] 0.2.70
[Issue Type] API
Change-Id: Ia50a7c3f12b14a329e52b94ba182ee90f86a9a25
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 19 Jul 2021 11:34:57 +0000 (20:34 +0900)]
Add API to set/get display mode
Enums are added as below.
- WEBRTC_DISPLAY_MODE_LETTER_BOX
- WEBRTC_DISPLAY_MODE_ORIGIN_SIZE
- WEBRTC_DISPLAY_MODE_FULL
Functions are added as below.
- webrtc_set_display_mode()
- webrtc_get_display_mode()
[Version] 0.2.69
[Issue Type] API
Change-Id: Ia691e6091fb2059c069c2c7202efcd4fc61cdf85
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 10 Aug 2021 02:20:17 +0000 (11:20 +0900)]
Change the thread of negotiation callbacks
Callbacks listed below are now changed to be invoked in the main thread
- webrtc_peer_connection_state_change_cb()
- webrtc_signaling_state_change_cb()
- webrtc_ice_gathering_state_change_cb()
- webrtc_ice_connection_state_change_cb()
[Version] 0.2.68
[Issue Type] Improvement
Change-Id: Ib9f82eee6e51363338766af47d03533dece5b1d9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 9 Aug 2021 11:26:26 +0000 (20:26 +0900)]
webrtc_private: Add functions for appending negotiation callbacks to the main thread
Use g_idle_add_full() instead of g_idle_add().
[Version] 0.2.67
[Issue Type] New feature
Change-Id: I17eb8f5ac14f046c3b3a9700c3a8f507644828ca
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 21 Jun 2021 11:47:25 +0000 (20:47 +0900)]
webrtc_test: Add menu to join a room
New menu is added as below.
rj. Request join room
In case of this test, all of the webrtc configuration including
sources and negotiation will be make up automatically.
Test sequence example
1. 'ss' -> set signaling server
2. 'cs' -> connect to the server
3. 'rj' -> 1 or 2 (choose source type) -> type room name
(It is required to do the same for other handles)
[Version] 0.2.66
[Issue Type] New feature
Change-Id: I62841efc8ad477bdc6968e258bed3dae1ee90400
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 30 Jul 2021 09:33:57 +0000 (18:33 +0900)]
webrtc_ini: Move FEC setting from [general] to [media source] category
Now the FEC setting values can be set per media source rather than
system general.
For example, if camera source uses MJPEG encoded codec directly, it is
shown that the performance is better without FEC enabled. This patch
makes the FEC disable only in case of this media source type.
[Version] 0.2.65
[Issue Type] Improvement
Change-Id: Ied2e48cc27a5b050a367abd5e17dbb1370dace90
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 30 Jul 2021 08:53:46 +0000 (17:53 +0900)]
webrtc_internal: Add webrtc_media_source_set_video_loopback_to_ecore_wl()
Some parameter types are corrected.
[Version] 0.2.64
[Issue Type] Internal API
Change-Id: I6eb146ee7914150cfdcb4cdf1c32660b1a1e1123
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Fri, 30 Jul 2021 01:51:20 +0000 (10:51 +0900)]
webrtc_source: Allow location to be set multiple times for a single file source
[Version] 0.2.63
[Issue Type] Improvement
Change-Id: I7bc728f957f368ff2db689535a88cc2318a6a526
Sangchul Lee [Wed, 23 Jun 2021 08:29:45 +0000 (17:29 +0900)]
Revise header
Remove '\n' command from related sentence.
Add more references.
Add more @remarks and @post.
Some sentences are rephrased.
[Version] 0.2.62
[Issue Type] Doxygen
Change-Id: I4b90e3baab26ab21cd047d874e87b1c0ac152274
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 29 Jul 2021 07:38:58 +0000 (16:38 +0900)]
Fix error of 64bit compile
Various fixes due to the gsize.
: print format is corrected.
: webrtc_get_data() is revised to have unsigned long* type for
it's the second out-param.
Missing '%' command is added to have valid usr/lib[64] dir in
the spec file.
Fix build error in case of using define for tv profile.
[Version] 0.2.61
[Issue Type] Build and API
Change-Id: Ide1b0241b1b8f20e26a422d2d9a1ab4be69f87f7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 26 Jul 2021 10:07:17 +0000 (19:07 +0900)]
webrtc_private: Apply FEC to a tranceiver for audio
We don't need to discriminate against audio for FEC.
Some logs are revised.
Multiple lines are used for g_object_set() to set several properties.
[Version] 0.2.60
[Issue Type] Improvement
Change-Id: I24607938b847b3107c11c38a13c7cfbd413c2563
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 26 Jul 2021 05:55:07 +0000 (14:55 +0900)]
webrtc_test: Change src_pipeline state to NULL before calling g_clear_object()
[Version] 0.2.59
[Issue Type] Bug fix
Change-Id: I43557965d3e64b7ad7c248a909b2f2d9d7c97e06
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 26 Jul 2021 12:59:57 +0000 (21:59 +0900)]
webrtc_source: Remove restriction which only allowed H264 format for encoded media packet
Supported formats are added to @remarks of webrtc_media_packet_source_set_format().
[Version] 0.2.58
[Issue Type] Improvement
Change-Id: Iae3f4c65c86264f579aabcf0e248de03b13a4c7d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 26 Jul 2021 05:21:02 +0000 (14:21 +0900)]
webrtc_source: Check media format in every case when pushing media packet
[Version] 0.2.57
[Issue Type] Improvement
Change-Id: I26f04321a66848d606586dc155c95920914035c4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 23 Jul 2021 05:55:12 +0000 (14:55 +0900)]
Remove duplicated defines
[Version] 0.2.56
[Issue Type] Clean-up
Change-Id: I237113cb2a427ba26e4c8f1624079c1d627276cb
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Seungbae Shin [Mon, 26 Jul 2021 09:13:33 +0000 (18:13 +0900)]
webrtc_signaling_server: use g_autoptr with g_mutex_locker_new
This makes it convenient to manipulate concurrent mechanisms such as mutex,
including unintentional infinite possessing of the resource.
https://developer.gnome.org/glib/stable/glib-Threads.html#g-mutex-locker-new
https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#g-autoptr
[Version] 0.2.55
[Issue Type] Refactoring
Change-Id: If724556eec0fd61a22026f819f72e95543c7ca44
Sangchul Lee [Fri, 23 Jul 2021 04:19:49 +0000 (13:19 +0900)]
Add out-parameter 'track id' to loopback setting functions
This newly added parameter will be utilized by other functions that
are for setting properties/operations per the track id.
[Version] 0.2.54
[Issue Type] API
Change-Id: Ib3d8c1fea15d7a762fba0320ca8b6b875118f66a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 23 Jul 2021 02:42:24 +0000 (11:42 +0900)]
Correct typos
[Version] 0.2.53
[Issue Type] Doxygen
Change-Id: I077edfc7996da516146cea66845402cef32ef420
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 21 Jul 2021 11:53:59 +0000 (20:53 +0900)]
webrtc_display: Add _set_display_type_and_surface() and use it
display 'object' is renamed to 'surface'.
Some codes regarding locking/unlocking display mutex are revised.
Level of some logs are changed.
[Version] 0.2.52
[Issue Type] Improvement
Change-Id: Ib2e70ea2ac6506cb91edf4a3f036a22e6b3cf17f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 19 Jul 2021 11:54:21 +0000 (20:54 +0900)]
webrtc_sink: Add __find_sink_slot_by_id() and use it
[Version] 0.2.51
[Issue Type] Refactoring
Change-Id: I6d47ae258ca28cb8d3137a2040120d758b000552
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Mon, 19 Jul 2021 09:03:44 +0000 (18:03 +0900)]
Add a description of file source mute
[Version] 0.2.50
[Issue Type] Doxygen
Change-Id: I35b0774364eb460c7b207b31f7b96bfe820d0dc7
backto.kim [Thu, 15 Jul 2021 07:59:08 +0000 (16:59 +0900)]
Add API to set media path to the file src
webrtc_file_source_set_path() is added.
This is different from sending files over a data channel.
Audio/video streams that extracted through demuxing the media are treated as a media source.
[Version] 0.2.49
[Issue Type] API
Change-Id: If673fd26d355c0a73093fe9ed046e1bd11300f4d
Sangchul Lee [Fri, 16 Jul 2021 02:32:56 +0000 (11:32 +0900)]
webrtc_source: Remove meaningless property setting of media packet source
Setting 'do-timestamp' to 'true' to appsrc element is removed in case of
the media packet source. Actually, it does not have any effect internally.
Because the media packet usually have its own timestamp set by user.
Multiple lines are used for g_object_set() in case of setting multiple
properties.
[Version] 0.2.48
[Issue Type] Improvement
Change-Id: I9718af8f79bf818cbfd7c7d14dfc73a36d81280f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 13 Jul 2021 07:55:27 +0000 (16:55 +0900)]
Add API to set/get ICE transport policy
Enums are added as below.
- WEBRTC_ICE_TRANSPORT_POLICY_ALL
- WEBRTC_ICE_TRANSPORT_POLICY_RELAY
Functions are added as below
- webrtc_set_ice_transport_policy()
- webrtc_get_ice_transport_policy()
[Version] 0.2.47
[Issue Type] API
Change-Id: I4d882d48038dc77fb2be848ae45d228de7a907c8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 14 Jul 2021 09:57:12 +0000 (18:57 +0900)]
webrtc_sink: Fix rendering issue getting late in case of the EVAS display
'qos' and 'sync' properties are enabled to the element resposible for
video frame handoff.
[Version] 0.2.46
[Issue Type] Improvement
Change-Id: I35fbc990637d6893d1d56b2dfe08a88b90ca3b04
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 12 Jul 2021 04:40:46 +0000 (13:40 +0900)]
Add API for audio source loopback rendering
webrtc_media_source_set_audio_loopback() is added.
This will be used to render the audio source with the particular
sound stream information before sending the data to the remote peer.
[Version] 0.2.45
[Issue Type] API
Change-Id: Iab4815b3b41da3cc529fa4fe29cdfca7537bacaa
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 13 Jul 2021 09:55:34 +0000 (18:55 +0900)]
webrtc_sink: Add null check code
[Version] 0.2.44
[Issue Type] Improvement
Change-Id: Id6d50f255c07becae55f28a89f135cefb16c5bb4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 13 Jul 2021 08:54:21 +0000 (17:54 +0900)]
Move missing webrtc_display_type_e enumeration to CAPI_MEDIA_WEBRTC_MEDIA_RENDER_MODULE group
[Version] 0.2.43
[Issue Type] Doxygen
Change-Id: I459ba1f8db83ee2a1d9206216af1c6e95640f4a8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Tue, 13 Jul 2021 08:35:37 +0000 (17:35 +0900)]
The file source can have more than one src pad for the same source id
[Version] 0.2.42
[Issue Type] Improvement
Change-Id: I47f00b5500496ee3dffd8afb3265d351532bb293
backto.kim [Mon, 12 Jul 2021 09:22:17 +0000 (18:22 +0900)]
webrtc_private: Checking caps before creating payload elements
"media" in caps must be "audio" or "video" for normal communication.
However, some payload's media is "applications".
So let these elements skip when searching.
[Version] 0.2.41
[Issue Type] Improvement
Change-Id: I3cdbc33b61c3d337aa38115a04c7e7a93f789454
Sangchul Lee [Wed, 7 Jul 2021 10:51:19 +0000 (19:51 +0900)]
Add API for video source loopback rendering
webrtc_media_source_set_video_loopback() is added.
This will be used to render the video source to the particular
display surface before sending the data to the remote peer.
[Version] 0.2.40
[Issue Type] API
Change-Id: Ia6c63fd5da758c35dd337c2ab0a12347a06cd0fc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 23 Jun 2021 08:29:45 +0000 (17:29 +0900)]
Revise doxygen
Remarks regarding callback thread are added.
Fix invalid parameter direction.
Add missing release handle information.
Put a space after using '\n' command.
[Version] 0.2.39
[Issue Type] Doxygen
Change-Id: I0dc23a36b4cab50cc74809df20168f5f11e94f12
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 12 Jul 2021 07:14:04 +0000 (16:14 +0900)]
webrtc_source: Use gst_audio_info_to_caps()
It also set the layout to 'interleaved' internally.
[Version] 0.2.38
[Issue Type] Refactoring
Change-Id: If10b12445a8e252a7af8940625ab222a9719c8bc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 12 Jul 2021 00:21:08 +0000 (09:21 +0900)]
webrtc_source: Add missing error conditions
_set[get]_video_resolution() are revised to return an error
in case of the file source type.
[Version] 0.2.37
[Issue Type] Bug fix
Change-Id: Ib12ead787d395199d999f9951072af6bf9306221
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 8 Jul 2021 09:48:15 +0000 (18:48 +0900)]
webrtc_source: Add callback parmeter to __add_probe_to_pad()
Ordering of parameters are changed.
__remove_probe_from_pad() is also added.
[Version] 0.2.36
[Issue Type] Refactoring
Change-Id: Ief06006b2ad8cbbf0a9fef958da3fb5706734844
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 7 Jul 2021 11:03:01 +0000 (20:03 +0900)]
webrtc_source: Rename variable
This variable is used only for camerasrc mute functionality.
[Version] 0.2.35
[Issue Type] Rename
Change-Id: I7fdf3399df13f04a97d4b96c3c1996d3a65c7140
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 7 Jul 2021 07:12:49 +0000 (16:12 +0900)]
webrtc_test: Apply external audio input device if available
It is only for the test case of WEBRTC_MEDIA_SOURCE_TYPE_MIC.
[Version] 0.2.34
[Issue Type] Improvement
Change-Id: Ib4f989f78840be18b5bec2c958d167fd3d9aee74
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 10 May 2021 01:01:40 +0000 (10:01 +0900)]
webrtc_test: Revise media packet source test
In case of the test using H264 format, infinite loop is applied to
the h264 source pipeline by using seek 0 and modifying pts/dts values
of the media packet. A bus watch message handler is also added to
detect EOS situation.
[Version] 0.2.33
[Issue Type] Improvement
Change-Id: I55d285905baf4de19803d5e569a401cb0512d9b2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 29 Jun 2021 07:58:22 +0000 (16:58 +0900)]
Add webrtc_doc.h file
[Version] 0.2.32
[Issue Type] Doxygen
Change-Id: I2aa0f8384f92ee2bdb366b817a10c9e1526ab2e1
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 2 Jul 2021 03:27:09 +0000 (12:27 +0900)]
Add new group - CAPI_MEDIA_WEBRTC_MEDIA_RENDER_MODULE
Functions below are included in this group.
- webrtc_set_sound_stream_info()
- webrtc_set_display()
- webrtc_set_encoded_audio_frame_cb()
- webrtc_unset_encoded_audio_frame_cb()
- webrtc_set_encoded_video_frame_cb()
- webrtc_unset_encoded_video_frame_cb()
[Version] 0.2.31
[Issue Type] Doxygen
Change-Id: I70900fa9ab4ded21f5283f611b8e4dddca6b9442
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 2 Jul 2021 01:30:25 +0000 (10:30 +0900)]
Add API to set sound stream info. to audio track received by the remote peer
webrtc_set_sound_stream_info() is added.
When calling this new API with the stream info handle, the audio policy
including routing and volume of the audio track is under control by the
handle.
[Version] 0.2.30
[Issue Type] API
Change-Id: I3ba47c6f84d00023ef2b0bf09511a6d019444e20
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 1 Jul 2021 12:04:51 +0000 (21:04 +0900)]
Add API to set sound stream info. to the MIC source
webrtc_mic_source_set_sound_stream_info() is added.
For example, audio device(e.g. USB) can be set by the stream info
handle of capi-media-sound-manager. By passing this handle to the
new function, the MIC source will be read data from the device.
[Version] 0.2.29
[Issue Type] API
Change-Id: I0027109ae5ee3b546e40aadef1740551ad6a2e40
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 25 Jun 2021 09:13:28 +0000 (18:13 +0900)]
webrtc_source: Improve to get caps for encoded format
A bug making invalid caps in __make_default_encoded_caps()
is fixed.
Tainted array index is also fixed in webrtc_test.
[Version] 0.2.28
[Issue Type] Bug fix
Change-Id: I49fd509fa04836199baa19b25b36f59e45040222
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 25 Jun 2021 10:48:05 +0000 (19:48 +0900)]
Change precondition of webrtc_media_packet_source_push_packet()
New preconditions are added before calling this function.
1. webrtc_media_packet_source_set_format() must be called.
2. webrtc_media_packet_source_buffer_state_changed_cb() must be set.
The previous state limitation is removed.
[Version] 0.2.27
[Issue Type] API
Change-Id: I63f69dad4341c3d3aeb19b68c0650c0be2672796
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 28 Jun 2021 07:12:25 +0000 (16:12 +0900)]
fixup! webrtc_private: Ensure the NEGOTIATING state to get ready for negotiation operation
Change-Id: I3d08d1f38c68ba4e9e801a43cc95418b22717dbb
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 25 Jun 2021 09:29:47 +0000 (18:29 +0900)]
fixup! webrtc_source: Revise assigning payload identifier
Change-Id: I8d4800349ae895c5acc1eeb308f7f165c5cbc672
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 25 Jun 2021 03:38:12 +0000 (12:38 +0900)]
webrtc_internal: Add support for internal source types
WEBRTC_MEDIA_SOURCE_TYPE_CUSTOM_AUDIO and WEBRTC_MEDIA_SOURCE_TYPE_CUSTOM_VIDEO
are added for internal use.
[Version] 0.2.26
[Issue Type] Internal API
Change-Id: I71257ba153aaf16f83a77e65214953803c1ba017
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 24 Jun 2021 04:58:02 +0000 (13:58 +0900)]
webrtc_source: Improve codes for getting payload identifier
Use bitwise operation instead of array traverse.
[Version] 0.2.25
[Issue Type] Refactoring
Change-Id: I0a9a513e9074d02c3a3c1e08b9a5c54a920a85d2
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 24 Jun 2021 03:05:09 +0000 (12:05 +0900)]
webrtc_sink: Add omitted type in __get_videosink_factory_name()
[Version] 0.2.24
[Issue Type] Bug fix
Change-Id: I24057f88b527f5af099a9328378c6232204944ea
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 23 Jun 2021 23:14:30 +0000 (08:14 +0900)]
webrtc_test: Apply RET_IF() macro for checking condition
_webrtc_destroy() releases more resources regarding its handle.
[Version] 0.2.23
[Issue Type] Improvement
Change-Id: Ica04303942f9294702134a62c8941b7135b3934f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 24 Jun 2021 00:29:26 +0000 (09:29 +0900)]
webrtc_source: Revise assigning payload identifier
One media source id can have two audio/video streams.
e.g.)file source
Assigning payload id logic is revised to get it per
each stream all over the webrtc handle.
[Version] 0.2.22
[Issue Type] Improvement
Change-Id: I47aa84e56f58fffc34e2d3735cad0eddc94a8439
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 23 Jun 2021 06:36:40 +0000 (15:36 +0900)]
webrtc_source: Remove setting of 'encoding-name' and 'clock-rate'
Normally, these values are fixed inside of a payloader element.
Hence, we don't need to set these values via a capsfilter for the payloader.
[Version] 0.2.21
[Issue Type] Improvement
Change-Id: I5d2c9d5f0462cd2000a616cc82971c36657e55b1
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 22 Jun 2021 09:25:29 +0000 (18:25 +0900)]
webrtc_test: Revise layout for rendering surfaces
It is limited to evas surface type.
[Version] 0.2.20
[Issue Type] Improvement
Change-Id: I5e8ce24ba096897dd144727614da8093c29eea8a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 22 Jun 2021 06:45:32 +0000 (15:45 +0900)]
Revise codes to comply with coding convention
Use tab for spacing.
Add or remove space.
Some set/unset callback functions are moved to it's getter API.
Revise doxygen.
[Version] 0.2.19
[Issue Type] Improvement
Change-Id: Ia9ffa82d93b91b77aa2dfd61e4466297d8da48ac
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 17 Jun 2021 02:52:25 +0000 (11:52 +0900)]
webrtc_ini: Add new category for resource acquisition
'resource acquisition' category is added.
'camera', 'video encoder', 'video decoder' and 'video overlay'
items are added for this category.
e.g.)
[resource acquisition]
camera = yes
video encoder = no
video decoder = no
video overlay = no
The previous 'video overlay resource required' item is migrated
to this new 'video overlay' item.
Now it is possible to determine whether these resources must be
acquired or not by the configuration file.
[Version] 0.2.18
[Issue Type] Improvement
Change-Id: I58ae4076643394562e7e24819421edf9ea650ec9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 9 Jun 2021 02:43:32 +0000 (11:43 +0900)]
webrtc_source: Add support for MJPEG encoded format
[Version] 0.2.17
[Issue Type] New feature
Change-Id: Ic75efda737780d29a327d03e6f60b9ddbb8673e8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 9 Jun 2021 02:32:30 +0000 (11:32 +0900)]
webrtc_source: Revise source pipeline to support to get data with encoded format directly
[Version] 0.2.16
[Issue Type] Improvement
Change-Id: Ib8c122a29e7b0f40e75c27a370308bd395a98b3e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 7 Jun 2021 11:58:45 +0000 (20:58 +0900)]
webrtc_ini: Add new item to check source element supports encoded format
If the encoded format is supported for a particular source,
'video encoded format support' item should be set to 'yes'
in ini configuration file. Then, it will get buffers from the
source with the encoded format based on the value of 'video codec'
item in this file.
e.g.)
[source camera]
video encoded format support = yes
[Version] 0.2.15
[Issue Type] Improvement
Change-Id: I0321b442a9239269a8c6f83f26ec78f34926f7bd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Jun 2021 23:58:54 +0000 (08:58 +0900)]
Rename functions belong to CAPI_MEDIA_WEBRTC_MEDIA_SOURCE_MODULE to have consistency
[Version] 0.2.14
[Issue Type] API
Change-Id: Ic3b9c708a6a41420dee146f005cb457e697cfa90
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Jun 2021 02:17:44 +0000 (11:17 +0900)]
Add new group - CAPI_MEDIA_WEBRTC_MEDIA_SOURCE_MODULE
[Version] 0.2.13
[Issue Type] Doxygen
Change-Id: I8488b4f2cfa0a8ce18fcd668317fd57ae78843a7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Jun 2021 01:31:17 +0000 (10:31 +0900)]
Change ordering of webrtc_media_source_type_e enum
WEBRTC_MEDIA_SOURCE_TYPE_FILE is also added to support for media files.
The implementation will be updated in the near future.
typedef enum {
WEBRTC_MEDIA_SOURCE_TYPE_AUDIOTEST, /**< Audio test */
WEBRTC_MEDIA_SOURCE_TYPE_VIDEOTEST, /**< Video test */
WEBRTC_MEDIA_SOURCE_TYPE_MIC, /**< Audio from microphone */
WEBRTC_MEDIA_SOURCE_TYPE_CAMERA, /**< Camera preview */
WEBRTC_MEDIA_SOURCE_TYPE_SCREEN, /**< Screen capture */
WEBRTC_MEDIA_SOURCE_TYPE_FILE, /**< Media file */
WEBRTC_MEDIA_SOURCE_TYPE_MEDIA_PACKET /**< Media packet */
} webrtc_media_source_type_e;
Unnecessary structure is also removed.
[Version] 0.2.12
[Issue Type] API
Change-Id: I2d939c0aee848a44b3ea68445d31bc1696b08217
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Jun 2021 07:55:04 +0000 (16:55 +0900)]
fixup! Remove unnecessary build definition
Change-Id: I6dc1cd5ac1e99d02677a4549561204a4f325a419
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 16 Jun 2021 01:10:16 +0000 (10:10 +0900)]
webrtc_ini: Add new item to get audio/video sink element
Sink pipeline applies this change.
e.g.)
[rendering sink]
audio sink element = pulsesrc
video sink element = tizenwlsink
[Version] 0.2.11
[Issue Type] Improvement
Change-Id: I58d549c56cb7a9323ff77aa732966a1a9e815e04
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 10 Jun 2021 05:17:36 +0000 (14:17 +0900)]
webrtc_ini: Add new item to check for requirement of video overlay resource
If the video sink element for video overlay requires a resource
acquisition, 'video overlay resource required' item should be set
to 'yes' in the configuration file.
e.g.)
[rendering sink]
video overlay resource required = yes
Some logs in __dump_ini() is revised.
Coding style is a little changed in _acquire_resource_if_needed().
It is changed that creating video sink element before acquiring a resource.
[Version] 0.2.10
[Issue Type] Improvement
Change-Id: I5ae7948a155c1c1b02f129610ee00a491cab0c96
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 10 Jun 2021 05:35:16 +0000 (14:35 +0900)]
Remove unnecessary build definition
These are the resource manager dependency codes for public tizen platform.
It's not necessary to make a particular definition as the previous one.
For tizen tv binary building, since the resource management is not used
rather, '#ifndef TIZEN_TV' is now used.
[Version] 0.2.9
[Issue Type] Build definition
Change-Id: Ibc67d3f346c7016fddc5344b0626298e02222612
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 8 Jun 2021 08:32:49 +0000 (17:32 +0900)]
webrtc_source: Use GList to carry elements via parameter
[Version] 0.2.8
[Issue Type] Refactoring
Change-Id: Id19b2b6052799491b4c7558ea18170e203d94746
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 9 Jun 2021 00:28:02 +0000 (09:28 +0900)]
webrtc_private: Ensure the NEGOTIATING state to get ready for negotiation operation
Invoking state callback for NEGOTIATING state is moved to the inside of
negotiation needed callback. This ensures to get the SSRC parameter
successfully while creating offer SDP.
[Version] 0.2.7
[Issue Type] Improvement
Change-Id: I4cfe0f5214b12925170ba2cd6fbfa4c52a66daa5
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 8 Jun 2021 09:04:49 +0000 (18:04 +0900)]
webrtc_source: Merge __build_audiosrc() with __build_audiotestsrc()
[Version] 0.2.6
[Issue Type] Refactoring
Change-Id: Ice41abc6e0b92de41bacc95fac7dc2dd620df018
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 10 May 2021 10:32:07 +0000 (19:32 +0900)]
Add support for the dynamic resolution change
webrtc_set_video_source_resolution() API is revised to support
for this feature during the streaming.
- state limitation inside of this function is released.
- doxygen is revised according to this change.
Note that if the source element does not support the DRC, this API
will return WEBRTC_ERROR_INVALID_OPERATION.
If the DRC is supported for a particular source, 'video drc support'
field should be set to 'yes' in ini configuration file.
e.g.)
[source videotest]
video drc support = yes
[Version] 0.2.5
[Issue Type] New feature
Change-Id: I145fe0cb139e06d75611eadb10d74b9ba0858198
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 3 Jun 2021 10:36:40 +0000 (19:36 +0900)]
Add new group - CAPI_MEDIA_WEBRTC_DATA_CHANNEL_MODULE
Some are fixed for coding convention.
[Version] 0.2.4
[Issue Type] Doxygen
Change-Id: I3cab0a43aa6c6afae726a592ee5992f186494004
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 3 Jun 2021 08:51:45 +0000 (17:51 +0900)]
Change path of configuration file
It is changed
- from /etc/multimedia/mmfw_webrtc.ini
- to /hal/etc/multimedia/mmfw_webrtc.ini
[Version] 0.2.3
[Issue Type] Update
Change-Id: I1b8e1356a88be40377d4234e44007acb9624fcf6
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 3 Jun 2021 08:50:28 +0000 (17:50 +0900)]
webrtc_private: Set latency to webrtcbin directly
The webrtcbin based on 1.18 version has latency property that
set the latency property of rtpbin internally.
[Version] 0.2.2
[Issue Type] Update
Change-Id: I18716dacc202ad195b844365e9e8c21300d1d121
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 3 Jun 2021 08:49:49 +0000 (17:49 +0900)]
webrtc_private: Set state to PLAYING when peer connection state is changed to CONNECTED
This state change is affected by webrtcbin changes based on 1.18 version.
[Version] 0.2.1
[Issue Type] Update
Change-Id: I4b590ccb43e468dc5add1b1282a97ea17083a514
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
backto.kim [Thu, 3 Jun 2021 02:13:52 +0000 (11:13 +0900)]
Update spec file
[Version] 0.1.178
[Issue Type] Improvement
Change-Id: I4e5ccf682e8fccf83ae4132d6f9cdf4b7564999a
backto.kim [Thu, 22 Apr 2021 02:56:25 +0000 (11:56 +0900)]
Add new API set for media source mute
black frame or silent sound will be transmitted to the remote peer.
Functions are added as below.
-webrtc_set_media_source_mute()
-webrtc_get_media_source_muted()
[Version] 0.1.177
[Issue Type] API
Change-Id: I4134872691f5f4a46cbd0b510a15a4fd521fb8e7
YoungHun Kim [Fri, 28 May 2021 02:37:22 +0000 (11:37 +0900)]
Fix build error at emul
[Version] 0.1.176
[Issue Type] Improvement
Change-Id: I516cbe551b8af0a6c1777596b2594c62770d11e6
Sangchul Lee [Fri, 28 May 2021 01:04:35 +0000 (10:04 +0900)]
webrtc_source: Set zerocopy_enabled variable outside of __create_rest_of_elements()
Warning log is added.
Invalid branch is fixed. (if -> else if)
[Version] 0.1.175
[Issue Type] Refactoring
Change-Id: Ifa4dd69b921ac39f572d34873505626991db6e35
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 27 May 2021 10:22:51 +0000 (19:22 +0900)]
webrtc_source: Check if the extra field of media packet is gstreamer buffer
It is added to avoid failure on 'push-buffer' signal function when the extra
field of the media packet is not a gstreamer buffer.
[Version] 0.1.174
[Issue Type] Improvement
Change-Id: I30643df4cc86bedf0ff116c58eff1893659d947c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 27 May 2021 06:43:48 +0000 (15:43 +0900)]
webrtc: Add error condition in webrtc_set_display()
The track added callback will be invoked even if the encoded video frame callback
has been set. Within this callback, this patch let webrtc_set_display() return
the invalid operation error by looking the encoded video frame callback is set,
not by _is_owner_of_track_build_context() the previous one.
Doxygen is also updated.
[Version] 0.1.173
[Issue Type] Improvement
Change-Id: If889e51602de878cf369aaadbda1d99ca63b4fe9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 27 May 2021 06:01:34 +0000 (15:01 +0900)]
webrtc_test: Limit expected size of receiving data via data channel
[Version] 0.1.172
[Issue Type] Test application
Change-Id: I18a0ec0bc0f9925ce687859e8d3c771226d4d16c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 4 May 2021 05:38:58 +0000 (14:38 +0900)]
Add API set for media source pause
These correspond to the 'replaceTrack()' method with 'null' or
'track' parameter of the RTCRtpSender.
Functions are added as below.
- webrtc_set_media_source_pause()
- webrtc_get_media_source_pause()
Test cases are also added in webrtc_test.
p. Pause/play media source
o. Get the pause of media source
[Version] 0.1.171
[Issue Type] API
Change-Id: I7a67eb4dea0c386876b901ece5aa5660968da776
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 11 May 2021 08:26:12 +0000 (17:26 +0900)]
webrtc: Add invalid operation error return value to webrtc_destroy()
Gstreamer pipeline state change error or resource release error can
occur during destroying webrtc handle. In this case, it will return
WEBRTC_ERROR_INVALID_OPERATION error value.
[Version] 0.1.170
[Issue Type] Improvement
Change-Id: Ia17540054fbba9205820ac533fbbfb936d84f5aa
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>