Sangchul Lee [Mon, 29 Mar 2021 11:32:03 +0000 (20:32 +0900)]
media_streamer_test: Free the data field of packet after receiving the data by pull API
It is fixed to free the text data after being used.
"__" prefix are added to callback function names regarding
custom nodes.
[Version] 0.1.137
[Issue type] Test application
Change-Id: I8f975a96447058ea53ce9001f3e55e8f642d5564
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 29 Mar 2021 11:13:19 +0000 (20:13 +0900)]
media_streamer_node: Return missing GstFlowReturn value at the end of new-sample signal callback
Log are added and function name is renamed.
[Version] 0.1.136
[Issue type] Bug fix
Change-Id: Ifccbc0a7b35b928100ff75966214bc6cec257223
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 26 Mar 2021 01:28:13 +0000 (10:28 +0900)]
media_streamer_test: Fix bug related to custom nodes test
Creating nodes for the test was missing. Now it is added.
_create_app_test() is renamed to _create_custom_nodes().
[Version] 0.1.135
[Issue type] Test application
Change-Id: Iee9db7ac32859c3a1b789f18750d967cf7016ebb
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 26 Mar 2021 00:50:21 +0000 (09:50 +0900)]
media_streamer_test: Remove unsupported menu
Remove 'Appsrc -> Appsink' case in autoplug playing scenario.
[Version] 0.1.134
[Issue type] Test application
Change-Id: Ic5d58c51353d71eb66364eaf5638787271b26f40
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 23 Feb 2021 23:48:05 +0000 (08:48 +0900)]
media_streamer_node: Release requested pad when failure occurs
[Issue type] Improvement
[Version] 0.1.133
Change-Id: Ib68898d542093e6ad27aac079ee4a46a3c30d441
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 23 Feb 2021 10:24:29 +0000 (19:24 +0900)]
media_streamer_util: Use g_new0 instead of g_malloc0
To resolve missing casting, it is changed.
[Issue type] Improvement
[Version] 0.1.132
Change-Id: Ia9336c3391e733613f3743dd7eec2baf1a07a4c8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 9 Feb 2021 05:36:37 +0000 (14:36 +0900)]
media_streamer_node: Use libsmack library to get the smack label
[Issue type] Improvement
[Version] 0.1.131
Change-Id: I9eed33f888817a52a6b83acdff51574754dceac7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Wed, 9 Dec 2020 07:34:29 +0000 (16:34 +0900)]
Add new internal APIs to media_streamer_internal.h
- Add media_streamer_node_pad_probe_cb
Called when data flows in the pad of media streamer node.
This callback is used in pad of node by media_streamer_node_set_pad_probe_cb().
The GstBuffer pointer flowing through the pad is passed as a void pointer and
it is only readable.
- Add media_streamer_node_set_pad_probe_cb
Sets a callback function to be invoked when data flows to a pad of node specified by pad_name.
The callback can be registered with all pads in node using pad_name. However, only one per pad is possible.
- Add media_streamer_node_unset_pad_probe_cb
Unsets the pad probe callback function.
Unsets a callback function of a pad of @a node specified by pad name.
- Add test code
[Issue type] New feature
[Version] 0.1.130
Change-Id: I4ec3e91588edfe6185537530169ae9f7a4986dcc
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Wed, 4 Nov 2020 08:38:09 +0000 (17:38 +0900)]
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
- Add parsing ini value(wait for keyframe)
[Issue type] Improvement
[Version] 0.1.129
Change-Id: Ief9a0331b3bbbd12d3b2c697539fcc25831ebeb2
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Tue, 27 Oct 2020 07:12:16 +0000 (16:12 +0900)]
Use g_hash_table_contains() in case of just checking existance
[Issue Type] Improvement
[Version] 0.1.128
Change-Id: I14fd1edccd421ae0b969e895dff24de8e4b7dca8
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 19 Oct 2020 07:44:53 +0000 (16:44 +0900)]
Check if adative sink exists before calling ms_http_server_stop/destroy()
Meaningless "server is NULL" error log was printed in spite of
a pipeline without adaptive sink.
[Issue Type] Improvement
[Version] 0.1.127
Change-Id: I36268f0e58f4ccbaf27797bd34495ad1bb15235e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 19 Oct 2020 06:38:25 +0000 (15:38 +0900)]
Revise critical section regarding state/pend_state
Add codes to lock/unlock mutex during checking state/pend_state
in __ms_bus_cb() and ms_webrtcbin_notify_ice_connection_state_cb().
ms_trigger_state_cb() is added to only invoke the user callback
without locking/unlocking the mutex.
This patch is to fix the bug reported by
- https://github.sec.samsung.net/tizen/mediastreamer/issues/20
[Issue Type] Bug fix
[Version] 0.1.126
Change-Id: Idb5b66ec47b0491d5dc5e9825158d46ba885249f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 8 Oct 2020 01:16:30 +0000 (10:16 +0900)]
Improvement in case of no preroll with READY state
Set PLAYING state for a short time to fix an issue not getting
the SSRC information properly in case of ANSWER mode with the max
bundle policy. Without the first input buffer, the SSRC can not be
obtained and mlineindex can be wrong in webrtcbin.
[Issue type] Improvement
[Version] 0.1.125
Change-Id: I40c7761bea705b91e2b5231c64ac6460ec12edb4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Wed, 14 Oct 2020 08:10:32 +0000 (17:10 +0900)]
Fix the use of invalid function to set the video frame rate
- To set the video frame rate, use media_format_set_video_frame_rate()
[Issue Type] Bug fix
[Version] 0.1.124
Change-Id: I2c4b19aa825104d3e152a03107e2207661514583
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Tue, 13 Oct 2020 02:48:26 +0000 (11:48 +0900)]
Add setting the bitrate to video encoder
- set bitrate by media_format_set_video_avg_bps()
- get bitrate by avg_bps of media_format_get_video_info()
- Add creating h263 format to test app.
[Issue Type] Improvement
[Version] 0.1.123
Change-Id: Idff91a1a914b362b0379392cf49d7ba4c957cffa
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Thu, 24 Sep 2020 08:10:41 +0000 (17:10 +0900)]
Fixed a bug about setting the video frame rate
- Invalid value was being set.
- To get a valid video frame rate, use media_format_get_video_frame_rate()
[Issue Type] Bug fix
[Version] 0.1.122
Change-Id: I25be4ac4996ed33b897d6e5177f695bf9a257369
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Tue, 22 Sep 2020 05:38:30 +0000 (14:38 +0900)]
Fix the use of invalid pad name and print log as error on link failure
- Change dlog level for link failure
[Issue Type] Bug fix
[Version] 0.1.121
Change-Id: I3fd758208f8dbfd56a3722dd30e2ad1d1b53793a
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Wed, 16 Sep 2020 08:25:05 +0000 (17:25 +0900)]
Remove set property of S/W H264 encoder and fix a bug in the condition of the if statement.
- There is not S/W H264 encoder in libav.
- The condition of if statement is a bug, it can never be true.
[Issue Type] Bug fix
[Version] 0.1.120
Change-Id: I92872e249f827ea80b251438f0db49effb0eb6ca
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil Park [Tue, 15 Sep 2020 08:14:26 +0000 (08:14 +0000)]
Merge "Fix memory leak" into tizen
Sangchul Lee [Tue, 15 Sep 2020 07:25:50 +0000 (16:25 +0900)]
Fix memory leak
[Version] 0.1.119
[Issue Type] Coverity - RESOURCE_LEAK
Change-Id: I04c0ed1790b902d3aec90f87666e8615379b1567
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Mon, 14 Sep 2020 03:09:25 +0000 (12:09 +0900)]
[ACR-1598] Add new APIs for set param maximum lateness and RTP latency
- MEDIA_STREAMER_PARAM_SINK_MAX_LATENESS
- Video frame drop occurs when the PTS(presentation time stamp) of segment received as RTP streaming
exceeds the boundary of the base clock.
- If the frame is later than max-lateness, the sink will drop the buffer without calling the render method.
- MEDIA_STREAMER_RARAM_RTP_LATENCY
- Default amount of ms to buffer in the jitterbuffer of RTPbin
- Minor change
1) Add audio clock rate for OPUS
2) Change Default Video RTP format from VP8 to H264
[Version] 0.1.119
[Issue Type] New features
Change-Id: Iddfd098a897d1ff5bd3db291b4046d558a0d159a
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Mon, 7 Sep 2020 05:36:26 +0000 (14:36 +0900)]
Remove unused argument and rename function
__ms_parse_gst_error() is changed to __ms_trigger_error_cb().
Meaningless comments are also removed.
[Version] 0.1.118
[Issue Type] Code cleanup
Change-Id: I7e8853aed855a07411522fc5688b933a31123f92
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 3 Sep 2020 09:07:18 +0000 (18:07 +0900)]
Add clock-rate to avoid return EMPTY caps of gst_caps_intersect between offer_caps and trans_caps
- Refer following FIXME comment of _create_answer_task() in gstwebrtcbin.c:2585
/* FIXME: technically this is a little overreaching as some fields we
* we can deal with not having and/or we may have unrecognized fields
* that we cannot actually support */
- Refer Page 22 of RFC7741, VP8 clock rate MUST be 90000
- now answer can be set transceiver direction after intersection
- VP8 and H264 clock rate must be 90000. In normal case, video caps get this value by pad intersect.
but, When we use 'recvonly', we don't create video pipeline and use default video caps which had not clock rate.
- In negotiation between answer and offer.
Before the answer accepts the offer's transceiver, caps are negotiated between the answer and the offer.
At this time, if the video caps of the answer is EMPTY by gst_caps_intersect(),
the answer's transceiver is automatically set to 'recvonly'.
the return value is EMPTY caps of gst_caps_intersect() if clock rate is not set.
[Version] 0.1.117
[Issue Type] Bug fix
Change-Id: I43237638cc74af50067e13dc2668b11ec0931b35
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Thu, 3 Sep 2020 07:50:16 +0000 (16:50 +0900)]
Set STUN server URL to webrtcbin properly
[Version] 0.1.116
[Issue Type] Bug fix
Change-Id: I96cdf753aab30d18ea9783df83179a36f934caa1
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 26 Aug 2020 01:21:21 +0000 (10:21 +0900)]
Remove useless if-else statement
[Version] 0.1.115
[Issue Type] Refactoring
Change-Id: Ie7cfe36452f0fec46e6ed4a378ea92156d55b9db
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 27 Aug 2020 03:44:21 +0000 (12:44 +0900)]
Apply LCOV_EXCL_START/STOP macro to WebRTC function
[Version] 0.1.114
[Issue Type] Coverage
Change-Id: I0272215df9b198ec7763b65fad4e029e638fa788
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Fri, 21 Aug 2020 05:27:19 +0000 (14:27 +0900)]
Revise __ms_parse_gst_error()
Remove unnecessary else branch.
Add error log.
[Version] 0.1.113
[Issue Type] Improvement
Change-Id: I5b21eae294bd024d3a46f5e29e7ed0bc43d7be77
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 21 Aug 2020 01:12:21 +0000 (10:12 +0900)]
Remove bus watch when destorying handle
[Version] 0.1.112
[Issue Type] Improvement
Change-Id: Iafdf02657bb403c857dd80ccb30cf87caf12efc5
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 20 Aug 2020 01:57:45 +0000 (10:57 +0900)]
Apply autoplug-select signal and callback to decodebin of WebRTC node
[Version] 0.1.111
[Issue Type] Improvement
Change-Id: I0664417750676d809d0cf83359874554df16043b
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Fri, 24 Jul 2020 03:06:21 +0000 (12:06 +0900)]
[ACR-1590] Add new API for set param RTP transceiver direction
- MEDIA_STREAMER_PARAM_WEBRTC_RTP_TRANSCEIVER_DIRECTION_FOR_AUDIO
MEDIA_STREAMER_PARAM_WEBRTC_RTP_TRANSCEIVER_DIRECTION_FOR_VIDEO.
- It can be "sendrecv" or "sendonly" or "recvonly" or "inactive".
[Version] 0.1.110
[Issue Type] New feature
Change-Id: I5bcef12539338c2a46dc7afb74f2fe42cb2d4a15
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Fri, 7 Aug 2020 02:27:17 +0000 (11:27 +0900)]
Modify logs in functions related to ini value
[Version] 0.1.109
[Issue Type] Improvement
Change-Id: I82d4343315f3644f01d016b6d70a60ec76732773
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 7 Aug 2020 00:57:21 +0000 (09:57 +0900)]
Use g_strv_contains() to search string in string array
[Version] 0.1.108
[Issue Type] Improvement
Change-Id: Ia6043058809f68138cf10ba27b4e16945796b7f5
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 6 Aug 2020 11:26:59 +0000 (20:26 +0900)]
Add logic to skip h/w video decoder element in __ms_feature_node_filter()
It relates to the element in video_decoder node.
__need_to_skip_hw_video_decoder_klass() is also added.
[Version] 0.1.107
[Issue Type] Improvement
Change-Id: I37b8746153081b0361308a9697b0bf487e109350
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 6 Aug 2020 10:00:49 +0000 (19:00 +0900)]
Add logic to skip h/w decoder element in __decodebin_autoplug_select_cb()
It checks the conditions to allow the h/w video decoder element
only when
1. If zerocopy is used and
2. 'video_decoder' is specified in zerocopy node names
[Version] 0.1.106
[Issue Type] Improvement
Change-Id: Icff5306e9cffe416da959f446d755e55ab39915c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 30 Jul 2020 01:43:42 +0000 (10:43 +0900)]
Add callback for "on-new-transceiver" on webrtcbin
[Version] 0.1.105
[Issue Type] Improvement
Change-Id: Ib58c047cb420b79cb8eea220210562fc39581bf7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 29 Jul 2020 05:31:34 +0000 (14:31 +0900)]
fixup! Revise codes to use new subfunctions to init/set GValue
Change-Id: Ie2519ae55d9192d5fa68a87105b835492975369c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 27 Jul 2020 09:02:49 +0000 (18:02 +0900)]
Add function to dump ini setttings
[Version] 0.1.104
[Issue Type] Improvement
Change-Id: I5be9fef4ad7b52543ccc0cc5f7446d1221a7cd15
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 27 Jul 2020 07:18:21 +0000 (16:18 +0900)]
Add inline function to get number from string
[Version] 0.1.103
[Issue Type] Refactoring
Change-Id: I0c64a5e655106f0e5de0f48b7e81b60c67da1b33
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 24 Jul 2020 05:51:07 +0000 (14:51 +0900)]
Revise codes to use new subfunctions to init/set GValue
__ms_param_value_set() and __ms_param_value_init() are added.
Logs are added to check values easily.
Some strcmp() are replaced by comparing with enum type.
[Version] 0.1.102
[Issue Type] Improvement
Change-Id: I6ed7470a0f1c5f812d60de2457159a7d42ed6c98
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 23 Jul 2020 08:23:39 +0000 (17:23 +0900)]
Reduce string comparisons in ms_node_set[get]_param_value()
The param_s structure now has been changed.
- origin_name is renamed to prop_name.
- enumeration for the prop_name and data_type are added.
These new members are set in param_table[] in media_streamer
_node.c. These are used to remove numerous string comparisons.
[Version] 0.1.101
[Issue Type] Refactoring
Change-Id: Iaab8cb68dbf6aeb81675b70e2393cc0de8c8cbe4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 21 Jul 2020 08:37:10 +0000 (17:37 +0900)]
Fix crash
Add null check before strdup().
Getting the ini instance codes are changed.
[Version] 0.1.100
[Issue Type] Bug Fix
Change-Id: I4806d33c257bfc669523f970e1bd579b0e9fa745
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 17 Jul 2020 02:33:50 +0000 (11:33 +0900)]
Revise codes releasing ini setting
[Version] 0.1.99
[Issue Type] Improvement
Change-Id: Ia38dde47223b954079563a6620b5553a37a0f738
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 17 Jul 2020 01:14:49 +0000 (10:14 +0900)]
Use array retrieve subfunction
[Version] 0.1.98
[Issue Type] Refactoring
Change-Id: Icb4d56761666d6bccced1bc5537be0f46061681d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 16 Jul 2020 05:28:58 +0000 (14:28 +0900)]
Improve zerocopy format selection logic
Previously, it always converted zerocopy format if it meets
the predefined format in hard-coded array. Because it did not
care the node type and zerocopy format, there happened a case
that invalid converting format from I420 to S420 with videotestsrc
and capsfilter.
This patch adds to look into the supported zerocopy node names
and formats in ini file.
For example of one target, the zerocopy feature can be defined in
mmfw_media_streamer.ini as below.
use zerocopy = yes
zerocopy node names = video_decoder,video_encoder,capsfilter
zerocopy formats = SN12
[Version] 0.1.97
[Issue Type] Improvement
Change-Id: Ie74703f8a88de11193748dc8b452de21485408c3
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 16 Jul 2020 01:20:15 +0000 (10:20 +0900)]
Divide converting mimetype-string function into several parts
It'll reduce unnecessary comparison.
[Version] 0.1.96
[Issue Type] Improvement
Change-Id: Ie2227164687017b079c07f73331a00f9d612a1dd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 15 Jul 2020 01:29:53 +0000 (10:29 +0900)]
Add support for the live source for WebRTC
Media streamer provides several APIs to change its states
such as prepare(), play() and pause().
During prepare(), it is required for WebRTC node to exchange
negotiation messages via signaling server controlled by
application. But the implimentation of webrtcbin invokes the
'on-negotiation-needed' callback as soon as the first source
buffer arrives. This patch enables source plugins which do not
have the preroll buffer to work well with WebRTC node.
[Version] 0.1.95
[Issue Type] Improvement
Change-Id: I905351c0fd1a422d8e0c64d79995408c5720ea2e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Tue, 14 Jul 2020 07:38:18 +0000 (16:38 +0900)]
Apply zero copy to video encoder
- If use zerocopy is set, incoming video is pushed to encoder directly.
- Zero copy formats(SN12, SN21 and etc) are also used.
[Version] 0.1.94
[Issue Type] Improvement
Change-Id: Ic6426f943e7c059ba95fe402ed8a0d777efa095a
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Tue, 14 Jul 2020 01:42:39 +0000 (10:42 +0900)]
Apply zero copy format for camerasrc and h/w encoder
[Version] 0.1.93
[Issue Type] Improvement
Change-Id: Ib9cdbd5dd5eb7938fed2845bf930998a490dd300
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Tue, 14 Jul 2020 00:05:14 +0000 (09:05 +0900)]
Apply LCOV_EXCL_START/STOP macro to media_streamer_gst_webrtc.c
Invalid LCOV_EXCL_STOP is also removed in media_streamer_node.c.
[Version] 0.1.92
[Issue Type] Coverage
Change-Id: I6b2cba1cb2d33164af2df4837002c2dfaadf0164
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 10 Jul 2020 04:43:51 +0000 (13:43 +0900)]
Change dlog tag to TIZEN_N_MEDIASTREAMER
[Version] 0.1.91
[Issue Type] Log
Change-Id: I5ea2723541b32510c12e0dba034aba4f480632de
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 9 Jul 2020 09:58:35 +0000 (18:58 +0900)]
Add ms_update_state_from_pend_state() sub-function
[Version] 0.1.90
[Issue Type] Refactoring
Change-Id: I3a6172805296a9d8512d5c45bcf126b8ffc2e47b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 8 Jul 2020 07:00:34 +0000 (16:00 +0900)]
Add missing '(Since 6.0)' to description of new enum
[Version] 0.1.89
[Issue Type] Doxygen
Change-Id: I4c60b68d8344576bea5c8068beb48e992ba9bf00
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 8 Jul 2020 00:34:13 +0000 (09:34 +0900)]
Revise logs in ms_pipeline_get_state()
This revision reflects various return values of
gst_element_get_state() for easy debugging.
[Version] 0.1.88
[Issue Type] Log
Change-Id: I900d25421a5ae077e0ae2317a39b23c9fad3f576
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 6 Jul 2020 09:57:49 +0000 (18:57 +0900)]
Remove unidentified logic inside of __ms_bus_cb() for state change
In case of MEDIA_STREAMER_STATE_READY/PAUSED/PLAYING, the pend state
of media streamer handle is set by API. After then, the state of
media stream handle is set in bus message callback with the pend state.
But the removed logic in this commit set these states of the handle
forcedly from the bus message callback. We can't find the situation
that it happens as well as we find it causes a bug of state change
in case of WebRTC execution. Hence, it is now removed.
Coding style and logs are also revised.
[Version] 0.1.87
[Issue Type] Bug fix
Change-Id: I06e89837101b0d9d894643d4323a7e102828e9a7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 23 Jun 2020 05:05:12 +0000 (14:05 +0900)]
Rename internal defines for specific strings
MS_RTP_PAD_* are changed to MS_PAD_* because it is not only used
for RTP node but also used for WebRTC node.
MEDIA_STREAMER_PARAM_AUDIO[VIDEO]_IN_FORMAT is renamed to
MS_PARAM_AUDIO[VIDEO]_IN_FORMAT because these are not exported
defines.
Replace underline by hyphen in string values.
Typo is fixed - 'rctp' to 'rtcp'
[Version] 0.1.86
[Issue Type] Improvement
Change-Id: I6133494c688dfaade2a5bb60f7dcd654e5037f72
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 3 Jul 2020 04:29:03 +0000 (13:29 +0900)]
Wrap g_hash_table_remove() with ms_node_remove_from_table()
[Version] 0.1.85
[Issue Type] Refactoring
Change-Id: Ic6a5821e3231a90c3873aa9a67688cbfc91f63aa
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 23 Jun 2020 04:03:45 +0000 (13:03 +0900)]
Add new definitions for sink pad name for audio/video input
MEDIA_STREAMER_NODE_PAD_VIDEO_SINK and MEDIA_STREAMER_NODE_PAD_AUDIO_SINK
are added.
@remarks description of media_streamer_node_add() is also revised.
[Version] 0.1.84
[Issue Type] API
Change-Id: If27cf3952269dae521c88d4d911d60d3130830a6
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 2 Jul 2020 05:50:56 +0000 (14:50 +0900)]
Add availability information of parameters in callback prototypes
These are added in @remarks paragraph.
More '\n' are added to separate lines.
[Version] 0.1.83
[Issue Type] Doxygen
Change-Id: Iba6ca9eb15cedbd5dfbd8e94815160925f570b99
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 2 Jul 2020 04:31:40 +0000 (13:31 +0900)]
Use strdup() for the out parameter result of ms_node_get_param_value()
It will be passed to the out parameter of media_streamer_node_get_param()
which needs to be released with free() by user.
Missing '()' is also added to @pre description of media_streamer_node_pull_packet().
It will create a link in the HTML documentation.
[Version] 0.1.82
[Issue Type] Improvement
Change-Id: Icc7eea60bb54f9083105b6da876e155613d828f4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 2 Jul 2020 02:19:12 +0000 (11:19 +0900)]
Add line break symbol('\n') to separate paragraphs
The @a command is also added to make link for parameters
in paragraphs.
[Version] 0.1.81
[Issue Type] Doxygen
Change-Id: Ibc480b978b7bb94c1880745ce3a80b9a6913ce7a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 2 Jul 2020 01:14:31 +0000 (10:14 +0900)]
Add @remarks for release information of parameters
[Version] 0.1.80
[Issue Type] Doxygen
Change-Id: Id49c971bd1b3c78a55a34154489ab87f4bed9f8e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Wed, 1 Jul 2020 07:26:20 +0000 (16:26 +0900)]
Add restriction about setting MEDIA_STREAMER_PARAM_DISPLAY
- MEDIA_STREAMER_PARAM_DISPLAY should be set in main thread.
Otherwise, it will return MEDIA_STREAMER_ERROR_INVALID_OPERATION by internal restriction.
To avoid MEDIA_STREAMER_ERROR_INVALID_OPERATION in sub thread, ecore_thread_main_loop_begin() and
ecore_thread_main_loop_end() can be used, but deadlock can be also occurred if main thread is busy.
[Version] 0.1.79
[Issue Type] Improvement
Change-Id: Ie7290e99d6e051b363760421b18b4702b39acee0
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Wed, 1 Jul 2020 08:53:13 +0000 (17:53 +0900)]
Fix bug in media_streamer_node_get_pad_name()
It is fixed to return pad names properly via out parameters
of media_streamer_node_get_pad_name().
[Version] 0.1.78
[Issue Type] Bug fix
Change-Id: I57a0dfd7ecebc52ace5da3adabce2fe91f2c3843
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 26 Jun 2020 04:12:45 +0000 (13:12 +0900)]
Fix code to set plugin name read from ini file
It's a bug of ms_src_node_create() in case of
MEDIA_STREAMER_NODE_SRC_TYPE_CUSTOM type node.
[Version] 0.1.77
[Issue Type] Bug fix
Change-Id: I68f42056161e950c422ce28bc3ba31749f440ca7
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 26 Jun 2020 02:42:18 +0000 (11:42 +0900)]
Remove unused function
ms_webrtcbin_set_pad_format() is removed.
[Version] 0.1.76
[Issue Type] Code cleanup
Change-Id: Ib7c15f5ae73cae67788d4f750c40f0e94c582527
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 25 Jun 2020 11:21:54 +0000 (20:21 +0900)]
Add error condition in media_streamer_prepare() for WebRTC
- After setting media format to audio sink pad of WebRTC,
if audio sink pad is not linked to peer node then an error will occur.
- The video does the same thing.
[Version] 0.1.75
[Issue Type] Improvement
Change-Id: Iff9a9ce5a73f800e2fa0c9045cd470a9f6305d76
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Wed, 17 Jun 2020 01:57:31 +0000 (10:57 +0900)]
Change the completion position of MEDIA_STREAMER_STATE_READY for WebRTC
- Only, in case of WebRTC, MEDIA_STREAMER_STATE_READY is set after connecting ICE connection
- Add ice-connection-state callback function
[Version] 0.1.74
[Issue Type] Improve
Change-Id: I76205f2ccd749ee0b0a54f17e58153e3b0a1bd5f
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Wed, 17 Jun 2020 01:07:38 +0000 (10:07 +0900)]
Add internal API for getting webrtcbin from webrtc node
- GstElement * ms_webrtc_node_get_webrtcbin(media_streamer_node_s *webrtc_node)
[Version] 0.1.73
[Issue Type] Refactoring
Change-Id: I7a19441f5eab9dc9bc9cd911b9468f701189d42b
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Wed, 10 Jun 2020 02:10:32 +0000 (11:10 +0900)]
Add WebRTC sample app
- Add creating mediastreamer pipeline for WebRTC
- Add message callback for posting session description and ICE candidate
- Add decoded ready callback for making audio/video rendering nodes
- Add calling APIs for setting session description and ICE candidate
[Version] 0.1.72
[Issue Type] Test
Change-Id: Iea62f45b8ea7fde8a5890c5de4929907dec011ca
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Fri, 19 Jun 2020 00:52:48 +0000 (09:52 +0900)]
Add @remarks to the description of media_streamer_node_add() regarding its state
Since 6.0, the required state of this function is changed.
[Version] 0.1.71
[Issue Type] Doxygen
Change-Id: Ie4c1084f674893297a6762e711f65ae22daf6448
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 18 Jun 2020 02:30:38 +0000 (11:30 +0900)]
Release the state limit of media_streamer_node_add()
Previously, media_streamer_node_add() returns the invalid
state error when the media streamer state is not IDLE.
This condition is now released to let the user can create
a new node and link the node even if the media streamer
state is PLAYING. For example, it is possible to do these
things inside of decoded ready callback directly.
[Version] 0.1.70
[Issue Type] Improvement
Change-Id: I7188abbbf0fd303304b011425790a954033c193f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 18 Jun 2020 00:59:34 +0000 (09:59 +0900)]
Add error log in case of ms_bin_add_element() failure
[Version] 0.1.69
[Issue Type] Log
Change-Id: I8c69e6521dc5bc47d193e1e1980ae0fa0c992015
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 16 Jun 2020 14:42:34 +0000 (23:42 +0900)]
Revise descriptions - Add missing punctuation mark in @details
[Version] 0.1.68
[Issue Type] Doxygen
Change-Id: Ib6bb6e12f9c8fa1826531564c0c8a7f351bc199f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 17 Jun 2020 00:43:40 +0000 (09:43 +0900)]
Revise descriptions - Reorder returned values
[Version] 0.1.67
[Issue Type] Doxygen
Change-Id: I3b32b4e3948609c9f8a0171f9a90f8bb60d7be87
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 17 Jun 2020 00:20:42 +0000 (09:20 +0900)]
Fix doxygen - Add missing command @a to refer to member arguments
Invalid parameter description is also fixed.
[Version] 0.1.66
[Issue Type] Doxygen
Change-Id: I49fec1980d63c9359dff31e327ec65ef0f58a5be
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Wed, 3 Jun 2020 06:29:18 +0000 (15:29 +0900)]
Add WebRTC signaling example to test app
- The websocket handshake example is added
[Version] 0.1.65
[Issue Type] Test
Change-Id: Iae0cfe586265787273d2e50c76aa465a53d253e3
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Mon, 15 Jun 2020 23:29:03 +0000 (08:29 +0900)]
Revise descriptions
Descriptions are revised according to the recommendation
of review comments from ACR process.
[Version] 0.1.64
[Issue Type] Doxygen
Change-Id: I83c43b30cb9caccecba6b67e3670bff5062a2464
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 15 Jun 2020 01:49:26 +0000 (10:49 +0900)]
Improve media_streamer_node_set_pad_format() for WebRTC node
The previous codes can not propagate the pad event because the
pipeline status is not satisfied with the condition to set the
pad format normally. To fix it, a capsfilter element is added
in the creation time of WebRTC node and set new caps to its
property.
A ghost pad for the audio input is newly added to WebRTC node.
[Version] 0.1.63
[Issue Type] Bug fix
Change-Id: I624bca9c0c4376d38587f0dd49e94c6f7e90ee6a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 15 Jun 2020 06:58:58 +0000 (15:58 +0900)]
Add internal API to find a specific element by name inside of the bin
ms_find_element_in_bin_by_name() is added.
[Version] 0.1.62
[Issue Type] New feature
Change-Id: I2223fd6598d7093f369ece4d7255731dd0d7bc4c
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 12 Jun 2020 05:54:58 +0000 (14:54 +0900)]
Add to check privilege and feature for WebRTC node
- internet privilege is needed to create WebRTC node.
- At least, one of wifi, telephony, ethernet feature should be enabled.
- The return value of MEDIA_STREAMER_ERROR_PERMISSION_DENIED,
MEDIA_STREAMER_ERROR_NOT_SUPPORTED are added to media_streamer_node_create().
[Version] 0.1.61
[Issue Type] Privilege/Feature
Change-Id: I10daa928b2310b8ac194e5aa6b3762672e3a2933
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 11 Jun 2020 01:55:26 +0000 (10:55 +0900)]
Improve pad-added related codes of WebRTC node
- Add linking pad added by decodebin to webrtc_container's ghost_pad(video_out)
- Fix adding decodebin to webrtc_container
[Version] 0.1.60
[Issue Type] Improvement
Change-Id: I5a9fce745e78c06561fab4c77baf5aee0bf5f81c
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Wed, 10 Jun 2020 01:06:18 +0000 (10:06 +0900)]
Improve media_streamer_node_set_pad_format() to support the WebRTC
- Newly add ms_webrtcbin_set_pad_format() and __ms_rtp_node_set_pad_format()
- Add VP8 and OPUS type to ms_convert_mime_to_rtp_format(media_format_mimetype_e mime)
- VP8 and OPUS can be convert to rtp format by this function
[Version] 0.1.59
[Issue Type] New feature
Change-Id: Idea5134bf8b5e4b6dda123413eb9a4f438dbb62d
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Thu, 11 Jun 2020 08:49:28 +0000 (17:49 +0900)]
Revise error log
[Version] 0.1.58
[Issue Type] Log
Change-Id: I0d545bf2488c6ee5dd9dee796b715144648a697f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 10 Jun 2020 01:47:20 +0000 (10:47 +0900)]
Add new parameter to set/get STUN server URL for WebRTC node
MEDIA_STREAMER_PARAM_WEBRTC_STUN_SERVER is added.
The default value is "stun://stun.l.google.com:19302"
[Version] 0.1.57
[Issue Type] New feature
Change-Id: I12365080f76f19dc4175c8616a998fb8fe5d3624
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Thu, 11 Jun 2020 02:21:05 +0000 (11:21 +0900)]
Add support for OPUS audio format
[Version] 0.1.56
[Issue Type] New feature
Change-Id: I2629add7d6d5f00a6dea8290c997a70656757cef
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 5 Jun 2020 06:00:47 +0000 (15:00 +0900)]
Add new APIs to set/unset decoded ready callback of the node
This callback will be invoked when the 'pad-added' signal of
a gstreamer element for decoding something in the node is received.
User can utilize this callback to link the decoded source pad
with new node's sink pad for rendering something in the application.
- int media_streamer_node_set_decoded_ready_cb(media_streamer_node_h node,
media_streamer_node_decoded_ready_cb callback,
void *user_data)
- typedef void (*media_streamer_node_decoded_ready_cb)(media_streamer_node_h node,
const char *src_pad_name,
const char *media_types,
void *user_data)
- int media_streamer_node_unset_decoded_ready_cb(media_streamer_node_h node)
Change-Id: I92199bae3b9c3e4028050e26a8ba7ab7b39df2d4
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 9 Jun 2020 06:19:22 +0000 (15:19 +0900)]
Fix bug in ms_find_element_in_bin_by_type()
Invalid parameter for gst_element_get_factory() is fixed.
[Version] 0.1.55
[Issue Type] Bug fix
Change-Id: Ic459e16669c27bb2b314921c26f33aa74f13498f
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Fri, 5 Jun 2020 05:48:15 +0000 (14:48 +0900)]
Add new param for setting remote session description and ICE candidiate for WebRTC peer connection
- add MEDIA_STREAMER_PARAM_WEBRTC_REMOTE_SESSION_DESCRIPTION
- add MEDIA_STREAMER_PARAM_WEBRTC_ADD_ICE_CANDIDATE
Add internal APIs to set remote session description and ICE candidate to WebRTC node
- int ms_webrtcbin_set_remote_session_description(media_streamer_node_s *node, const char *sdp_msg)
- int ms_webrtcbin_add_ice_candidate(media_streamer_node_s *node, const char *ice_msg)
[Version] 0.1.54
[Issue Type] New feature
Change-Id: I5a1a66a61dcb511cebf62628d3bb8217912bc8cd
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Thu, 4 Jun 2020 06:58:51 +0000 (15:58 +0900)]
Add internal APIs to get SDP/ICE from text message
- int ms_webrtc_get_sdp_from_message(const char *sdp_msg, gchar **sdp)
- int ms_webrtc_get_ice_candidate_from_message(const char *ice_msg, gchar **candidate, gint *mlineindex)
[Version] 0.1.53
[Issue Type] New feature
Change-Id: Id8a6c9c1fad0dadcaf1456c80db8ebcaa00683a1
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Wed, 3 Jun 2020 08:59:00 +0000 (17:59 +0900)]
Add new APIs to set/unset webrtc message callback
- int media_streamer_webrtc_node_set_message_cb(media_streamer_node_h webrtc,
media_streamer_webrtc_message_cb callback,
void *user_data)
- int media_streamer_webrtc_node_unset_message_cb(media_streamer_node_h webrtc)
- typedef void (*media_streamer_webrtc_message_cb)(media_streamer_node_h webrtc,
const char *message,
void *user_data);
[Version] 0.1.52
[Issue Type] New feature
Change-Id: I452d7c88ff6e6e80cb41388a7d5c6d05d308527e
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 1 Jun 2020 23:54:17 +0000 (08:54 +0900)]
Add support for WebRTC node
WebRTC node is added.
- MEDIA_STREAMER_NODE_TYPE_WEBRTC
New parameter is added for WebRTC node to determine
this peer is for offer or answer.
- MEDIA_STREAMER_PARAM_WEBRTC_PEER_TYPE
Handling SDP messages regarding WebRTC node are added.
media_streamer_gst_webrtc.c[h] are added.
[Version] 0.1.51
[Issue Type] New feature
Change-Id: Ic63e1993f75bb598db6e7bc85e861b6f35678e69
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Tue, 2 Jun 2020 08:07:01 +0000 (17:07 +0900)]
Add webrtcbin test menu
[Version] 0.1.50
[Issue Type] New feature
Change-Id: I3ce67e4c875461c6421cf9aa0454af04a7ff698d
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Mon, 1 Jun 2020 02:30:43 +0000 (11:30 +0900)]
Add internal function - ms_find_element_in_bin_by_type()
__ms_bin_find_element_by_type() is renamed to
__ms_bin_find_element_and_link_by_type()
[Version] 0.1.49
[Issue Type] New feature
Change-Id: I09948cb17ce496fa9c42e2a14077080825c12266
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 1 Jun 2020 01:07:44 +0000 (10:07 +0900)]
Fix return type of ms_rtp_node_prepare()
[Version] 0.1.48
[Issue Type] Improvement
Change-Id: I1675c66f243f851b3b593ce34b8135d9e69052cd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 28 May 2020 09:19:28 +0000 (18:19 +0900)]
Modify __demux_find to __find_node
- now, function is used for all node
[Version] 0.1.47
[Issue Type] Improvement
Change-Id: Id323af85dd26f347febeca488fe00cbc67c92d8a
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Thu, 28 May 2020 04:46:37 +0000 (13:46 +0900)]
Add VP8 encoder for video encoder bin
- There's no parser for VP8
[Version] 0.1.46
[Issue Type] New feature
Change-Id: I5e859b937aab400feb1d5a262447cde1f9155502
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Wed, 27 May 2020 04:23:50 +0000 (13:23 +0900)]
Release resources after finishing change of gst state to NULL
[Version] 0.1.45
[Issue Type] Bug fix
Change-Id: I021849c35725ac757218ec2071491168d579625a
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 26 May 2020 07:18:08 +0000 (16:18 +0900)]
Change file name - _node_policy_ to _node_dpm_policy_
The name of files and internal APIs are changed
to clarify what it relates.
[Version] 0.1.44
[Issue Type] Naming
Change-Id: Ib47ea70d94cdb2833b991efe6f34a1b923ee58aa
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Tue, 26 May 2020 04:16:18 +0000 (13:16 +0900)]
Revise DPM policy checking codes
Modified to keep going even if the DPM API fails.
Missing g_object_unref() is added.
Some logs are modified.
[Version] 0.1.43
[Issue Type] Improvement
Change-Id: I2d472262195fca4e7cc80883b5d40279cce0d244
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Mon, 25 May 2020 11:35:19 +0000 (20:35 +0900)]
Change function name - ms_state_change() to ms_set_state()
[Version] 0.1.42
[Issue Type] Naming
Change-Id: I6a32b0b4ba74034ba761d3183c70e347220f8e82
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>