Name: libmm-wfd
Summary: Multimedia Framework Wifi-Display Library
-Version: 0.2.200
+Version: 0.2.201
Release: 0
Group: System/Libraries
License: Apache-2.0
WFD_VIDEO_HH_RESOLUTION
} WFDVideoNativeResolution;
-typedef enum {
- WFD_CEA_UNKNOWN = 0,
- WFD_CEA_640x480P60 = (1 << 0),
- WFD_CEA_720x480P60 = (1 << 1),
- WFD_CEA_720x480I60 = (1 << 2),
- WFD_CEA_720x576P50 = (1 << 3),
- WFD_CEA_720x576I50 = (1 << 4),
- WFD_CEA_1280x720P30 = (1 << 5),
- WFD_CEA_1280x720P60 = (1 << 6),
- WFD_CEA_1920x1080P30 = (1 << 7),
- WFD_CEA_1920x1080P60 = (1 << 8),
- WFD_CEA_1920x1080I60 = (1 << 9),
- WFD_CEA_1280x720P25 = (1 << 10),
- WFD_CEA_1280x720P50 = (1 << 11),
- WFD_CEA_1920x1080P25 = (1 << 12),
- WFD_CEA_1920x1080P50 = (1 << 13),
- WFD_CEA_1920x1080I50 = (1 << 14),
- WFD_CEA_1280x720P24 = (1 << 15),
- WFD_CEA_1920x1080P24 = (1 << 16)
-} WFDVideoCEAResolution;
+#define WFD_CEA_UNKNOWN 0
+#define WFD_CEA_640x480P60 (1 << 0)
+#define WFD_CEA_720x480P60 (1 << 1)
+#define WFD_CEA_720x480I60 (1 << 2)
+#define WFD_CEA_720x576P50 (1 << 3)
+#define WFD_CEA_720x576I50 (1 << 4)
+#define WFD_CEA_1280x720P30 (1 << 5)
+#define WFD_CEA_1280x720P60 (1 << 6)
+#define WFD_CEA_1920x1080P30 (1 << 7)
+#define WFD_CEA_1920x1080P60 (1 << 8)
+#define WFD_CEA_1920x1080I60 (1 << 9)
+#define WFD_CEA_1280x720P25 (1 << 10)
+#define WFD_CEA_1280x720P50 (1 << 11)
+#define WFD_CEA_1920x1080P25 (1 << 12)
+#define WFD_CEA_1920x1080P50 (1 << 13)
+#define WFD_CEA_1920x1080I50 (1 << 14)
+#define WFD_CEA_1280x720P24 (1 << 15)
+#define WFD_CEA_1920x1080P24 (1 << 16)
+#define WFD_CEA_3840x2160P24 (1 << 17)
+#define WFD_CEA_3840x2160P25 (1 << 18)
+#define WFD_CEA_3840x2160P30 (1 << 19)
+#define WFD_CEA_3840x2160P50 (1 << 20)
+#define WFD_CEA_3840x2160P60 (1 << 21)
+#define WFD_CEA_4096x2160P24 (1 << 22)
+#define WFD_CEA_4096x2160P25 (1 << 23)
+#define WFD_CEA_4096x2160P30 (1 << 24)
+#define WFD_CEA_4096x2160P50 (1 << 25)
+#define WFD_CEA_4096x2160P60 (1 << 26)
-typedef enum {
- WFD_VESA_UNKNOWN = 0,
- WFD_VESA_800x600P30 = (1 << 0),
- WFD_VESA_800x600P60 = (1 << 1),
- WFD_VESA_1024x768P30 = (1 << 2),
- WFD_VESA_1024x768P60 = (1 << 3),
- WFD_VESA_1152x864P30 = (1 << 4),
- WFD_VESA_1152x864P60 = (1 << 5),
- WFD_VESA_1280x768P30 = (1 << 6),
- WFD_VESA_1280x768P60 = (1 << 7),
- WFD_VESA_1280x800P30 = (1 << 8),
- WFD_VESA_1280x800P60 = (1 << 9),
- WFD_VESA_1360x768P30 = (1 << 10),
- WFD_VESA_1360x768P60 = (1 << 11),
- WFD_VESA_1366x768P30 = (1 << 12),
- WFD_VESA_1366x768P60 = (1 << 13),
- WFD_VESA_1280x1024P30 = (1 << 14),
- WFD_VESA_1280x1024P60 = (1 << 15),
- WFD_VESA_1400x1050P30 = (1 << 16),
- WFD_VESA_1400x1050P60 = (1 << 17),
- WFD_VESA_1440x900P30 = (1 << 18),
- WFD_VESA_1440x900P60 = (1 << 19),
- WFD_VESA_1600x900P30 = (1 << 20),
- WFD_VESA_1600x900P60 = (1 << 21),
- WFD_VESA_1600x1200P30 = (1 << 22),
- WFD_VESA_1600x1200P60 = (1 << 23),
- WFD_VESA_1680x1024P30 = (1 << 24),
- WFD_VESA_1680x1024P60 = (1 << 25),
- WFD_VESA_1680x1050P30 = (1 << 26),
- WFD_VESA_1680x1050P60 = (1 << 27),
- WFD_VESA_1920x1200P30 = (1 << 28),
- WFD_VESA_1920x1200P60 = (1 << 29)
-} WFDVideoVESAResolution;
+#define WFD_VESA_NONE 0
+#define WFD_VESA_800x600P30 (1 << 0)
+#define WFD_VESA_800x600P60 (1 << 1)
+#define WFD_VESA_1024x768P30 (1 << 2)
+#define WFD_VESA_1024x768P60 (1 << 3)
+#define WFD_VESA_1152x864P30 (1 << 4)
+#define WFD_VESA_1152x864P60 (1 << 5)
+#define WFD_VESA_1280x768P30 (1 << 6)
+#define WFD_VESA_1280x768P60 (1 << 7)
+#define WFD_VESA_1280x800P30 (1 << 8)
+#define WFD_VESA_1280x800P60 (1 << 9)
+#define WFD_VESA_1360x768P30 (1 << 10)
+#define WFD_VESA_1360x768P60 (1 << 11)
+#define WFD_VESA_1366x768P30 (1 << 12)
+#define WFD_VESA_1366x768P60 (1 << 13)
+#define WFD_VESA_1280x1024P30 (1 << 14)
+#define WFD_VESA_1280x1024P60 (1 << 15)
+#define WFD_VESA_1400x1050P30 (1 << 16)
+#define WFD_VESA_1400x1050P60 (1 << 17)
+#define WFD_VESA_1440x900P30 (1 << 18)
+#define WFD_VESA_1440x900P60 (1 << 19)
+#define WFD_VESA_1600x900P30 (1 << 20)
+#define WFD_VESA_1600x900P60 (1 << 21)
+#define WFD_VESA_1600x1200P30 (1 << 22)
+#define WFD_VESA_1600x1200P60 (1 << 23)
+#define WFD_VESA_1680x1024P30 (1 << 24)
+#define WFD_VESA_1680x1024P60 (1 << 25)
+#define WFD_VESA_1680x1050P30 (1 << 26)
+#define WFD_VESA_1680x1050P60 (1 << 27)
+#define WFD_VESA_1920x1200P30 (1 << 28)
+#define WFD_VESA_1920x1200P60 (1 << 29)
+#define WFD_VESA_2560x1440P30 (1 << 30)
+#define WFD_VESA_2560x1440P60 (1 << 31)
+#define WFD_VESA_2560x1600P30 (1ULL << 32)
+#define WFD_VESA_2560x1600P60 (1ULL << 33)
+
+#define WFD_HH_NONE 0
+#define WFD_HH_800x480P30 (1 << 0)
+#define WFD_HH_800x480P60 (1 << 1)
+#define WFD_HH_854x480P30 (1 << 2)
+#define WFD_HH_854x480P60 (1 << 3)
+#define WFD_HH_864x480P30 (1 << 4)
+#define WFD_HH_864x480P60 (1 << 5)
+#define WFD_HH_640x360P30 (1 << 6)
+#define WFD_HH_640x360P60 (1 << 7)
+#define WFD_HH_960x540P30 (1 << 8)
+#define WFD_HH_960x540P60 (1 << 9)
+#define WFD_HH_848x480P30 (1 << 10)
+#define WFD_HH_848x480P60 (1 << 11)
-typedef enum {
- WFD_HH_UNKNOWN = 0,
- WFD_HH_800x480P30 = (1 << 0),
- WFD_HH_800x480P60 = (1 << 1),
- WFD_HH_854x480P30 = (1 << 2),
- WFD_HH_854x480P60 = (1 << 3),
- WFD_HH_864x480P30 = (1 << 4),
- WFD_HH_864x480P60 = (1 << 5),
- WFD_HH_640x360P30 = (1 << 6),
- WFD_HH_640x360P60 = (1 << 7),
- WFD_HH_960x540P30 = (1 << 8),
- WFD_HH_960x540P60 = (1 << 9),
- WFD_HH_848x480P30 = (1 << 10),
- WFD_HH_848x480P60 = (1 << 11)
-} WFDVideoHHResolution;
typedef enum {
WFD_H264_UNKNOWN_PROFILE = 0,
typedef struct {
guint video_codec;
guint video_native_resolution;
- guint video_cea_support;
- guint video_vesa_support;
- guint video_hh_support;
+ guint64 video_cea_support;
+ guint64 video_vesa_support;
+ guint64 video_hh_support;
guint video_profile;
guint video_level;
guint video_latency;
#define DEFAULT_WFD_VIDEO_FORMATS_NATIVE_RESOLUTION 0x20
/* CEA : WFD_CEA_640x480P60 | WFD_CEA_720x480P60 |WFD_CEA_720x576P50 |WFD_CEA_1280x720P30 |
WFD_CEA_1280x720P25 | WFD_CEA_1280x720P24 */
-#define DEFAULT_WFD_VIDEO_FORMATS_CEA_SUPPORT 0x84ab
+#define DEFAULT_WFD_VIDEO_FORMATS_CEA_SUPPORT "0x84ab"
/* VESA : WFD_VESA_800x600P30 */
-#define DEFAULT_WFD_VIDEO_FORMATS_VESA_SUPPORT 0x1
+#define DEFAULT_WFD_VIDEO_FORMATS_VESA_SUPPORT "0x1"
/* HH : WFD_HH_800x480P30 | WFD_HH_854x480P30 | WFD_HH_864x480P30 | WFD_HH_640x360P30 | WFD_HH_960x540P30 | WFD_HH_848x480P30 */
-#define DEFAULT_WFD_VIDEO_FORMATS_HH_SUPPORT 0x555
+#define DEFAULT_WFD_VIDEO_FORMATS_HH_SUPPORT "0x555"
#define DEFAULT_WFD_VIDEO_FORMATS_PROFILE WFD_H264_BASE_PROFILE
#define DEFAULT_WFD_VIDEO_FORMATS_LEVEL WFD_H264_LEVEL_3_2
#define DEFAULT_WFD_VIDEO_FORMATS_LATENCY 0x0
mm_wfd_sink_ini_load(mm_wfd_sink_ini_t *ini, const char *path)
{
dictionary *dict = NULL;
+ char tempstr[WFD_SINK_INI_MAX_STRLEN] = {0,};
wfd_sink_debug_fenter();
/* video parameter*/
ini->wfd_video_formats.video_codec = iniparser_getint(dict, "wfd video formats:video codec", DEFAULT_WFD_VIDEO_FORMATS_CODEC);
ini->wfd_video_formats.video_native_resolution = iniparser_getint(dict, "wfd video formats:video native resolution", DEFAULT_WFD_VIDEO_FORMATS_NATIVE_RESOLUTION);
- ini->wfd_video_formats.video_cea_support = iniparser_getint(dict, "wfd video formats:video cea support", DEFAULT_WFD_VIDEO_FORMATS_CEA_SUPPORT);
- ini->wfd_video_formats.video_vesa_support = iniparser_getint(dict, "wfd video formats:video vesa support", DEFAULT_WFD_VIDEO_FORMATS_VESA_SUPPORT);
- ini->wfd_video_formats.video_hh_support = iniparser_getint(dict, "wfd video formats:video hh support", DEFAULT_WFD_VIDEO_FORMATS_HH_SUPPORT);
+ 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);
+ 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);
+ 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_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);
/* video parameter*/
ini->wfd_video_formats.video_codec = DEFAULT_WFD_VIDEO_FORMATS_CODEC;
ini->wfd_video_formats.video_native_resolution = DEFAULT_WFD_VIDEO_FORMATS_NATIVE_RESOLUTION;
- ini->wfd_video_formats.video_cea_support = DEFAULT_WFD_VIDEO_FORMATS_CEA_SUPPORT;
- ini->wfd_video_formats.video_vesa_support = DEFAULT_WFD_VIDEO_FORMATS_VESA_SUPPORT;
- ini->wfd_video_formats.video_hh_support = DEFAULT_WFD_VIDEO_FORMATS_HH_SUPPORT;
+ ini->wfd_video_formats.video_cea_support = strtoul(DEFAULT_WFD_VIDEO_FORMATS_CEA_SUPPORT, NULL, 16);
+ ini->wfd_video_formats.video_vesa_support = strtoul(DEFAULT_WFD_VIDEO_FORMATS_VESA_SUPPORT, NULL, 16);
+ ini->wfd_video_formats.video_hh_support = strtoul(DEFAULT_WFD_VIDEO_FORMATS_HH_SUPPORT, NULL, 16);
ini->wfd_video_formats.video_profile = DEFAULT_WFD_VIDEO_FORMATS_PROFILE;
ini->wfd_video_formats.video_level = DEFAULT_WFD_VIDEO_FORMATS_LEVEL;
ini->wfd_video_formats.video_latency = DEFAULT_WFD_VIDEO_FORMATS_LATENCY;
/* 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 : %x\n", ini->wfd_video_formats.video_cea_support);
- wfd_sink_debug("wfd_video_formats.video_vesa_support : %x\n", ini->wfd_video_formats.video_vesa_support);
- wfd_sink_debug("wfd_video_formats.video_hh_support : %x\n", ini->wfd_video_formats.video_hh_support);
+ 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_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);
/* check current wi-fi display sink state */
MMWFDSINK_CHECK_STATE(wfd_sink, MM_WFD_SINK_COMMAND_PAUSE);
- g_signal_emit_by_name(wfd_sink->pipeline->mainbin[WFD_SINK_M_SRC].gst, "pause", NULL);
+ g_signal_emit_by_name(wfd_sink->pipeline->mainbin[WFD_SINK_M_SRC].gst, "request-pause", NULL);
wfd_sink_debug_fleave();
/* check current wi-fi display sink state */
MMWFDSINK_CHECK_STATE(wfd_sink, MM_WFD_SINK_COMMAND_RESUME);
- g_signal_emit_by_name(wfd_sink->pipeline->mainbin[WFD_SINK_M_SRC].gst, "resume", NULL);
+ g_signal_emit_by_name(wfd_sink->pipeline->mainbin[WFD_SINK_M_SRC].gst, "request-resume", NULL);
wfd_sink_debug_fleave();
WFD_SINK_MANAGER_APPEND_CMD(wfd_sink, WFD_SINK_MANAGER_CMD_EXIT);
WFD_SINK_MANAGER_SIGNAL_CMD(wfd_sink);
- g_signal_emit_by_name(wfd_sink->pipeline->mainbin[WFD_SINK_M_SRC].gst, "close", NULL);
+ g_signal_emit_by_name(wfd_sink->pipeline->mainbin[WFD_SINK_M_SRC].gst, "request-close", NULL);
wfd_sink_debug_fleave();
wfd_sink_debug_fleave();
}
-static void __mm_wfd_sink_prepare_video_resolution(gint resolution, guint *CEA_resolution,
- guint *VESA_resolution, guint *HH_resolution)
+static void __mm_wfd_sink_prepare_video_resolution(gint resolution, guint64 *CEA_resolution,
+ guint64 *VESA_resolution, guint64 *HH_resolution)
{
if (resolution == MM_WFD_SINK_RESOLUTION_UNKNOWN) return;
GstStructure *wfd_content_protection = NULL;
gint hdcp_version = 0;
gint hdcp_port = 0;
- guint CEA_resolution = 0;
- guint VESA_resolution = 0;
- guint HH_resolution = 0;
+ guint64 CEA_resolution = 0;
+ guint64 VESA_resolution = 0;
+ guint64 HH_resolution = 0;
GObjectClass *klass;
wfd_sink_debug_fenter();
g_object_set(G_OBJECT(wfdsrc), "enable-pad-probe", wfd_sink->ini.trace_buffers_of_wfdsrc, NULL);
g_object_set(G_OBJECT(wfdsrc), "udp-buffer-size", 2097152, NULL);
g_object_set(G_OBJECT(wfdsrc), "latency", wfd_sink->ini.jitter_buffer_latency, NULL);
- if (g_object_class_find_property(klass, "user-agent"))
- g_object_set(G_OBJECT(wfdsrc), "user-agent", wfd_sink->ini.user_agent, NULL);
- if (g_object_class_find_property(klass, "debug")) /* for common wfdsrc */
- g_object_set(G_OBJECT(wfdsrc), "debug", wfd_sink->ini.dump_rtsp_message, NULL);
- if (g_object_class_find_property(klass, "dump-rtsp-message"))
- g_object_set(G_OBJECT(wfdsrc), "dump-rtsp-message", wfd_sink->ini.dump_rtsp_message, NULL);
+ g_object_set(G_OBJECT(wfdsrc), "user-agent", wfd_sink->ini.user_agent, NULL);
+ g_object_set(G_OBJECT(wfdsrc), "dump-rtsp-message", wfd_sink->ini.dump_rtsp_message, NULL);
if (g_object_class_find_property(klass, "dump-rtp-data"))
g_object_set(G_OBJECT(wfdsrc), "dump-rtp-data", wfd_sink->ini.dump_rtp_data, NULL);
if (g_object_class_find_property(klass, "trace-first-buffer"))
"audio_sampling_frequency", G_TYPE_UINT, wfd_sink->ini.wfd_audio_codecs.audio_sampling_frequency,
NULL);
- if (wfd_audio_codecs) {
- if (g_object_class_find_property(klass, "audio-param")) /* for common wfdsrc */
- g_object_set(G_OBJECT(wfdsrc), "audio-param", wfd_audio_codecs, NULL);
- if (g_object_class_find_property(klass, "wfd-audio-codecs"))
- g_object_set(G_OBJECT(wfdsrc), "wfd-audio-codecs", wfd_audio_codecs, NULL);
- }
+ if (wfd_audio_codecs)
+ g_object_set(G_OBJECT(wfdsrc), "wfd-audio-codecs", wfd_audio_codecs, NULL);
/* set video parameter for Wi-Fi Display session negotiation */
CEA_resolution = wfd_sink->ini.wfd_video_formats.video_cea_support;
wfd_video_formats = gst_structure_new("wfd_video_formats",
"video_codec", G_TYPE_UINT, wfd_sink->ini.wfd_video_formats.video_codec,
"video_native_resolution", G_TYPE_UINT, wfd_sink->ini.wfd_video_formats.video_native_resolution,
- "video_cea_support", G_TYPE_UINT, CEA_resolution,
- "video_vesa_support", G_TYPE_UINT, VESA_resolution,
- "video_hh_support", G_TYPE_UINT, HH_resolution,
+ "video_cea_support", G_TYPE_UINT64, CEA_resolution,
+ "video_vesa_support", G_TYPE_UINT64, VESA_resolution,
+ "video_hh_support", G_TYPE_UINT64, HH_resolution,
"video_profile", G_TYPE_UINT, wfd_sink->ini.wfd_video_formats.video_profile,
"video_level", G_TYPE_UINT, wfd_sink->ini.wfd_video_formats.video_level,
"video_latency", G_TYPE_UINT, wfd_sink->ini.wfd_video_formats.video_latency,
"video_framerate_control_support", G_TYPE_INT, wfd_sink->ini.wfd_video_formats.video_framerate_control_support,
NULL);
- if (wfd_video_formats) {
- if (g_object_class_find_property(klass, "video-param")) /* for common wfdsrc */
- g_object_set(G_OBJECT(wfdsrc), "video-param", wfd_video_formats, NULL);
- if (g_object_class_find_property(klass, "wfd-video-formats"))
- g_object_set(G_OBJECT(wfdsrc), "wfd-video-formats", wfd_video_formats, NULL);
- }
+ if (wfd_video_formats)
+ g_object_set(G_OBJECT(wfdsrc), "wfd-video-formats", wfd_video_formats, NULL);
+
/* set hdcp parameter for Wi-Fi Display session negotiation */
if (wfd_sink->ini.wfd_content_protection.enable_hdcp) {
"hdcp_port_no", G_TYPE_INT, hdcp_port,
NULL);
- if (wfd_content_protection) {
- if (g_object_class_find_property(klass, "hdcp-param")) /* for common wfdsrc */
- g_object_set(G_OBJECT(wfdsrc), "hdcp-param", wfd_content_protection, NULL);
- if (g_object_class_find_property(klass, "wfd-content-protection"))
- g_object_set(G_OBJECT(wfdsrc), "wfd-content-protection", wfd_content_protection, NULL);
- }
+ if (wfd_content_protection)
+ g_object_set(G_OBJECT(wfdsrc), "wfd-content-protection", wfd_content_protection, NULL);
}
g_signal_connect(wfdsrc, "update-media-info", G_CALLBACK(__mm_wfd_sink_update_stream_info), wfd_sink);
if (iter != NULL) {
while (!done) {
switch (gst_iterator_next(iter, (gpointer)&item)) {
- case GST_ITERATOR_OK:
- gst_element_get_state(GST_ELEMENT(item), &state, &pending, time);
-
- factory = gst_element_get_factory(item) ;
- if (factory) {
- wfd_sink_error("%s:%s : From:%s To:%s refcount : %d",
- GST_STR_NULL(GST_OBJECT_NAME(factory)),
- GST_STR_NULL(GST_ELEMENT_NAME(item)),
- gst_element_state_get_name(state),
- gst_element_state_get_name(pending),
- GST_OBJECT_REFCOUNT_VALUE(item));
- }
- gst_object_unref(item);
- item = NULL;
- break;
- case GST_ITERATOR_RESYNC:
- gst_iterator_resync(iter);
- break;
- case GST_ITERATOR_ERROR:
- done = TRUE;
- break;
- case GST_ITERATOR_DONE:
- done = TRUE;
- break;
- default:
- done = TRUE;
- break;
+ case GST_ITERATOR_OK:
+ gst_element_get_state(GST_ELEMENT(item), &state, &pending, time);
+
+ factory = gst_element_get_factory(item) ;
+ if (factory) {
+ wfd_sink_error("%s:%s : From:%s To:%s refcount : %d",
+ GST_STR_NULL(GST_OBJECT_NAME(factory)),
+ GST_STR_NULL(GST_ELEMENT_NAME(item)),
+ gst_element_state_get_name(state),
+ gst_element_state_get_name(pending),
+ GST_OBJECT_REFCOUNT_VALUE(item));
+ }
+ gst_object_unref(item);
+ item = NULL;
+ break;
+ case GST_ITERATOR_RESYNC:
+ gst_iterator_resync(iter);
+ break;
+ case GST_ITERATOR_ERROR:
+ done = TRUE;
+ break;
+ case GST_ITERATOR_DONE:
+ done = TRUE;
+ break;
+ default:
+ done = TRUE;
+ break;
}
}
}