#define DEFAULT_AUDIO_CODEC "opus"
/* items for rendering sink */
-#define INI_ITEM_AUDIO_HW_DECODER_ELEMENTS "audio hw decoder elements"
-#define INI_ITEM_VIDEO_HW_DECODER_ELEMENTS "video hw decoder elements"
+#define INI_ITEM_AUDIO_HW_DECODER_ELEMENTS "audio hw decoder elements"
+#define INI_ITEM_VIDEO_HW_DECODER_ELEMENTS "video hw decoder elements"
+#define INI_ITEM_VIDEO_OVERLAY_RESOURCE_REQUIRED "video overlay resource required"
+
+#define DEFAULT_VIDEO_OVERLAY_RESOURCE_REQUIRED false
/* items for vpxenc parameters */
#define INI_ITEM_VPXENC_THREADS "threads"
}
}
- if (__is_vpx(ini->media_source.v_codec)) {
- LOG_INFO("[%s]", INI_CATEGORY_VPXENC_PARAMS);
- __dump_item(INI_ITEM_VPXENC_THREADS, INI_ITEM_TYPE_INT, &ini->vpxenc_params.threads);
- __dump_item(INI_ITEM_VPXENC_END_USAGE, INI_ITEM_TYPE_INT, &ini->vpxenc_params.end_usage);
- __dump_item(INI_ITEM_VPXENC_CPU_USED, INI_ITEM_TYPE_INT, &ini->vpxenc_params.cpu_used);
- __dump_item(INI_ITEM_VPXENC_TARGET_BITRATE, INI_ITEM_TYPE_INT, &ini->vpxenc_params.target_bitrate);
- __dump_item(INI_ITEM_VPXENC_KEYFRAME_MAX_DIST, INI_ITEM_TYPE_INT, &ini->vpxenc_params.keyframe_max_dist);
- __dump_item(INI_ITEM_VPXENC_MIN_QUANTIZER, INI_ITEM_TYPE_INT, &ini->vpxenc_params.min_quantizer);
- __dump_item(INI_ITEM_VPXENC_MAX_QUANTIZER, INI_ITEM_TYPE_INT, &ini->vpxenc_params.max_quantizer);
- __dump_item(INI_ITEM_VPXENC_UNDERSHOOT, INI_ITEM_TYPE_INT, &ini->vpxenc_params.undershoot);
- }
-
+ LOG_INFO("[%s]", INI_CATEGORY_RENDERING_SINK);
__dump_item(INI_ITEM_AUDIO_HW_DECODER_ELEMENTS, INI_ITEM_TYPE_STRINGS, ini->rendering_sink.a_hw_decoder_elements);
__dump_item(INI_ITEM_VIDEO_HW_DECODER_ELEMENTS, INI_ITEM_TYPE_STRINGS, ini->rendering_sink.v_hw_decoder_elements);
+ __dump_item(INI_ITEM_VIDEO_OVERLAY_RESOURCE_REQUIRED, INI_ITEM_TYPE_BOOL, &ini->rendering_sink.v_overlay_resource_required);
+
+ LOG_INFO("[%s]", INI_CATEGORY_VPXENC_PARAMS);
+ __dump_item(INI_ITEM_VPXENC_THREADS, INI_ITEM_TYPE_INT, &ini->vpxenc_params.threads);
+ __dump_item(INI_ITEM_VPXENC_END_USAGE, INI_ITEM_TYPE_INT, &ini->vpxenc_params.end_usage);
+ __dump_item(INI_ITEM_VPXENC_CPU_USED, INI_ITEM_TYPE_INT, &ini->vpxenc_params.cpu_used);
+ __dump_item(INI_ITEM_VPXENC_TARGET_BITRATE, INI_ITEM_TYPE_INT, &ini->vpxenc_params.target_bitrate);
+ __dump_item(INI_ITEM_VPXENC_KEYFRAME_MAX_DIST, INI_ITEM_TYPE_INT, &ini->vpxenc_params.keyframe_max_dist);
+ __dump_item(INI_ITEM_VPXENC_MIN_QUANTIZER, INI_ITEM_TYPE_INT, &ini->vpxenc_params.min_quantizer);
+ __dump_item(INI_ITEM_VPXENC_MAX_QUANTIZER, INI_ITEM_TYPE_INT, &ini->vpxenc_params.max_quantizer);
+ __dump_item(INI_ITEM_VPXENC_UNDERSHOOT, INI_ITEM_TYPE_INT, &ini->vpxenc_params.undershoot);
}
static const char* __get_delimiter(const char *ini_path)
__ini_read_list(ini->dict, INI_CATEGORY_RENDERING_SINK, INI_ITEM_AUDIO_HW_DECODER_ELEMENTS, &ini->rendering_sink.a_hw_decoder_elements);
__ini_read_list(ini->dict, INI_CATEGORY_RENDERING_SINK, INI_ITEM_VIDEO_HW_DECODER_ELEMENTS, &ini->rendering_sink.v_hw_decoder_elements);
+ ini->rendering_sink.v_overlay_resource_required = __ini_get_boolean(ini->dict, INI_CATEGORY_RENDERING_SINK,
+ INI_ITEM_VIDEO_OVERLAY_RESOURCE_REQUIRED, DEFAULT_VIDEO_OVERLAY_RESOURCE_REQUIRED);
if (__is_vpx(ini->media_source.v_codec))
__apply_vpxenc_params_setting(ini, &ini->vpxenc_params, INI_CATEGORY_VPXENC_PARAMS);
sink->media_types |= MEDIA_TYPE_VIDEO;
videosink_factory_name = __get_videosink_factory_name(sink->display, DEFAULT_ELEMENT_VIDEOSINK, &display_is_set);
+ if (!(videosink = _create_element(videosink_factory_name, NULL))) {
+ LOG_ERROR("failed to create videosink[%s]", videosink_factory_name);
+ return WEBRTC_ERROR_INVALID_OPERATION;
+ }
#ifdef TIZEN_FEATURE_RES_MGR
- if (!g_strcmp0(videosink_factory_name, DEFAULT_ELEMENT_VIDEOSINK)) {
+ if (sink->display->type == WEBRTC_DISPLAY_TYPE_OVERLAY && webrtc->ini.rendering_sink.v_overlay_resource_required) {
webrtc->resource.need_to_acquire[MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_OVERLAY] = true;
if ((ret =_acquire_resource_for_type(webrtc, MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_OVERLAY)))
return ret;
}
#endif
- if (!(videosink = _create_element(videosink_factory_name, NULL))) {
- LOG_ERROR("failed to create videosink[%s]", videosink_factory_name);
- return WEBRTC_ERROR_INVALID_OPERATION;
- }
if (display_is_set) {
if (sink->display->type == WEBRTC_DISPLAY_TYPE_OVERLAY ||