From 19101a807de24004142f055c37d6dff6b4aad6c1 Mon Sep 17 00:00:00 2001 From: SeokHoon Lee Date: Tue, 5 Jul 2016 17:26:08 +0900 Subject: [PATCH] Parameter name change enable_pad_probe -> trace_buffers enable_ts_data_dump -> dump_ts_data enable_asm -> enable_rm enable_wfdsrc_pad_probe -> trace_buffers_of_wfdsrc name_of_video_parser -> name_of_video_h264_parser name_of_video_decoder -> name_of_video_h264_decoder Signed-off-by: SeokHoon Lee Change-Id: I98c839cf8ab58342623c5a88f6d1e4fa5d89b566 --- config/mmfw_wfd_sink.ini | 36 ++++++------- src/include/mm_wfd_sink_ini.h | 43 +++++++--------- src/include/mm_wfd_sink_priv.h | 4 +- src/include/mm_wfd_sink_util.h | 4 +- src/mm_wfd_sink_ini.c | 113 ++++++++++++++++++++++++----------------- src/mm_wfd_sink_priv.c | 28 +++++----- 6 files changed, 123 insertions(+), 105 deletions(-) mode change 100755 => 100644 config/mmfw_wfd_sink.ini mode change 100755 => 100644 src/include/mm_wfd_sink_util.h diff --git a/config/mmfw_wfd_sink.ini b/config/mmfw_wfd_sink.ini old mode 100755 new mode 100644 index 9772d74..5ce3434 --- a/config/mmfw_wfd_sink.ini +++ b/config/mmfw_wfd_sink.ini @@ -7,27 +7,14 @@ gstparam3 = gstparam4 = gstparam5 = -; generating dot file representing pipeline state -; do export GST_DEBUG_DUMP_DOT_DIR=[dot file path] in the shell -generate dot = no - -; enable pad probe -enable pad probe = no - -; enable wfdrtspsrc inner pad probe -enable wfdrtspsrc pad probe = no - -; enable ts data dump (eg. /var/tmp/*.ts) -enable ts data dump = no - ; allowed timeout for changing pipeline state state change timeout = 5; sec ; set debug property to wfdrtspsrc plugin for debugging rtsp message set debug property = yes -; for asm function enable = yes, disable = no -enable asm = no +; for rm function enable = yes, disable = no +enable rm = no ; 0: default value set by wfdrtspsrc element, other: user define value. jitter buffer latency=10 @@ -51,6 +38,21 @@ audio sink async=no video sink async=no + +[debug] +; generating dot file representing pipeline state +; do export GST_DEBUG_DUMP_DOT_DIR=/tmp/ in the shell +generate dot = no + +; enable tracing buffers using pad probe +trace buffers = no + +; enable tracing buffers of wfdsrc +trace buffers of wfdsrc = no + +; enable dumping ts data (eg. /var/tmp/*.ts) +dump ts data = no + [pipeline] wfdsrc element = wfdsrc @@ -74,11 +76,11 @@ audio volume element = audio sink element = pulsesink -video parser element = h264parse +video h264 parser element = h264parse video capssetter element = capssetter -video decoder element = avdec_h264;omxdec_h264;sprddec_h264;omxh264dec +video h264 decoder element = avdec_h264;omxdec_h264;sprddec_h264;omxh264dec video converter element = diff --git a/src/include/mm_wfd_sink_ini.h b/src/include/mm_wfd_sink_ini.h index 40102a8..21c8f69 100644 --- a/src/include/mm_wfd_sink_ini.h +++ b/src/include/mm_wfd_sink_ini.h @@ -31,6 +31,13 @@ extern "C" { #endif +/* NOTE : Wi-Fi Display Sink has no initalizing API for library itself + * so we cannot decide when those ini values to be released. + * this is the reason of all string items are static array. + * make it do with malloc when MMWFDSinkCreate() API created + * before that time, we should be careful with size limitation + * of each string item. + */ enum WFDSinkINIProbeFlags { @@ -46,21 +53,12 @@ enum WFDSinkINIProbeFlags #define WFD_SINK_INI_MAX_STRLEN 256 #define WFD_SINK_INI_MAX_ELEMENT 10 -/* NOTE : MMPlayer has no initalizing API for library itself - * so we cannot decide when those ini values to be released. - * this is the reason of all string items are static array. - * make it do with malloc when MMPlayerInitialize() API created - * before that time, we should be careful with size limitation - * of each string item. - */ typedef struct __mm_wfd_sink_ini { /* general */ gchar gst_param[5][WFD_SINK_INI_MAX_STRLEN]; - gboolean generate_dot; - gboolean enable_pad_probe; gint state_change_timeout; gboolean set_debug_property; - gboolean enable_asm; + gboolean enable_rm; gint jitter_buffer_latency; gint video_sink_max_lateness; gint sink_ts_offset; @@ -68,8 +66,12 @@ typedef struct __mm_wfd_sink_ini { gboolean video_sink_async; gboolean enable_retransmission; gboolean enable_reset_basetime; - gboolean enable_ts_data_dump; - gboolean enable_wfdsrc_pad_probe; + + /* debug */ + gboolean generate_dot; + gboolean trace_buffers; + gboolean trace_buffers_of_wfdsrc; + gboolean dump_ts_data; /* pipeline */ gchar name_of_source[WFD_SINK_INI_MAX_STRLEN]; @@ -84,11 +86,10 @@ typedef struct __mm_wfd_sink_ini { gchar name_of_audio_resampler[WFD_SINK_INI_MAX_STRLEN]; gchar name_of_audio_volume[WFD_SINK_INI_MAX_STRLEN]; gchar name_of_audio_sink[WFD_SINK_INI_MAX_STRLEN]; - gchar name_of_video_hdcp[WFD_SINK_INI_MAX_STRLEN]; - gchar name_of_video_parser[WFD_SINK_INI_MAX_STRLEN]; + gchar name_of_video_h264_parser[WFD_SINK_INI_MAX_STRLEN]; gchar name_of_video_capssetter[WFD_SINK_INI_MAX_STRLEN]; - gchar name_of_video_decoder[WFD_SINK_INI_MAX_STRLEN]; + gchar name_of_video_h264_decoder[WFD_SINK_INI_MAX_STRLEN]; gchar name_of_video_converter[WFD_SINK_INI_MAX_STRLEN]; gchar name_of_video_filter[WFD_SINK_INI_MAX_STRLEN]; gchar name_of_video_sink[WFD_SINK_INI_MAX_STRLEN]; @@ -124,11 +125,8 @@ typedef struct __mm_wfd_sink_ini { /*Default sink ini values*/ /* General*/ #define DEFAULT_GST_PARAM "" -#define DEFAULT_GENERATE_DOT FALSE -#define DEFAULT_ENABLE_PAD_PROBE FALSE #define DEFAULT_STATE_CHANGE_TIMEOUT 5 /* sec */ #define DEFAULT_SET_DEBUG_PROPERTY TRUE -#define DEFAULT_ENABLE_ASM FALSE #define DEFAULT_JITTER_BUFFER_LATENCY 10 /* msec */ #define DEFAULT_ENABLE_RETRANSMISSION FALSE #define DEFAULT_ENABLE_RESET_BASETIME TRUE @@ -136,7 +134,6 @@ typedef struct __mm_wfd_sink_ini { #define DEFAULT_SINK_TS_OFFSET 150000000 /* nsec */ #define DEFAULT_AUDIO_SINK_ASYNC FALSE #define DEFAULT_VIDEO_SINK_ASYNC FALSE -#define DEFAULT_ENABLE_TS_DATA_DUMP FALSE #define DEFAULT_ENABLE_WFDRTSPSRC_PAD_PROBE FALSE /* Pipeline */ @@ -154,9 +151,7 @@ typedef struct __mm_wfd_sink_ini { #define DEFAULT_NAME_OF_AUDIO_SPLITTER "" #define DEFAULT_NAME_OF_AUDIO_SINK "" #define DEFAULT_NAME_OF_VIDEO_HDCP "" -#define DEFAULT_NAME_OF_VIDEO_PARSER "" #define DEFAULT_NAME_OF_VIDEO_CAPSSETTER "" -#define DEFAULT_NAME_OF_VIDEO_DECODER "" #define DEFAULT_NAME_OF_VIDEO_CONVERTER "" #define DEFAULT_NAME_OF_VIDEO_FILTER "" #define DEFAULT_NAME_OF_VIDEO_SINK "" @@ -223,7 +218,7 @@ state change timeout = 5 ; sec\n\ set debug property = yes\n\ \n\ ; for asm function enable = yes, disable = no\n\ -enable asm = no\n\ +enable rm = no\n\ \n\ ; 0: default value set by wfdsrc element, other: user define value.\n\ jitter buffer latency=10\n\ @@ -271,11 +266,11 @@ audio volume element =\n\ \n\ audio sink element = pulsesink\n\ \n\ -video parser element = h264parse\n\ +video h264 parser element = h264parse\n\ \n\ video capssetter element = capssetter\n\ \n\ -video decoder element = avdec_h264;sprddec_h264;omxh264dec\n\ +video h264_decoder element = avdec_h264;sprddec_h264;omxh264dec\n\ \n\ video converter element =\n\ \n\ diff --git a/src/include/mm_wfd_sink_priv.h b/src/include/mm_wfd_sink_priv.h index 8af4262..5830683 100644 --- a/src/include/mm_wfd_sink_priv.h +++ b/src/include/mm_wfd_sink_priv.h @@ -74,9 +74,9 @@ enum WFDSinkVideoDecodeBinElementID { WFD_SINK_V_D_BIN = 0, /* NOTE : WFD_SINK_V_D_BIN should be zero */ WFD_SINK_V_D_QUEUE, WFD_SINK_V_D_HDCP, - WFD_SINK_V_D_PARSE, + WFD_SINK_V_D_H264_PARSE, WFD_SINK_V_D_CAPSSETTER, - WFD_SINK_V_D_DEC, + WFD_SINK_V_D_H264_DEC, WFD_SINK_V_D_NUM }; diff --git a/src/include/mm_wfd_sink_util.h b/src/include/mm_wfd_sink_util.h old mode 100755 new mode 100644 index 870982a..f3d6165 --- a/src/include/mm_wfd_sink_util.h +++ b/src/include/mm_wfd_sink_util.h @@ -112,7 +112,7 @@ mm_wfd_sink_util_add_pad_probe_for_checking_first_buffer(GstPad *pad, GstElement #define MMWFDSINK_PAD_PROBE(x_wfd_sink, x_pad, x_element, x_pad_name) \ if (x_wfd_sink) { \ - if (x_wfd_sink->ini.enable_pad_probe) { \ + if (x_wfd_sink->ini.trace_buffers) { \ mm_wfd_sink_util_add_pad_probe(x_pad, x_element, (const gchar*)x_pad_name); \ } else {\ mm_wfd_sink_util_add_pad_probe_for_checking_first_buffer (x_pad, x_element, (const gchar*)x_pad_name); \ @@ -123,7 +123,7 @@ void mm_wfd_sink_util_add_pad_probe_for_data_dump(GstElement *element, const gchar *pad_name); #define MMWFDSINK_TS_DATA_DUMP(x_wfd_sink, x_element, x_pad_name) \ - if (x_wfd_sink && x_wfd_sink->ini.enable_ts_data_dump) { \ + if (x_wfd_sink && x_wfd_sink->ini.dump_ts_data) { \ mm_wfd_sink_util_add_pad_probe_for_data_dump (x_element, (const gchar*)x_pad_name); \ } diff --git a/src/mm_wfd_sink_ini.c b/src/mm_wfd_sink_ini.c index 247f84f..c938e4e 100644 --- a/src/mm_wfd_sink_ini.c +++ b/src/mm_wfd_sink_ini.c @@ -29,6 +29,20 @@ #include "mm_wfd_sink_dlog.h" #include "mm_wfd_sink_ini.h" +/*Default sink ini values*/ +/* General*/ +#define DEFAULT_ENABLE_RM TRUE + +/* Debug */ +#define DEFAULT_GENERATE_DOT FALSE +#define DEFAULT_TRACE_BUFFERS FALSE +#define DEFAULT_TRACE_BUFFERS_OF_WFDSRC FALSE +#define DEFAULT_DUMP_TS_DATA FALSE + +/* Pipeline */ +#define DEFAULT_NAME_OF_VIDEO_H264_PARSER "" +#define DEFAULT_NAME_OF_VIDEO_H264_DECODER "" + static gboolean loaded = FALSE; /* global variables here */ @@ -123,11 +137,9 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) MM_WFD_SINK_INI_GET_STRING(dict, ini->gst_param[2], "general:gstparam3", DEFAULT_GST_PARAM); MM_WFD_SINK_INI_GET_STRING(dict, ini->gst_param[3], "general:gstparam4", DEFAULT_GST_PARAM); MM_WFD_SINK_INI_GET_STRING(dict, ini->gst_param[4], "general:gstparam5", DEFAULT_GST_PARAM); - ini->generate_dot = iniparser_getboolean(dict, "general:generate dot", DEFAULT_GENERATE_DOT); - ini->enable_pad_probe = iniparser_getboolean(dict, "general:enable pad probe", DEFAULT_ENABLE_PAD_PROBE); ini->state_change_timeout = iniparser_getint(dict, "general:state change timeout", DEFAULT_STATE_CHANGE_TIMEOUT); ini->set_debug_property = iniparser_getboolean(dict, "general:set debug property", DEFAULT_SET_DEBUG_PROPERTY); - ini->enable_asm = iniparser_getboolean(dict, "general:enable asm", DEFAULT_ENABLE_ASM); + ini->enable_rm = iniparser_getboolean(dict, "general:enable rm", DEFAULT_ENABLE_RM); ini->jitter_buffer_latency = iniparser_getint(dict, "general:jitter buffer latency", DEFAULT_JITTER_BUFFER_LATENCY); ini->enable_retransmission = iniparser_getboolean(dict, "general:enable retransmission", DEFAULT_ENABLE_RETRANSMISSION); ini->enable_reset_basetime = iniparser_getboolean(dict, "general:enable reset basetime", DEFAULT_ENABLE_RESET_BASETIME); @@ -135,9 +147,12 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) ini->sink_ts_offset = iniparser_getint(dict, "general:sink ts offset", DEFAULT_SINK_TS_OFFSET); ini->audio_sink_async = iniparser_getboolean(dict, "general:audio sink async", DEFAULT_AUDIO_SINK_ASYNC); ini->video_sink_async = iniparser_getboolean(dict, "general:video sink async", DEFAULT_VIDEO_SINK_ASYNC); - ini->enable_ts_data_dump = iniparser_getboolean(dict, "general:enable ts data dump", DEFAULT_ENABLE_TS_DATA_DUMP); - ini->enable_wfdsrc_pad_probe = iniparser_getboolean(dict, "general:enable wfdsrc pad probe", DEFAULT_ENABLE_WFDRTSPSRC_PAD_PROBE); + /* debug */ + ini->generate_dot = iniparser_getboolean(dict, "debug:generate dot", DEFAULT_GENERATE_DOT); + ini->trace_buffers = iniparser_getboolean(dict, "debug:trace buffers", DEFAULT_TRACE_BUFFERS); + ini->trace_buffers_of_wfdsrc = iniparser_getboolean(dict, "debug:trace buffers of wfdsrc", DEFAULT_TRACE_BUFFERS_OF_WFDSRC); + ini->dump_ts_data = iniparser_getboolean(dict, "debug:dump ts data", DEFAULT_DUMP_TS_DATA); /* pipeline */ MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_source, "pipeline:wfdsrc element", DEFAULT_NAME_OF_SOURCE); @@ -153,9 +168,9 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) 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_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_parser, "pipeline:video parser element", DEFAULT_NAME_OF_VIDEO_PARSER); + 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_decoder, "pipeline:video decoder element", DEFAULT_NAME_OF_VIDEO_DECODER); + 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_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); @@ -186,7 +201,7 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) ini->hdcp_content_protection = iniparser_getint(dict, "hdcp param:hdcp content protection", DEFAULT_HDCP_CONTENT_PROTECTION); ini->hdcp_port_no = iniparser_getint(dict, "hdcp param:hdcp port no", DEFAULT_HDCP_PORT_NO); } else { /* if dict is not available just fill the structure with default value */ - wfd_sink_error("failed to load ini. using hardcoded default\n"); + wfd_sink_error("failed to load ini. using hardcoded default"); /* general */ strncpy(ini->gst_param[0], DEFAULT_GST_PARAM, WFD_SINK_INI_MAX_STRLEN - 1); @@ -194,18 +209,20 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) strncpy(ini->gst_param[2], DEFAULT_GST_PARAM, WFD_SINK_INI_MAX_STRLEN - 1); strncpy(ini->gst_param[3], DEFAULT_GST_PARAM, WFD_SINK_INI_MAX_STRLEN - 1); strncpy(ini->gst_param[4], DEFAULT_GST_PARAM, WFD_SINK_INI_MAX_STRLEN - 1); - ini->generate_dot = DEFAULT_GENERATE_DOT; - ini->enable_pad_probe = DEFAULT_ENABLE_PAD_PROBE; ini->state_change_timeout = DEFAULT_STATE_CHANGE_TIMEOUT; ini->set_debug_property = DEFAULT_SET_DEBUG_PROPERTY; - ini->enable_asm = DEFAULT_ENABLE_ASM; + ini->enable_rm = DEFAULT_ENABLE_RM; ini->jitter_buffer_latency = DEFAULT_JITTER_BUFFER_LATENCY; ini->enable_retransmission = DEFAULT_ENABLE_RETRANSMISSION; ini->enable_reset_basetime = DEFAULT_ENABLE_RESET_BASETIME; ini->video_sink_max_lateness = DEFAULT_VIDEO_SINK_MAX_LATENESS; ini->sink_ts_offset = DEFAULT_SINK_TS_OFFSET; - ini->enable_ts_data_dump = DEFAULT_ENABLE_TS_DATA_DUMP; - ini->enable_wfdsrc_pad_probe = DEFAULT_ENABLE_WFDRTSPSRC_PAD_PROBE; + + /* debug */ + ini->generate_dot = DEFAULT_GENERATE_DOT; + ini->trace_buffers = DEFAULT_TRACE_BUFFERS; + ini->trace_buffers_of_wfdsrc = DEFAULT_TRACE_BUFFERS_OF_WFDSRC; + ini->dump_ts_data = DEFAULT_DUMP_TS_DATA; /* pipeline */ strncpy(ini->name_of_source, DEFAULT_NAME_OF_TSDEMUX, WFD_SINK_INI_MAX_STRLEN - 1); @@ -221,9 +238,9 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) strncpy(ini->name_of_audio_volume, DEFAULT_NAME_OF_AUDIO_VOLUME, 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_parser, DEFAULT_NAME_OF_VIDEO_PARSER, 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_decoder, DEFAULT_NAME_OF_VIDEO_DECODER, 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_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); @@ -260,23 +277,25 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) /* dump structure */ - wfd_sink_debug("W-Fi Display Sink Initial Settings-----------------------------------\n"); + wfd_sink_debug("Wi-Fi Display Sink Initial Settings-----------------------------------"); /* general */ - wfd_sink_debug("gst_param1 : %s\n", ini->gst_param[0]); - wfd_sink_debug("gst_param2 : %s\n", ini->gst_param[1]); - wfd_sink_debug("gst_param3 : %s\n", ini->gst_param[2]); - wfd_sink_debug("gst_param4 : %s\n", ini->gst_param[3]); - wfd_sink_debug("gst_param5 : %s\n", ini->gst_param[4]); - wfd_sink_debug("generate_dot : %d\n", ini->generate_dot); + wfd_sink_debug("gst_param1 : %s", ini->gst_param[0]); + wfd_sink_debug("gst_param2 : %s", ini->gst_param[1]); + wfd_sink_debug("gst_param3 : %s", ini->gst_param[2]); + wfd_sink_debug("gst_param4 : %s", ini->gst_param[3]); + wfd_sink_debug("gst_param5 : %s", ini->gst_param[4]); + wfd_sink_debug("enable_rm : %d", ini->enable_rm); + + /* debug */ + wfd_sink_debug("generate_dot : %d", ini->generate_dot); if (ini->generate_dot == TRUE) { - wfd_sink_debug("generate_dot is TRUE, dot file will be stored into /tmp/\n"); + wfd_sink_debug("generate_dot is TRUE, dot file will be stored into /tmp/"); g_setenv("GST_DEBUG_DUMP_DOT_DIR", "/tmp/", FALSE); } - wfd_sink_debug("enable_pad_probe : %d\n", ini->enable_pad_probe); + wfd_sink_debug("trace_buffers : %d", ini->trace_buffers); wfd_sink_debug("state_change_timeout(sec) : %d\n", ini->state_change_timeout); wfd_sink_debug("set_debug_property : %d\n", ini->set_debug_property); - wfd_sink_debug("enable_asm : %d\n", ini->enable_asm); wfd_sink_debug("jitter_buffer_latency(msec) : %d\n", ini->jitter_buffer_latency); wfd_sink_debug("enable_retransmission : %d\n", ini->enable_retransmission); wfd_sink_debug("enable_reset_basetime : %d\n", ini->enable_reset_basetime); @@ -284,30 +303,30 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) wfd_sink_debug("sink_ts_offset(nsec) : %d\n", ini->sink_ts_offset); wfd_sink_debug("audio_sink_async : %d\n", ini->audio_sink_async); wfd_sink_debug("video_sink_async : %d\n", ini->video_sink_async); - wfd_sink_debug("enable_ts_data_dump : %d\n", ini->enable_ts_data_dump); - wfd_sink_debug("enable_wfdsrc_pad_probe : %d\n", ini->enable_wfdsrc_pad_probe); + wfd_sink_debug("trace_buffers_of_wfdsrc : %d", ini->trace_buffers_of_wfdsrc); + wfd_sink_debug("dump_ts_data : %d", ini->dump_ts_data); /* pipeline */ - wfd_sink_debug("name_of_source : %s\n", ini->name_of_source); - wfd_sink_debug("name_of_tsdemux : %s\n", ini->name_of_tsdemux); - wfd_sink_debug("name_of_audio_hdcp : %s\n", ini->name_of_audio_hdcp); - wfd_sink_debug("name_of_aac_parser : %s\n", ini->name_of_aac_parser); - wfd_sink_debug("name_of_aac_decoder : %s\n", ini->name_of_aac_decoder); - wfd_sink_debug("name_of_ac3_parser : %s\n", ini->name_of_ac3_parser); - wfd_sink_debug("name_of_ac3_decoder : %s\n", ini->name_of_ac3_decoder); - wfd_sink_debug("name_of_lpcm_converter : %s\n", ini->name_of_lpcm_converter); - wfd_sink_debug("name_of_lpcm_filter : %s\n", ini->name_of_lpcm_filter); - wfd_sink_debug("name_of_audio_resampler : %s\n", ini->name_of_audio_resampler); - wfd_sink_debug("name_of_audio_volume : %s\n", ini->name_of_audio_volume); - wfd_sink_debug("name_of_audio_sink : %s\n", ini->name_of_audio_sink); - wfd_sink_debug("name_of_video_hdcp : %s\n", ini->name_of_video_hdcp); - wfd_sink_debug("name_of_video_parser : %s\n", ini->name_of_video_parser); + wfd_sink_debug("name_of_source : %s", ini->name_of_source); + wfd_sink_debug("name_of_tsdemux : %s", ini->name_of_tsdemux); + wfd_sink_debug("name_of_audio_hdcp : %s", ini->name_of_audio_hdcp); + wfd_sink_debug("name_of_aac_parser : %s", ini->name_of_aac_parser); + wfd_sink_debug("name_of_aac_decoder : %s", ini->name_of_aac_decoder); + wfd_sink_debug("name_of_ac3_parser : %s", ini->name_of_ac3_parser); + wfd_sink_debug("name_of_ac3_decoder : %s", ini->name_of_ac3_decoder); + wfd_sink_debug("name_of_lpcm_converter : %s", ini->name_of_lpcm_converter); + wfd_sink_debug("name_of_lpcm_filter : %s", ini->name_of_lpcm_filter); + wfd_sink_debug("name_of_audio_resampler : %s", ini->name_of_audio_resampler); + wfd_sink_debug("name_of_audio_volume : %s", ini->name_of_audio_volume); + 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_decoder : %s\n", ini->name_of_video_decoder); - wfd_sink_debug("name_of_video_converter : %s\n", ini->name_of_video_converter); - wfd_sink_debug("name_of_video_filter : %s\n", ini->name_of_video_filter); - wfd_sink_debug("name_of_video_sink : %s\n", ini->name_of_video_sink); - wfd_sink_debug("name_of_video_evas_sink : %s\n", ini->name_of_video_evas_sink); + wfd_sink_debug("name_of_video_h264_decoder : %s", ini->name_of_video_h264_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); + wfd_sink_debug("name_of_video_evas_sink : %s", ini->name_of_video_evas_sink); /* audio parameter*/ wfd_sink_debug("audio_codec : %x\n", ini->audio_codec); @@ -334,7 +353,7 @@ mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path) wfd_sink_debug("hdcp_content_protection : %x\n", ini->hdcp_content_protection); wfd_sink_debug("hdcp_port_no : %d\n", ini->hdcp_port_no); - wfd_sink_debug("---------------------------------------------------\n"); + wfd_sink_debug("---------------------------------------------------"); loaded = TRUE; diff --git a/src/mm_wfd_sink_priv.c b/src/mm_wfd_sink_priv.c index a2e2b88..f19ecad 100644 --- a/src/mm_wfd_sink_priv.c +++ b/src/mm_wfd_sink_priv.c @@ -1859,9 +1859,11 @@ static int __mm_wfd_sink_prepare_source(mm_wfd_sink_t *wfd_sink, GstElement *wfd klass = G_OBJECT_GET_CLASS(G_OBJECT(wfdsrc)); g_object_set(G_OBJECT(wfdsrc), "debug", wfd_sink->ini.set_debug_property, NULL); - g_object_set(G_OBJECT(wfdsrc), "enable-pad-probe", wfd_sink->ini.enable_wfdsrc_pad_probe, NULL); + g_object_set(G_OBJECT(wfdsrc), "enable-pad-probe", wfd_sink->ini.trace_buffers_of_wfdsrc, NULL); if (g_object_class_find_property(klass, "udp-buffer-size")) g_object_set(G_OBJECT(wfdsrc), "udp-buffer-size", 2097152, NULL); + if (g_object_class_find_property(klass, "trace-buffers")) + g_object_set(G_OBJECT(wfdsrc), "trace-buffers", wfd_sink->ini.trace_buffers, NULL); if (g_object_class_find_property(klass, "do-request")) g_object_set(G_OBJECT(wfdsrc), "do-request", wfd_sink->ini.enable_retransmission, NULL); if (g_object_class_find_property(klass, "latency")) @@ -2782,8 +2784,8 @@ int __mm_wfd_sink_link_video_decodebin(mm_wfd_sink_t *wfd_sink) /* check video codec */ switch (wfd_sink->stream_info.video_stream_info.codec) { case MM_WFD_SINK_VIDEO_CODEC_H264: - if (v_decodebin[WFD_SINK_V_D_PARSE].gst) - element_bucket = g_list_append(element_bucket, &v_decodebin[WFD_SINK_V_D_PARSE]); + if (v_decodebin[WFD_SINK_V_D_H264_PARSE].gst) + element_bucket = g_list_append(element_bucket, &v_decodebin[WFD_SINK_V_D_H264_PARSE]); if (v_decodebin[WFD_SINK_V_D_CAPSSETTER].gst) { GstCaps *caps = NULL; @@ -2795,8 +2797,8 @@ int __mm_wfd_sink_link_video_decodebin(mm_wfd_sink_t *wfd_sink) g_object_set(G_OBJECT(v_decodebin[WFD_SINK_V_D_CAPSSETTER].gst), "caps", caps, NULL); gst_object_unref(GST_OBJECT(caps)); } - if (v_decodebin[WFD_SINK_V_D_DEC].gst) - element_bucket = g_list_append(element_bucket, &v_decodebin[WFD_SINK_V_D_DEC]); + if (v_decodebin[WFD_SINK_V_D_H264_DEC].gst) + element_bucket = g_list_append(element_bucket, &v_decodebin[WFD_SINK_V_D_H264_DEC]); break; default: @@ -3191,9 +3193,9 @@ static int __mm_wfd_sink_create_video_decodebin(mm_wfd_sink_t *wfd_sink) if (video_codec & WFD_VIDEO_H264) { /* create parser */ - MMWFDSINK_CREATE_ELEMENT(v_decodebin, WFD_SINK_V_D_PARSE, wfd_sink->ini.name_of_video_parser, "video_parser", FALSE); - MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_PARSE].gst, "sink"); - MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_PARSE].gst, "src"); + MMWFDSINK_CREATE_ELEMENT(v_decodebin, WFD_SINK_V_D_H264_PARSE, wfd_sink->ini.name_of_video_h264_parser, "video_h264_parser", FALSE); + MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_H264_PARSE].gst, "sink"); + MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_H264_PARSE].gst, "src"); /* create capssetter */ MMWFDSINK_CREATE_ELEMENT(v_decodebin, WFD_SINK_V_D_CAPSSETTER, wfd_sink->ini.name_of_video_capssetter, "video_capssetter", FALSE); @@ -3201,11 +3203,11 @@ static int __mm_wfd_sink_create_video_decodebin(mm_wfd_sink_t *wfd_sink) MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_CAPSSETTER].gst, "src"); /* create dec */ - MMWFDSINK_CREATE_ELEMENT(v_decodebin, WFD_SINK_V_D_DEC, wfd_sink->ini.name_of_video_decoder, "video_dec", FALSE); - MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_DEC].gst, "sink"); - MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_DEC].gst, "src"); - if (v_decodebin[WFD_SINK_V_D_DEC].gst) { - if (MM_ERROR_NONE != __mm_wfd_sink_prepare_videodec(wfd_sink, v_decodebin[WFD_SINK_V_D_DEC].gst)) { + MMWFDSINK_CREATE_ELEMENT(v_decodebin, WFD_SINK_V_D_H264_DEC, wfd_sink->ini.name_of_video_h264_decoder, "video_h264_dec", FALSE); + MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_H264_DEC].gst, "sink"); + MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_decodebin[WFD_SINK_V_D_H264_DEC].gst, "src"); + if (v_decodebin[WFD_SINK_V_D_H264_DEC].gst) { + if (MM_ERROR_NONE != __mm_wfd_sink_prepare_videodec(wfd_sink, v_decodebin[WFD_SINK_V_D_H264_DEC].gst)) { wfd_sink_error("failed to set video decoder property..."); goto CREATE_ERROR; } -- 2.7.4