From 755632263eb21fbbc78b05af7125cfb4029529ee Mon Sep 17 00:00:00 2001 From: Sangchul Lee Date: Mon, 8 Aug 2022 14:21:10 +0900 Subject: [PATCH] webrtc_ini: Add new item to enable to dump incoming streams Default dump path is '/tmp'. If 'dump incoming streams' in ini file is set to yes, then encoded streams received from a remote peer will be dumped to files located in the dump path. e.g) [general] dump path = /tmp dump incoming streams = yes [Version] 0.3.198 [Issue Type] New feature Change-Id: Ifd3d8d445ad67e2e0d0ef588c266231e0d33dcdd Signed-off-by: Sangchul Lee --- include/webrtc_private.h | 2 ++ packaging/capi-media-webrtc.spec | 2 +- src/webrtc_ini.c | 12 +++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/webrtc_private.h b/include/webrtc_private.h index 4a9966bc..1162bcba 100644 --- a/include/webrtc_private.h +++ b/include/webrtc_private.h @@ -328,6 +328,8 @@ typedef struct _ini_item_general_s { bool verbose_log; bool nice_verbose; bool network_simulator; + bool dump_incoming_streams; + const char *dump_path; GStrv gst_args; GStrv gst_excluded_elements; const char *stun_server; diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 1360924f..8ea0184c 100644 --- a/packaging/capi-media-webrtc.spec +++ b/packaging/capi-media-webrtc.spec @@ -1,6 +1,6 @@ Name: capi-media-webrtc Summary: A WebRTC library in Tizen Native API -Version: 0.3.197 +Version: 0.3.198 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/webrtc_ini.c b/src/webrtc_ini.c index 67a0ef77..39c30b80 100644 --- a/src/webrtc_ini.c +++ b/src/webrtc_ini.c @@ -24,6 +24,8 @@ #define DEFAULT_VERBOSE_LOG false #define DEFAULT_NICE_VERBOSE false #define DEFAULT_NETWORK_SIMULATOR false +#define DEFAULT_DUMP_INCOMING_STREAMS false +#define DEFAULT_DUMP_PATH "/tmp" #define DEFAULT_JITTERBUFFER_LATENCY 200 /* ms */ #define DEFAULT_BUNDLE_POLICY GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE @@ -51,6 +53,8 @@ #define INI_ITEM_VERBOSE_LOG "verbose log" #define INI_ITEM_NICE_VERBOSE "nice verbose" #define INI_ITEM_NETWORK_SIMULATOR "network simulator" +#define INI_ITEM_DUMP_PATH "dump path" +#define INI_ITEM_DUMP_INCOMING_STREAMS "dump incoming streams" #define INI_ITEM_GST_ARGS "gstreamer arguments" #define INI_ITEM_GST_EXCLUDED_ELEMENTS "gstreamer excluded elements" #define INI_ITEM_STUN_SERVER "stun server" @@ -229,6 +233,8 @@ static void __dump_ini(webrtc_ini_s *ini) __dump_item(INI_ITEM_VERBOSE_LOG, INI_ITEM_TYPE_BOOL, &ini->general.verbose_log); __dump_item(INI_ITEM_NICE_VERBOSE, INI_ITEM_TYPE_BOOL, &ini->general.nice_verbose); __dump_item(INI_ITEM_NETWORK_SIMULATOR, INI_ITEM_TYPE_BOOL, &ini->general.network_simulator); + __dump_item(INI_ITEM_DUMP_INCOMING_STREAMS, INI_ITEM_TYPE_BOOL, &ini->general.dump_incoming_streams); + __dump_item(INI_ITEM_DUMP_PATH, INI_ITEM_TYPE_STRING, (void *)ini->general.dump_path); __dump_item(INI_ITEM_GST_ARGS, INI_ITEM_TYPE_STRINGS, ini->general.gst_args); __dump_item(INI_ITEM_GST_EXCLUDED_ELEMENTS, INI_ITEM_TYPE_STRINGS, ini->general.gst_excluded_elements); __dump_item(INI_ITEM_STUN_SERVER, INI_ITEM_TYPE_STRING, (void *)ini->general.stun_server); @@ -493,7 +499,7 @@ void _load_ini(webrtc_s *webrtc) ini->general.generate_dot = __ini_get_boolean(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_DOT_GENERATE, DEFAULT_GENERATE_DOT); ini->general.dot_path = __ini_get_string(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_DOT_PATH, DEFAULT_DOT_PATH); if (ini->general.generate_dot) { - LOG_INFO("dot file will be stored in [%s]", ini->general.dot_path); + LOG_INFO("dot files will be stored in [%s]", ini->general.dot_path); g_setenv("GST_DEBUG_DUMP_DOT_DIR", ini->general.dot_path, FALSE); } ini->general.stats_log_period = __ini_get_int(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_STATS_LOG_PERIOD, DEFAULT_STATS_LOG_PERIOD); @@ -502,6 +508,10 @@ void _load_ini(webrtc_s *webrtc) if (ini->general.nice_verbose) g_setenv("NICE_DEBUG", "nice-verbose", TRUE); ini->general.network_simulator = __ini_get_boolean(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_NETWORK_SIMULATOR, DEFAULT_NETWORK_SIMULATOR); + ini->general.dump_incoming_streams = __ini_get_boolean(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_DUMP_INCOMING_STREAMS, DEFAULT_DUMP_INCOMING_STREAMS); + ini->general.dump_path = __ini_get_string(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_DUMP_PATH, DEFAULT_DUMP_PATH); + if (ini->general.dump_incoming_streams) + LOG_INFO("dump files will be stored in [%s]", ini->general.dump_path); __ini_read_list(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_GST_ARGS, &ini->general.gst_args, NULL); __ini_read_list(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_GST_EXCLUDED_ELEMENTS, &ini->general.gst_excluded_elements, NULL); ini->general.stun_server = __ini_get_string(ini->dict, INI_CATEGORY_GENERAL, INI_ITEM_STUN_SERVER, NULL); -- 2.34.1