From: Sangchul Lee Date: Mon, 7 Jun 2021 11:58:45 +0000 (+0900) Subject: webrtc_ini: Add new item to check source element supports encoded format X-Git-Tag: submit/tizen/20210729.023123~47 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3c837ad144702a9e4baa45d923ad8855ce20a5b7;p=platform%2Fcore%2Fapi%2Fwebrtc.git 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 --- diff --git a/include/webrtc_private.h b/include/webrtc_private.h index bb7322bc..29198a93 100644 --- a/include/webrtc_private.h +++ b/include/webrtc_private.h @@ -274,6 +274,7 @@ typedef struct _ini_item_media_source_s { const char *v_codec; const char *v_hw_encoder_element; bool v_drc_support; + bool v_encoded_fmt_support; /* audio source pipeline */ const char *a_raw_format; int a_samplerate; diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 7749329e..359e22ca 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.2.14 +Version: 0.2.15 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/webrtc_ini.c b/src/webrtc_ini.c index 358c9daa..17fdf3e0 100644 --- a/src/webrtc_ini.c +++ b/src/webrtc_ini.c @@ -48,25 +48,27 @@ #define INI_ITEM_FEC_PERCENTAGE "fec percentage" /* items for media source */ -#define INI_ITEM_SOURCE_ELEMENT "source element" -#define INI_ITEM_VIDEO_RAW_FORMAT "video raw format" -#define INI_ITEM_VIDEO_WIDTH "video width" -#define INI_ITEM_VIDEO_HEIGHT "video height" -#define INI_ITEM_VIDEO_FRAMERATE "video framerate" -#define INI_ITEM_VIDEO_DRC_SUPPORT "video drc support" -#define INI_ITEM_VIDEO_CODEC "video codec" -#define INI_ITEM_VIDEO_HW_ENCODER_ELEMENT "video hw encoder element" -#define INI_ITEM_AUDIO_RAW_FORMAT "audio raw format" -#define INI_ITEM_AUDIO_SAMPLERATE "audio samplerate" -#define INI_ITEM_AUDIO_CHANNELS "audio channels" -#define INI_ITEM_AUDIO_CODEC "audio codec" -#define INI_ITEM_AUDIO_HW_ENCODER_ELEMENT "audio hw encoder element" +#define INI_ITEM_SOURCE_ELEMENT "source element" +#define INI_ITEM_VIDEO_RAW_FORMAT "video raw format" +#define INI_ITEM_VIDEO_WIDTH "video width" +#define INI_ITEM_VIDEO_HEIGHT "video height" +#define INI_ITEM_VIDEO_FRAMERATE "video framerate" +#define INI_ITEM_VIDEO_DRC_SUPPORT "video drc support" /* source element supports dynamic resolution change */ +#define INI_ITEM_VIDEO_ENCODED_FMT_SUPPORT "video encoded format support" /* source element supports encoded format */ +#define INI_ITEM_VIDEO_CODEC "video codec" +#define INI_ITEM_VIDEO_HW_ENCODER_ELEMENT "video hw encoder element" +#define INI_ITEM_AUDIO_RAW_FORMAT "audio raw format" +#define INI_ITEM_AUDIO_SAMPLERATE "audio samplerate" +#define INI_ITEM_AUDIO_CHANNELS "audio channels" +#define INI_ITEM_AUDIO_CODEC "audio codec" +#define INI_ITEM_AUDIO_HW_ENCODER_ELEMENT "audio hw encoder element" #define DEFAULT_VIDEO_RAW_FORMAT "I420" #define DEFAULT_VIDEO_WIDTH 320 #define DEFAULT_VIDEO_HEIGHT 240 #define DEFAULT_VIDEO_FRAMERATE 30 #define DEFAULT_VIDEO_DRC_SUPPORT false +#define DEFAULT_VIDEO_ENCODED_FMT_SUPPORT false #define DEFAULT_AUDIO_RAW_FORMAT "S16LE" #define DEFAULT_AUDIO_SAMPLERATE 8000 #define DEFAULT_AUDIO_CHANNELS 1 @@ -163,6 +165,7 @@ static void __dump_items_of_source(ini_item_media_source_s *source) __dump_item(INI_ITEM_VIDEO_HEIGHT, INI_ITEM_TYPE_INT, &source->v_height); __dump_item(INI_ITEM_VIDEO_FRAMERATE, INI_ITEM_TYPE_INT, &source->v_framerate); __dump_item(INI_ITEM_VIDEO_DRC_SUPPORT, INI_ITEM_TYPE_BOOL, &source->v_drc_support); + __dump_item(INI_ITEM_VIDEO_ENCODED_FMT_SUPPORT, INI_ITEM_TYPE_BOOL, &source->v_encoded_fmt_support); __dump_item(INI_ITEM_VIDEO_CODEC, INI_ITEM_TYPE_STRING, (void *)source->v_codec); __dump_item(INI_ITEM_VIDEO_HW_ENCODER_ELEMENT, INI_ITEM_TYPE_STRING, (void *)source->v_hw_encoder_element); __dump_item(INI_ITEM_AUDIO_RAW_FORMAT, INI_ITEM_TYPE_STRING, (void *)source->a_raw_format); @@ -369,6 +372,8 @@ static void __apply_media_source_setting(webrtc_ini_s *ini, ini_item_media_sourc is_default ? DEFAULT_VIDEO_FRAMERATE : ini->media_source.v_framerate); source->v_drc_support = __ini_get_boolean(ini->dict, category, INI_ITEM_VIDEO_DRC_SUPPORT, is_default ? DEFAULT_VIDEO_DRC_SUPPORT : ini->media_source.v_drc_support); + source->v_encoded_fmt_support = __ini_get_boolean(ini->dict, category, INI_ITEM_VIDEO_ENCODED_FMT_SUPPORT, + is_default ? DEFAULT_VIDEO_ENCODED_FMT_SUPPORT : ini->media_source.v_encoded_fmt_support); source->v_codec = __ini_get_string(ini->dict, category, INI_ITEM_VIDEO_CODEC, is_default ? DEFAULT_VIDEO_CODEC : ini->media_source.v_codec); source->v_hw_encoder_element = __ini_get_string(ini->dict, category, INI_ITEM_VIDEO_HW_ENCODER_ELEMENT,