gchar name_of_video_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];
+ gchar name_of_video_xv_sink[WFD_SINK_INI_MAX_STRLEN];
+ gchar name_of_video_evas_sink[WFD_SINK_INI_MAX_STRLEN];
/* audio parameter for reponse of M3 request */
guint audio_codec;
#define DEFAULT_NAME_OF_VIDEO_DECODER ""
#define DEFAULT_NAME_OF_VIDEO_CONVERTER ""
#define DEFAULT_NAME_OF_VIDEO_FILTER ""
-#define DEFAULT_NAME_OF_VIDEO_SINK ""
+#define DEFAULT_NAME_OF_XV_VIDEO_SINK ""
+#define DEFAULT_NAME_OF_EVAS_VIDEO_SINK ""
/* Audio */
#define DEFAULT_AUDIO_CODEC WFD_AUDIO_LPCM | WFD_AUDIO_AAC
(char *)"display_surface_type",
MM_ATTRS_TYPE_INT,
MM_ATTRS_FLAG_RW,
- (void *) MM_DISPLAY_SURFACE_NULL,
+ (void *) MM_DISPLAY_SURFACE_X,
MM_ATTRS_VALID_TYPE_INT_RANGE,
MM_DISPLAY_SURFACE_X,
MM_DISPLAY_SURFACE_X_EXT
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_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);
+ MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_xv_sink, "pipeline:video xv sink element", DEFAULT_NAME_OF_XV_VIDEO_SINK);
+ MM_WFD_SINK_INI_GET_STRING(dict, ini->name_of_video_evas_sink, "pipeline:video evas sink element", DEFAULT_NAME_OF_EVAS_VIDEO_SINK);
/* audio parameter*/
ini->audio_codec = iniparser_getint(dict, "audio param:audio codec", DEFAULT_AUDIO_CODEC);
strncpy(ini->name_of_video_decoder, DEFAULT_NAME_OF_VIDEO_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);
+ strncpy(ini->name_of_video_xv_sink, DEFAULT_NAME_OF_XV_VIDEO_SINK, WFD_SINK_INI_MAX_STRLEN - 1);
+ strncpy(ini->name_of_video_evas_sink, DEFAULT_NAME_OF_EVAS_VIDEO_SINK, WFD_SINK_INI_MAX_STRLEN - 1);
/* audio parameter*/
ini->audio_codec = DEFAULT_AUDIO_CODEC;
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_xv_sink : %s\n", ini->name_of_video_xv_sink);
+ wfd_sink_debug("name_of_video_evas_sink : %s\n", ini->name_of_video_evas_sink);
/* audio parameter*/
wfd_sink_debug("audio_codec : %x\n", ini->audio_codec);
video filter element =
-video sink element = xvimagesink
+video xv sink element = xvimagesink
+video evas sink element = evaspixmapsink
[audio param]
Name: libmm-wfd
Summary: Multimedia Framework Wifi-Display Library
-Version: 0.2.188
+Version: 0.2.189
Release: 0
Group: System/Libraries
License: Apache-2.0
wfd_sink_return_val_if_fail(wfd_sink && wfd_sink->attrs, MM_ERROR_WFD_NOT_INITIALIZED);
/* update display surface */
- /* mm_attrs_get_int_by_name(wfd_sink->attrs, "display_surface_type", &surface_type); */
+ mm_attrs_get_int_by_name(wfd_sink->attrs, "display_surface_type", &surface_type);
wfd_sink_debug("check display surface type attribute: %d", surface_type);
mm_attrs_get_int_by_name(wfd_sink->attrs, "display_visible", &visible);
wfd_sink_debug("check display visible attribute: %d", visible);
GstPad *pad = NULL;
GstPad *ghostpad = NULL;
gint i = 0;
+ gint surface_type = MM_DISPLAY_SURFACE_X;
wfd_sink_debug_fenter();
}
/* create sink */
- MMWFDSINK_CREATE_ELEMENT(v_sinkbin, WFD_SINK_V_S_SINK, wfd_sink->ini.name_of_video_sink, "video_sink", TRUE);
+ mm_attrs_get_int_by_name(wfd_sink->attrs, "display_surface_type", &surface_type);
+
+ if(surface_type == MM_DISPLAY_SURFACE_X) {
+ MMWFDSINK_CREATE_ELEMENT(v_sinkbin, WFD_SINK_V_S_SINK, wfd_sink->ini.name_of_video_xv_sink, "video_sink", TRUE);
+ } else if(surface_type == MM_DISPLAY_SURFACE_EVAS) {
+ MMWFDSINK_CREATE_ELEMENT(v_sinkbin, WFD_SINK_V_S_SINK, wfd_sink->ini.name_of_video_evas_sink, "video_sink", TRUE);
+ } else {
+ wfd_sink_error("failed to set video sink....");
+ goto CREATE_ERROR;
+ }
+
MMWFDSINK_PAD_PROBE(wfd_sink, NULL, v_sinkbin[WFD_SINK_V_S_SINK].gst, "sink");
if (v_sinkbin[WFD_SINK_V_S_SINK].gst) {
if (MM_ERROR_NONE != __mm_wfd_sink_prepare_videosink(wfd_sink, v_sinkbin[WFD_SINK_V_S_SINK].gst)) {