[Bug 768586] glimagesink: on Raspberry Pi seems to get elected by playbin even if it does not support set_window_handle

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Jul 8 18:20:56 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=768586

--- Comment #7 from rolfofsaxony at gmail.com ---
(In reply to Nicolas Dufresne (stormer) from comment #6)
> To help you solving this issue, the NEEDIǸFO means we need to know which
> display sink was selected by playbin. You should also try setting one, e.g.:
> 
>   ximagesink = gst_element_factory_make ("ximagsink", None)
>   self.player.set_property('video-sink', ximagesink)
> 
> When done, report the results, so we can address your issue properly.

That cracked it, in this circumstance.
However the fact remains that, the issue still remains, in that using 'playbin'
on its own does work on other platforms.
This problem also arises when using
"com.sun.star.comp.avmedia.Manager_GStreamer" in LibreOffice.

Having included ximagesink in the playbin pipeline, I print out the value of
the ximagesink object and its methods and got this, if it helps:

<__main__.GstXImageSink object at 0x74539828 (GstXImageSink at 0x108cff8)>
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dict__', '__doc__',
'__eq__', '__format__', '__gdoc__', '__ge__', '__getattribute__',
'__gpointer__', '__grefcount__', '__gsignals__', '__gt__', '__gtype__',
'__hash__', '__info__', '__init__', '__le__', '__lt__', '__module__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_force_floating',
'_gst_reserved', '_ref', '_ref_sink', '_unref', '_unsupported_data_method',
'_unsupported_method', 'abort_state', 'add_control_binding', 'add_metadata',
'add_pad', 'add_pad_template', 'add_static_metadata', 'base_time',
'bind_property', 'bind_property_full', 'bus', 'can_activate_pull',
'can_activate_push', 'center_rect', 'chain', 'change_state',
'check_uniqueness', 'clock', 'clock_id', 'compat_control', 'connect',
'connect_after', 'connect_data', 'connect_object', 'connect_object_after',
'continue_state', 'control_bindings', 'control_rate', 'create_all_pads',
'current_state', 'default_deep_notify', 'default_error', 'disconnect',
'disconnect_by_func', 'do_activate_pull', 'do_change_state', 'do_deep_notify',
'do_event', 'do_fixate', 'do_get_caps', 'do_get_state', 'do_get_times',
'do_no_more_pads', 'do_pad_added', 'do_pad_removed', 'do_post_message',
'do_prepare', 'do_prepare_list', 'do_preroll', 'do_propose_allocation',
'do_provide_clock', 'do_query', 'do_release_pad', 'do_render',
'do_render_list', 'do_send_event', 'do_set_bus', 'do_set_caps', 'do_set_clock',
'do_set_context', 'do_set_state', 'do_show_frame', 'do_start',
'do_state_changed', 'do_stop', 'do_unlock', 'do_unlock_stop', 'do_wait_event',
'element', 'emit', 'emit_stop_by_name', 'eos', 'event_get_type',
'event_parse_command', 'event_parse_key_event',
'event_parse_mouse_button_event', 'event_parse_mouse_move_event', 'expose',
'find_property', 'flags', 'flushing', 'force_floating', 'freeze_notify',
'g_type_instance', 'get_base_time', 'get_blocksize', 'get_bus', 'get_clock',
'get_compatible_pad', 'get_compatible_pad_template', 'get_control_binding',
'get_control_rate', 'get_data', 'get_factory', 'get_g_value_array',
'get_last_sample', 'get_latency', 'get_max_bitrate', 'get_max_lateness',
'get_metadata', 'get_name', 'get_pad_template', 'get_pad_template_list',
'get_parent', 'get_path_string', 'get_properties', 'get_property', 'get_qdata',
'get_render_delay', 'get_request_pad', 'get_start_time', 'get_state',
'get_static_pad', 'get_sync', 'get_throttle_time', 'get_ts_offset',
'get_value', 'get_value_array', 'got_window_handle', 'handle_events',
'handler_block', 'handler_block_by_func', 'handler_disconnect',
'handler_is_connected', 'handler_unblock', 'handler_unblock_by_func',
'has_active_control_bindings', 'has_ancestor', 'have_newsegment',
'have_preroll', 'height', 'install_properties', 'install_property',
'interface_find_property', 'interface_install_property',
'interface_list_properties', 'is_async_enabled', 'is_floating',
'is_last_sample_enabled', 'is_locked_state', 'is_qos_enabled', 'iterate_pads',
'iterate_sink_pads', 'iterate_src_pads', 'last_return', 'last_sync', 'link',
'link_filtered', 'link_pads', 'link_pads_filtered', 'link_pads_full',
'list_properties', 'lock', 'lost_state', 'make_from_uri', 'max_lateness',
'message_full', 'message_get_type', 'message_new_angles_changed',
'message_new_commands_changed', 'message_new_mouse_over',
'message_parse_angles_changed', 'message_parse_mouse_over', 'name',
'need_preroll', 'new', 'next_state', 'no_more_pads', 'notify',
'notify_by_pspec', 'numpads', 'numsinkpads', 'numsrcpads', 'object', 'offset',
'override_property', 'pad_mode', 'pads', 'pads_cookie', 'parent',
'pending_state', 'playing_async', 'post_message', 'prepare_window_handle',
'preroll_cond', 'preroll_lock', 'priv', 'props', 'provide_clock', 'qdata',
'query', 'query_convert', 'query_duration', 'query_get_type', 'query_latency',
'query_new_angles', 'query_new_commands', 'query_parse_angles',
'query_parse_commands_length', 'query_parse_commands_nth', 'query_position',
'query_set_angles', 'query_set_commandsv', 'ref', 'ref_count', 'ref_sink',
'register', 'release_request_pad', 'remove_control_binding', 'remove_pad',
'replace', 'replace_data', 'replace_qdata', 'request_pad', 'run_dispose',
'running', 'seek', 'seek_simple', 'segment', 'send_command', 'send_event',
'send_key_event', 'send_mouse_event', 'set_async_enabled', 'set_base_time',
'set_blocksize', 'set_bus', 'set_clock', 'set_context',
'set_control_binding_disabled', 'set_control_bindings_disabled',
'set_control_rate', 'set_data', 'set_last_sample_enabled', 'set_locked_state',
'set_max_bitrate', 'set_max_lateness', 'set_metadata', 'set_name',
'set_parent', 'set_properties', 'set_property', 'set_qos_enabled',
'set_render_delay', 'set_render_rectangle', 'set_start_time', 'set_state',
'set_static_metadata', 'set_sync', 'set_throttle_time', 'set_ts_offset',
'set_window_handle', 'sinkpad', 'sinkpads', 'srcpads', 'start_time',
'state_change_return_get_name', 'state_cond', 'state_cookie', 'state_get_name',
'state_lock', 'steal_data', 'steal_qdata', 'stop_emission',
'stop_emission_by_name', 'suggest_next_sync', 'sync', 'sync_state_with_parent',
'sync_values', 'target_state', 'thaw_notify', 'unlink', 'unlink_pads',
'unparent', 'unref', 'wait', 'wait_clock', 'wait_preroll', 'watch_closure',
'weak_ref', 'width']
('Window Id:', 25166148)

I have also attached a new version of my sample code that now functions on
Raspbian Jessie and Linux Mint 17.

Let me know if there is anything else that you require and I'll endeavour to
provide it, tomorrow.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list