Add support code for VP8
[platform/core/multimedia/libmm-wfd.git] / src / mm_wfd_sink_ini.c
index f75712b..b1ce5f9 100644 (file)
@@ -25,6 +25,8 @@
 #include <stdlib.h>
 #include <iniparser.h>
 #include <mm_error.h>
+#include <fcntl.h>
+#include <unistd.h>
 
 #include "mm_wfd_sink_dlog.h"
 #include "mm_wfd_sink_enum.h"
 #define DEFAULT_NAME_OF_LPCM_FILTER ""
 #define DEFAULT_NAME_OF_AUDIO_RESAMPLER ""
 #define DEFAULT_NAME_OF_AUDIO_VOLUME ""
+#define DEFAULT_NAME_OF_AUDIO_SINKBIN_QUEUE ""
 #define DEFAULT_NAME_OF_AUDIO_SINK ""
 #define DEFAULT_NAME_OF_VIDEO_HDCP ""
 #define DEFAULT_NAME_OF_VIDEO_H264_PARSER ""
-#define DEFAULT_NAME_OF_VIDEO_CAPSSETTER ""
 #define DEFAULT_NAME_OF_VIDEO_H264_DECODER ""
+#define DEFAULT_NAME_OF_VIDEO_H265_PARSER ""
+#define DEFAULT_NAME_OF_VIDEO_H265_DECODER ""
+#define DEFAULT_NAME_OF_VIDEO_VP9_PARSER ""
+#define DEFAULT_NAME_OF_VIDEO_VP9_DECODER ""
 #define DEFAULT_NAME_OF_VIDEO_CONVERTER ""
 #define DEFAULT_NAME_OF_VIDEO_FILTER ""
 #define DEFAULT_NAME_OF_VIDEO_SINK ""
 #define DEFAULT_WFD_VIDEO_FORMATS_SLICE_ENC_PARAM 200
 #define DEFAULT_WFD_VIDEO_FORMATS_FRAMERATE_CONTROL 11
 
+/* R2 Video */
+#define DEFAULT_WFD2_VIDEO_FORMATS_CODEC WFD_VIDEO_H265 | WFD_VIDEO_H264
+#define DEFAULT_WFD2_VIDEO_FORMATS_NATIVE_RESOLUTION 0x20
+#define DEFAULT_WFD2_VIDEO_FORMATS_NON_TRANSCODING_SUPPORT 0
+
+/*R2 H264*/
+#define DEFAULT_WFD2_VIDEO_H264_CEA_SUPPORT "0x84ab"
+#define DEFAULT_WFD2_VIDEO_H264_VESA_SUPPORT "0x1"
+#define DEFAULT_WFD2_VIDEO_H264_HH_SUPPORT "0x555"
+#define DEFAULT_WFD2_VIDEO_H264_PROFILE WFD_H264_BASE_PROFILE
+#define DEFAULT_WFD2_VIDEO_H264_LEVEL WFD_H264_LEVEL_3_2
+#define DEFAULT_WFD2_VIDEO_H264_LATENCY 0x0
+#define DEFAULT_WFD2_VIDEO_H264_VERTICAL_RESOLUTION 720
+#define DEFAULT_WFD2_VIDEO_H264_HORIZONTAL_RESOLUTION 1280
+#define DEFAULT_WFD2_VIDEO_H264_MIN_SLICESIZE 0
+#define DEFAULT_WFD2_VIDEO_H264_SLICE_ENC_PARAM 200
+#define DEFAULT_WFD2_VIDEO_H264_FRAMERATE_CONTROL 11
+
+/*R2 H265*/
+#define DEFAULT_WFD2_VIDEO_H265_CEA_SUPPORT "0x84ab"
+#define DEFAULT_WFD2_VIDEO_H265_VESA_SUPPORT "0x1"
+#define DEFAULT_WFD2_VIDEO_H265_HH_SUPPORT "0x555"
+#define DEFAULT_WFD2_VIDEO_H265_PROFILE WFD_H265_MAIN_PROFILE
+#define DEFAULT_WFD2_VIDEO_H265_LEVEL WFD_H265_LEVEL_3_1
+#define DEFAULT_WFD2_VIDEO_H265_LATENCY 0x0
+#define DEFAULT_WFD2_VIDEO_H265_VERTICAL_RESOLUTION 720
+#define DEFAULT_WFD2_VIDEO_H265_HORIZONTAL_RESOLUTION 1280
+#define DEFAULT_WFD2_VIDEO_H265_MIN_SLICESIZE 0
+#define DEFAULT_WFD2_VIDEO_H265_SLICE_ENC_PARAM 200
+#define DEFAULT_WFD2_VIDEO_H265_FRAMERATE_CONTROL 11
+
+/*R2 Audio*/
+#define DEFAULT_WFD2_AUDIO_CODECS_CODEC WFD_AUDIO_LPCM | WFD_AUDIO_AAC
+#define DEFAULT_WFD2_AUDIO_CODECS_LPCM_MODE GST_LPCM_441KH_16B_2C | GST_LPCM_48KH_16B_2C
+#define DEFAULT_WFD2_AUDIO_CODECS_AAC_MODE GST_AAC_48KH_16B_2C
+#define DEFAULT_WFD2_AUDIO_CODECS_AC3_MODE GST_AC3_48KH_16B_2C
+
 /* HDCP */
 #define DEFAULT_ENABLE_HDCP FALSE
 #define DEFAULT_WFD_HDCP_CONTENT_PROTECTION 0x0
@@ -137,23 +180,21 @@ static void __mm_wfd_sink_ini_check_status(const char *path);
 static
 gboolean __generate_sink_default_ini(void)
 {
-       FILE *fp = NULL;
+       int fd = 0;
+       int length = 0;
        const gchar *default_ini = MM_WFD_SINK_DEFAULT_INI;
 
-
-       /* create new file */
-       fp = fopen(MM_WFD_SINK_INI_DEFAULT_PATH, "wt");
-
-       if (!fp)
+       fd = open(MM_WFD_SINK_INI_DEFAULT_PATH, O_CREAT | O_EXCL, 644);
+       if (fd < 0)
                return FALSE;
 
-       /* writing default ini file */
-       if (strlen(default_ini) != fwrite(default_ini, 1, strlen(default_ini), fp)) {
-               fclose(fp);
+       length = strlen(default_ini);
+       if (length != write(fd, default_ini, strlen(default_ini))) {
+               close(fd);
                return FALSE;
        }
+       close(fd);
 
-       fclose(fp);
        return TRUE;
 }
 #endif
@@ -232,11 +273,15 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_lpcm_filter, "pipeline:lpcm filter element", DEFAULT_NAME_OF_LPCM_FILTER);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_audio_resampler, "pipeline:audio resampler element", DEFAULT_NAME_OF_AUDIO_RESAMPLER);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_audio_volume, "pipeline:audio volume element", DEFAULT_NAME_OF_AUDIO_VOLUME);
+               MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_audio_sinkbin_queue, "pipeline:audio sinkbin queue element", DEFAULT_NAME_OF_AUDIO_SINKBIN_QUEUE);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_audio_sink, "pipeline:audio sink element", DEFAULT_NAME_OF_AUDIO_SINK);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_hdcp, "pipeline:video hdcp element", DEFAULT_NAME_OF_VIDEO_HDCP);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_h264_parser, "pipeline:video h264 parser element", DEFAULT_NAME_OF_VIDEO_H264_PARSER);
-               MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_capssetter, "pipeline:video capssetter element", DEFAULT_NAME_OF_VIDEO_CAPSSETTER);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_h264_decoder, "pipeline:video h264 decoder element", DEFAULT_NAME_OF_VIDEO_H264_DECODER);
+               MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_h265_parser, "pipeline:video h265 parser element", DEFAULT_NAME_OF_VIDEO_H265_PARSER);
+               MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_h265_decoder, "pipeline:video h265 decoder element", DEFAULT_NAME_OF_VIDEO_H265_DECODER);
+               MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_vp9_parser, "pipeline:video vp9 parser element", DEFAULT_NAME_OF_VIDEO_VP9_PARSER);
+               MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_vp9_decoder, "pipeline:video vp9 decoder element", DEFAULT_NAME_OF_VIDEO_VP9_DECODER);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_converter, "pipeline:video converter element", DEFAULT_NAME_OF_VIDEO_CONVERTER);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_filter, "pipeline:video filter element", DEFAULT_NAME_OF_VIDEO_FILTER);
                MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_sink, "pipeline:video sink element", DEFAULT_NAME_OF_VIDEO_SINK);
@@ -253,13 +298,13 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
                ini->wfd_video_formats.video_native_resolution = iniparser_getint(dict, "wfd video formats:video native resolution", DEFAULT_WFD_VIDEO_FORMATS_NATIVE_RESOLUTION);
                memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
                MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd video formats:video cea support", DEFAULT_WFD_VIDEO_FORMATS_CEA_SUPPORT);
-               ini->wfd_video_formats.video_cea_support = strtoul(tempstr,NULL,16);
+               ini->wfd_video_formats.video_cea_support = strtoul(tempstr, NULL, 16);
                memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
                MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd video formats:video vesa support", DEFAULT_WFD_VIDEO_FORMATS_VESA_SUPPORT);
-               ini->wfd_video_formats.video_vesa_support = strtoul(tempstr,NULL,16);
+               ini->wfd_video_formats.video_vesa_support = strtoul(tempstr, NULL, 16);
                memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
                MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd video formats:video hh support", DEFAULT_WFD_VIDEO_FORMATS_HH_SUPPORT);
-               ini->wfd_video_formats.video_hh_support = strtoul(tempstr,NULL,16);
+               ini->wfd_video_formats.video_hh_support = strtoul(tempstr, NULL, 16);
                ini->wfd_video_formats.video_profile = iniparser_getint(dict, "wfd video formats:video profile", DEFAULT_WFD_VIDEO_FORMATS_PROFILE);
                ini->wfd_video_formats.video_level = iniparser_getint(dict, "wfd video formats:video level", DEFAULT_WFD_VIDEO_FORMATS_LEVEL);
                ini->wfd_video_formats.video_latency = iniparser_getint(dict, "wfd video formats:video latency", DEFAULT_WFD_VIDEO_FORMATS_LATENCY);
@@ -273,6 +318,55 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
                ini->wfd_content_protection.enable_hdcp = iniparser_getboolean(dict, "wfd hdcp content protection:enable hdcp", DEFAULT_ENABLE_HDCP);
                ini->wfd_content_protection.hdcp_content_protection = iniparser_getint(dict, "wfd hdcp content protection:hdcp content protection", DEFAULT_WFD_HDCP_CONTENT_PROTECTION);
                ini->wfd_content_protection.hdcp_port_no = iniparser_getint(dict, "wfd hdcp content protection:hdcp port no", DEFAULT_WFD_HDCP_PORT_NO);
+
+               /* video r2 parameter*/
+               ini->wfd2_video_formats.video_codec = iniparser_getint(dict, "wfd2 video formats:video codec", DEFAULT_WFD2_VIDEO_FORMATS_CODEC);
+               ini->wfd2_video_formats.video_native_resolution = iniparser_getint(dict, "wfd2 video formats:video native resolution", DEFAULT_WFD2_VIDEO_FORMATS_NATIVE_RESOLUTION);
+               ini->wfd2_video_formats.video_non_transcoding_support = iniparser_getint(dict, "wfd2 video formats:video non transcoding support", DEFAULT_WFD2_VIDEO_FORMATS_NON_TRANSCODING_SUPPORT);
+
+               /* video h264 info */
+               memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
+               MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd2 h264 video format:video cea support", DEFAULT_WFD2_VIDEO_H264_CEA_SUPPORT);
+               ini->wfd2_video_h264_info.video_cea_support = strtoul(tempstr, NULL, 16);
+               memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
+               MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd2 h264 video format:video vesa support", DEFAULT_WFD2_VIDEO_H264_VESA_SUPPORT);
+               ini->wfd2_video_h264_info.video_vesa_support = strtoul(tempstr, NULL, 16);
+               memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
+               MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd2 h264 video format:video hh support", DEFAULT_WFD2_VIDEO_H264_HH_SUPPORT);
+               ini->wfd2_video_h264_info.video_hh_support = strtoul(tempstr, NULL, 16);
+               ini->wfd2_video_h264_info.video_profile = iniparser_getint(dict, "wfd2 h264 video format:video profile", DEFAULT_WFD2_VIDEO_H264_PROFILE);
+               ini->wfd2_video_h264_info.video_level = iniparser_getint(dict, "wfd2 h264 video format:video level", DEFAULT_WFD2_VIDEO_H264_LEVEL);
+               ini->wfd2_video_h264_info.video_latency = iniparser_getint(dict, "wfd2 h264 video format:video latency", DEFAULT_WFD2_VIDEO_H264_LATENCY);
+               ini->wfd2_video_h264_info.video_vertical_resolution = iniparser_getint(dict, "wfd2 h264 video format:video vertical resolution", DEFAULT_WFD2_VIDEO_H264_VERTICAL_RESOLUTION);
+               ini->wfd2_video_h264_info.video_horizontal_resolution = iniparser_getint(dict, "wfd2 h264 video format:video horizontal resolution", DEFAULT_WFD2_VIDEO_H264_HORIZONTAL_RESOLUTION);
+               ini->wfd2_video_h264_info.video_minimum_slicing = iniparser_getint(dict, "wfd2 h264 video format:video minimum slicesize", DEFAULT_WFD2_VIDEO_H264_MIN_SLICESIZE);
+               ini->wfd2_video_h264_info.video_slice_enc_param = iniparser_getint(dict, "wfd2 h264 video format:video slice encoding params", DEFAULT_WFD2_VIDEO_H264_SLICE_ENC_PARAM);
+               ini->wfd2_video_h264_info.video_framerate_control_support = iniparser_getint(dict, "wfd2 h264 video format:video framerate control support", DEFAULT_WFD2_VIDEO_H264_FRAMERATE_CONTROL);
+
+               /* video h265 info */
+               memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
+               MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd2 h265 video format:video cea support", DEFAULT_WFD2_VIDEO_H265_CEA_SUPPORT);
+               ini->wfd2_video_h265_info.video_cea_support = strtoul(tempstr, NULL, 16);
+               memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
+               MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd2 h265 video format:video vesa support", DEFAULT_WFD2_VIDEO_H265_VESA_SUPPORT);
+               ini->wfd2_video_h265_info.video_vesa_support = strtoul(tempstr, NULL, 16);
+               memset(tempstr, 0x00, WFD_SINK_INI_MAX_STRLEN);
+               MM_WFD_SINK_INI_GET_STRING(dict, tempstr, "wfd2 h265 video format:video hh support", DEFAULT_WFD2_VIDEO_H265_HH_SUPPORT);
+               ini->wfd2_video_h265_info.video_hh_support = strtoul(tempstr, NULL, 16);
+               ini->wfd2_video_h265_info.video_profile = iniparser_getint(dict, "wfd2 h265 video format:video profile", DEFAULT_WFD2_VIDEO_H265_PROFILE);
+               ini->wfd2_video_h265_info.video_level = iniparser_getint(dict, "wfd2 h265 video format:video level", DEFAULT_WFD2_VIDEO_H265_LEVEL);
+               ini->wfd2_video_h265_info.video_latency = iniparser_getint(dict, "wfd2 h265 video format:video latency", DEFAULT_WFD2_VIDEO_H265_LATENCY);
+               ini->wfd2_video_h265_info.video_vertical_resolution = iniparser_getint(dict, "wfd2 h265 video format:video vertical resolution", DEFAULT_WFD2_VIDEO_H265_VERTICAL_RESOLUTION);
+               ini->wfd2_video_h265_info.video_horizontal_resolution = iniparser_getint(dict, "wfd2 h265 video format:video horizontal resolution", DEFAULT_WFD2_VIDEO_H265_HORIZONTAL_RESOLUTION);
+               ini->wfd2_video_h265_info.video_minimum_slicing = iniparser_getint(dict, "wfd2 h265 video format:video minimum slicesize", DEFAULT_WFD2_VIDEO_H265_MIN_SLICESIZE);
+               ini->wfd2_video_h265_info.video_slice_enc_param = iniparser_getint(dict, "wfd2 h265 video format:video slice encoding params", DEFAULT_WFD2_VIDEO_H265_SLICE_ENC_PARAM);
+               ini->wfd2_video_h265_info.video_framerate_control_support = iniparser_getint(dict, "wfd2 h265 video format:video framerate control support", DEFAULT_WFD2_VIDEO_H265_FRAMERATE_CONTROL);
+
+               /* audio r2 parameter*/
+               ini->wfd2_audio_codecs.audio_codec = iniparser_getint(dict, "wfd2 audio codecs:audio codec", DEFAULT_WFD2_AUDIO_CODECS_CODEC);
+               ini->wfd2_audio_codecs.audio_lpcm_mode = iniparser_getint(dict, "wfd2 audio codecs:audio lpcm mode", DEFAULT_WFD2_AUDIO_CODECS_LPCM_MODE);
+               ini->wfd2_audio_codecs.audio_aac_mode = iniparser_getint(dict, "wfd2 audio codecs:audio aac mode", DEFAULT_WFD2_AUDIO_CODECS_AAC_MODE);
+               ini->wfd2_audio_codecs.audio_ac3_mode = iniparser_getint(dict, "wfd2 audio codecs:audio ac3 mode", DEFAULT_WFD2_AUDIO_CODECS_AC3_MODE);
        } else { /* if dict is not available just fill the structure with default value */
                wfd_sink_error("failed to load ini. using hardcoded default");
 
@@ -312,11 +406,15 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
                strncpy(ini->name_of_lpcm_filter, DEFAULT_NAME_OF_LPCM_FILTER, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_audio_resampler, DEFAULT_NAME_OF_AUDIO_RESAMPLER, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_audio_volume, DEFAULT_NAME_OF_AUDIO_VOLUME, WFD_SINK_INI_MAX_STRLEN - 1);
+               strncpy(ini->name_of_audio_sinkbin_queue, DEFAULT_NAME_OF_AUDIO_SINKBIN_QUEUE, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_audio_sink, DEFAULT_NAME_OF_AUDIO_SINK, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_video_hdcp, DEFAULT_NAME_OF_VIDEO_HDCP, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_video_h264_parser, DEFAULT_NAME_OF_VIDEO_H264_PARSER, WFD_SINK_INI_MAX_STRLEN - 1);
-               strncpy(ini->name_of_video_capssetter, DEFAULT_NAME_OF_VIDEO_CAPSSETTER, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_video_h264_decoder, DEFAULT_NAME_OF_VIDEO_H264_DECODER, WFD_SINK_INI_MAX_STRLEN - 1);
+               strncpy(ini->name_of_video_h265_parser, DEFAULT_NAME_OF_VIDEO_H265_PARSER, WFD_SINK_INI_MAX_STRLEN - 1);
+               strncpy(ini->name_of_video_h265_decoder, DEFAULT_NAME_OF_VIDEO_H265_DECODER, WFD_SINK_INI_MAX_STRLEN - 1);
+               strncpy(ini->name_of_video_vp9_parser, DEFAULT_NAME_OF_VIDEO_VP9_PARSER, WFD_SINK_INI_MAX_STRLEN - 1);
+               strncpy(ini->name_of_video_vp9_decoder, DEFAULT_NAME_OF_VIDEO_VP9_DECODER, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_video_converter, DEFAULT_NAME_OF_VIDEO_CONVERTER, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_video_filter, DEFAULT_NAME_OF_VIDEO_FILTER, WFD_SINK_INI_MAX_STRLEN - 1);
                strncpy(ini->name_of_video_sink, DEFAULT_NAME_OF_VIDEO_SINK, WFD_SINK_INI_MAX_STRLEN - 1);
@@ -347,6 +445,43 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
                ini->wfd_content_protection.enable_hdcp = DEFAULT_ENABLE_HDCP;
                ini->wfd_content_protection.hdcp_content_protection = DEFAULT_WFD_HDCP_CONTENT_PROTECTION;
                ini->wfd_content_protection.hdcp_port_no = DEFAULT_WFD_HDCP_PORT_NO;
+
+               /* video r2 parameter*/
+               ini->wfd2_video_formats.video_codec = DEFAULT_WFD2_VIDEO_FORMATS_CODEC;
+               ini->wfd2_video_formats.video_native_resolution = DEFAULT_WFD2_VIDEO_FORMATS_NATIVE_RESOLUTION;
+               ini->wfd2_video_formats.video_non_transcoding_support = DEFAULT_WFD2_VIDEO_FORMATS_NON_TRANSCODING_SUPPORT;
+
+               /* video h264 info */
+               ini->wfd2_video_h264_info.video_cea_support = strtoul(DEFAULT_WFD2_VIDEO_H264_CEA_SUPPORT, NULL, 16);
+               ini->wfd2_video_h264_info.video_vesa_support = strtoul(DEFAULT_WFD2_VIDEO_H264_VESA_SUPPORT, NULL, 16);
+               ini->wfd2_video_h264_info.video_hh_support = strtoul(DEFAULT_WFD2_VIDEO_H264_HH_SUPPORT, NULL, 16);
+               ini->wfd2_video_h264_info.video_profile = DEFAULT_WFD2_VIDEO_H264_PROFILE;
+               ini->wfd2_video_h264_info.video_level = DEFAULT_WFD2_VIDEO_H264_LEVEL;
+               ini->wfd2_video_h264_info.video_latency = DEFAULT_WFD2_VIDEO_H264_LATENCY;
+               ini->wfd2_video_h264_info.video_vertical_resolution = DEFAULT_WFD2_VIDEO_H264_VERTICAL_RESOLUTION;
+               ini->wfd2_video_h264_info.video_horizontal_resolution = DEFAULT_WFD2_VIDEO_H264_HORIZONTAL_RESOLUTION;
+               ini->wfd2_video_h264_info.video_minimum_slicing = DEFAULT_WFD2_VIDEO_H264_MIN_SLICESIZE;
+               ini->wfd2_video_h264_info.video_slice_enc_param = DEFAULT_WFD2_VIDEO_H264_SLICE_ENC_PARAM;
+               ini->wfd2_video_h264_info.video_framerate_control_support = DEFAULT_WFD2_VIDEO_H264_FRAMERATE_CONTROL;
+
+               /* video h265 info */
+               ini->wfd2_video_h265_info.video_cea_support = strtoul(DEFAULT_WFD2_VIDEO_H265_CEA_SUPPORT, NULL, 16);
+               ini->wfd2_video_h265_info.video_vesa_support = strtoul(DEFAULT_WFD2_VIDEO_H265_VESA_SUPPORT, NULL, 16);
+               ini->wfd2_video_h265_info.video_hh_support = strtoul(DEFAULT_WFD2_VIDEO_H265_HH_SUPPORT, NULL, 16);
+               ini->wfd2_video_h265_info.video_profile = DEFAULT_WFD2_VIDEO_H265_PROFILE;
+               ini->wfd2_video_h265_info.video_level = DEFAULT_WFD2_VIDEO_H265_LEVEL;
+               ini->wfd2_video_h265_info.video_latency = DEFAULT_WFD2_VIDEO_H265_LATENCY;
+               ini->wfd2_video_h265_info.video_vertical_resolution = DEFAULT_WFD2_VIDEO_H265_VERTICAL_RESOLUTION;
+               ini->wfd2_video_h265_info.video_horizontal_resolution = DEFAULT_WFD2_VIDEO_H265_HORIZONTAL_RESOLUTION;
+               ini->wfd2_video_h265_info.video_minimum_slicing = DEFAULT_WFD2_VIDEO_H265_MIN_SLICESIZE;
+               ini->wfd2_video_h265_info.video_slice_enc_param = DEFAULT_WFD2_VIDEO_H265_SLICE_ENC_PARAM;
+               ini->wfd2_video_h265_info.video_framerate_control_support = DEFAULT_WFD2_VIDEO_H265_FRAMERATE_CONTROL;
+
+               /* audio r2 parameter*/
+               ini->wfd2_audio_codecs.audio_codec = DEFAULT_WFD2_AUDIO_CODECS_CODEC;
+               ini->wfd2_audio_codecs.audio_lpcm_mode = DEFAULT_WFD2_AUDIO_CODECS_LPCM_MODE;
+               ini->wfd2_audio_codecs.audio_aac_mode = DEFAULT_WFD2_AUDIO_CODECS_AAC_MODE;
+               ini->wfd2_audio_codecs.audio_ac3_mode = DEFAULT_WFD2_AUDIO_CODECS_AC3_MODE;
        }
 
        /* free dict as we got our own structure */
@@ -402,8 +537,11 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
        wfd_sink_debug("name_of_audio_sink : %s", ini->name_of_audio_sink);
        wfd_sink_debug("name_of_video_hdcp : %s", ini->name_of_video_hdcp);
        wfd_sink_debug("name_of_video_h264_parser : %s", ini->name_of_video_h264_parser);
-       wfd_sink_debug("name_of_video_capssetter : %s\n", ini->name_of_video_capssetter);
        wfd_sink_debug("name_of_video_h264_decoder : %s", ini->name_of_video_h264_decoder);
+       wfd_sink_debug("name_of_video_h265_parser : %s", ini->name_of_video_h265_parser);
+       wfd_sink_debug("name_of_video_h265_decoder : %s", ini->name_of_video_h265_decoder);
+       wfd_sink_debug("name_of_video_vp9_parser : %s", ini->name_of_video_vp9_parser);
+       wfd_sink_debug("name_of_video_vp9_decoder : %s", ini->name_of_video_vp9_decoder);
        wfd_sink_debug("name_of_video_converter : %s", ini->name_of_video_converter);
        wfd_sink_debug("name_of_video_filter : %s", ini->name_of_video_filter);
        wfd_sink_debug("name_of_video_sink : %s", ini->name_of_video_sink);
@@ -418,9 +556,9 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
        /* video parameter*/
        wfd_sink_debug("wfd_video_formats.video_codec : %x\n", ini->wfd_video_formats.video_codec);
        wfd_sink_debug("wfd_video_formats.video_native_resolution : %x\n", ini->wfd_video_formats.video_native_resolution);
-       wfd_sink_debug("wfd_video_formats.video_cea_support : %llx\n", ini->wfd_video_formats.video_cea_support);
-       wfd_sink_debug("wfd_video_formats.video_vesa_support : %llx\n", ini->wfd_video_formats.video_vesa_support);
-       wfd_sink_debug("wfd_video_formats.video_hh_support : %llx\n", ini->wfd_video_formats.video_hh_support);
+       wfd_sink_debug("wfd_video_formats.video_cea_support : %"G_GINT64_MODIFIER"x\n", ini->wfd_video_formats.video_cea_support);
+       wfd_sink_debug("wfd_video_formats.video_vesa_support : %"G_GINT64_MODIFIER"x\n", ini->wfd_video_formats.video_vesa_support);
+       wfd_sink_debug("wfd_video_formats.video_hh_support : %"G_GINT64_MODIFIER"x\n", ini->wfd_video_formats.video_hh_support);
        wfd_sink_debug("wfd_video_formats.video_profile : %x\n", ini->wfd_video_formats.video_profile);
        wfd_sink_debug("wfd_video_formats.video_level : %x\n", ini->wfd_video_formats.video_level);
        wfd_sink_debug("wfd_video_formats.video_latency : %d\n", ini->wfd_video_formats.video_latency);
@@ -435,6 +573,43 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
        wfd_sink_debug("wfd_content_protection.hdcp_content_protection : %x", ini->wfd_content_protection.hdcp_content_protection);
        wfd_sink_debug("wfd_content_protection.hdcp_port_no : %d", ini->wfd_content_protection.hdcp_port_no);
 
+       /* video r2 parameter*/
+       wfd_sink_debug("wfd2_video_formats.video_codec : %x\n", ini->wfd2_video_formats.video_codec);
+       wfd_sink_debug("wfd2_video_formats.video_native_resolution : %x\n", ini->wfd2_video_formats.video_native_resolution);
+       wfd_sink_debug("wfd2_video_formats.video_non_transcoding_support : %d\n", ini->wfd2_video_formats.video_non_transcoding_support);
+
+       /* video h264 info*/
+       wfd_sink_debug("wfd2_video_h264_info.video_cea_support : %"G_GINT64_MODIFIER"x\n", ini->wfd2_video_h264_info.video_cea_support);
+       wfd_sink_debug("wfd2_video_h264_info.video_vesa_support : %"G_GINT64_MODIFIER"x\n", ini->wfd2_video_h264_info.video_vesa_support);
+       wfd_sink_debug("wfd2_video_h264_info.video_hh_support : %"G_GINT64_MODIFIER"x\n", ini->wfd2_video_h264_info.video_hh_support);
+       wfd_sink_debug("wfd2_video_h264_info.video_profile : %x\n", ini->wfd2_video_h264_info.video_profile);
+       wfd_sink_debug("wfd2_video_h264_info.video_level : %x\n", ini->wfd2_video_h264_info.video_level);
+       wfd_sink_debug("wfd2_video_h264_info.video_latency : %d\n", ini->wfd2_video_h264_info.video_latency);
+       wfd_sink_debug("wfd2_video_h264_info.video_vertical_resolution : %d\n", ini->wfd2_video_h264_info.video_vertical_resolution);
+       wfd_sink_debug("wfd2_video_h264_info.video_horizontal_resolution : %d\n", ini->wfd2_video_h264_info.video_horizontal_resolution);
+       wfd_sink_debug("wfd2_video_h264_info.video_minimum_slicing : %d\n", ini->wfd2_video_h264_info.video_minimum_slicing);
+       wfd_sink_debug("wfd2_video_h264_info.video_slice_enc_param : %d\n", ini->wfd2_video_h264_info.video_slice_enc_param);
+       wfd_sink_debug("wfd2_video_h264_info.video_framerate_control_support : %d\n", ini->wfd2_video_h264_info.video_framerate_control_support);
+
+       /* video h265 info*/
+       wfd_sink_debug("wfd2_video_h265_info.video_cea_support : %llx\n", ini->wfd2_video_h265_info.video_cea_support);
+       wfd_sink_debug("wfd2_video_h265_info.video_vesa_support : %llx\n", ini->wfd2_video_h265_info.video_vesa_support);
+       wfd_sink_debug("wfd2_video_h265_info.video_hh_support : %llx\n", ini->wfd2_video_h265_info.video_hh_support);
+       wfd_sink_debug("wfd2_video_h265_info.video_profile : %x\n", ini->wfd2_video_h265_info.video_profile);
+       wfd_sink_debug("wfd2_video_h265_info.video_level : %x\n", ini->wfd2_video_h265_info.video_level);
+       wfd_sink_debug("wfd2_video_h265_info.video_latency : %d\n", ini->wfd2_video_h265_info.video_latency);
+       wfd_sink_debug("wfd2_video_h265_info.video_vertical_resolution : %d\n", ini->wfd2_video_h265_info.video_vertical_resolution);
+       wfd_sink_debug("wfd2_video_h265_info.video_horizontal_resolution : %d\n", ini->wfd2_video_h265_info.video_horizontal_resolution);
+       wfd_sink_debug("wfd2_video_h265_info.video_minimum_slicing : %d\n", ini->wfd2_video_h265_info.video_minimum_slicing);
+       wfd_sink_debug("wfd2_video_h265_info.video_slice_enc_param : %d\n", ini->wfd2_video_h265_info.video_slice_enc_param);
+       wfd_sink_debug("wfd2_video_h265_info.video_framerate_control_support : %d\n", ini->wfd2_video_h265_info.video_framerate_control_support);
+
+       /* audio r2 parameter*/
+       wfd_sink_debug("wfd2_audio_codecs.audio_codec : %x\n", ini->wfd2_audio_codecs.audio_codec);
+       wfd_sink_debug("wfd2_audio_codecs.audio_lpcm_mode : %x\n", ini->wfd2_audio_codecs.audio_lpcm_mode);
+       wfd_sink_debug("wfd2_audio_codecs.audio_aac_mode : %x\n", ini->wfd2_audio_codecs.audio_aac_mode);
+       wfd_sink_debug("wfd2_audio_codecs.audio_ac3_mode : %x\n", ini->wfd2_audio_codecs.audio_ac3_mode);
+
        wfd_sink_debug("---------------------------------------------------");
 
        loaded = TRUE;