GNOME Bugzilla – Bug 363164
Become a nice tickless person
Last modified: 2007-03-30 02:37:41 UTC
Obviously, that's not very useful when playing a film, as the machine will be busy anyway, but we should be tickless when not playing anything (or when paused).
See: http://primates.ximian.com/~federico/news-2006-09.html#polling
Culprit 1: gui_update_cb() in totem.c Only updates the volume to match what's in the backend. We should use property notifies and clean it up a bit Culprit 2: bacon_video_widget_tick_send() in bacon-video-widget-xine.c We should disable it when we close the files, and restart when we open a new one.
Probably need to figure out how to avoid wake ups when paused as well, in both the GStreamer and the xine-lib backends.
Culprit 1 is dead. 2006-11-27 Bastien Nocera <hadess@hadess.net> * src/backend/bacon-video-widget-gst-0.10.c: (bacon_video_widget_class_init), (bacon_video_widget_get_property), (bacon_video_widget_set_tv_out), (bacon_video_widget_can_set_volume), (bacon_video_widget_set_volume), (bacon_video_widget_set_show_visuals): * src/backend/bacon-video-widget-xine.c: (bacon_video_widget_class_init), (bacon_video_widget_init), (bacon_video_widget_get_property), (bacon_video_widget_set_volume), (bacon_video_widget_set_tv_out): * src/backend/bacon-video-widget.h: * src/totem-preferences.c: (on_tvout_toggled): * src/totem.c: (volume_notify_cb), (totem_callback_connect), (video_widget_create): Remove the TV-Out restart dialogue bits, both GStreamer and xine-lib can do without (Helps: 322226), Remove the need for update_gui_cb polling so that we don't wake Totem up when not playing anything (Helps: #363164)
2007-03-30 Bastien Nocera <hadess@hadess.net> * src/backend/bacon-video-widget-gst-0.10.c: (bvw_bus_message_cb), (got_time_tick), (bacon_video_widget_close), (bacon_video_widget_is_seekable): * src/backend/bacon-video-widget-xine.c: (bacon_video_widget_init), (setup_config), (bacon_video_widget_idle_signal), (bacon_video_widget_unrealize), (bacon_video_widget_new), (bacon_video_widget_reconfigure_tick), (bacon_video_widget_tick_send), (bacon_video_widget_open_with_subtitle), (bacon_video_widget_play), (bacon_video_widget_stop), (bacon_video_widget_close), (bacon_video_widget_pause): * src/totem-private.h: * src/totem.c: (update_skip_to), (totem_action_set_mrl_with_warning), (update_seekable), (update_current_time), (property_notify_cb), (totem_action_skip_to): Don't run the ticks when paused or stopped, Update seekable only when the value has changed in the backend, not for every tick (Closes: #363164)