char *psz_format;
DBusConnection *p_conn;
int i_id;
+ int i_item-changes;
};
/*****************************************************************************
if( !strncmp( "playlist-current", psz_var, 16 ) )
{ /* stores the current input item id */
p_intf->p_sys->i_id = newval.i_int;
+ p_intf->p_sys->i_item-changes = 0;
+ }
+ else
+ {
+ if( newval.i_int != p_intf->p_sys->i_id ) /* "item-change" */
+ return VLC_SUCCESS;
+ /* some variable bitrate inputs call "item-change callbacks each time
+ * their length is updated, that is several times per second. */
+ if( p_intf->p_sys->i_item-changes > 5 )
+ return VLC_SUCCESS;
+ p_intf->p_sys->i_item-changes++;
}
- else if( newval.i_int != p_intf->p_sys->i_id ) /* "item-change" */
- return VLC_SUCCESS;
playlist_t *p_playlist = pl_Yield( p_this );