+static inline void input_item_SetURI( input_item_t * p_i, char * psz_uri )
+{
+ vlc_mutex_lock( &p_i->lock );
+ if( p_i->psz_uri ) free( p_i->psz_uri );
+ p_i->psz_uri = strdup( psz_uri );
+ vlc_mutex_unlock( &p_i->lock );
+}
+
+static inline mtime_t input_item_GetDuration( input_item_t * p_i )
+{
+ vlc_mutex_lock( &p_i->lock );
+ mtime_t i_duration = p_i->i_duration;
+ vlc_mutex_unlock( &p_i->lock );
+ return i_duration;
+}
+
+static inline void input_item_SetDuration( input_item_t * p_i, mtime_t i_duration )
+{
+ vlc_bool_t send_event = VLC_FALSE;
+
+ vlc_mutex_lock( &p_i->lock );
+ if( p_i->i_duration != i_duration )
+ {
+ p_i->i_duration = i_duration;
+ send_event = VLC_TRUE;
+ }
+ vlc_mutex_unlock( &p_i->lock );
+
+ if ( send_event == VLC_TRUE )
+ {
+ vlc_event_t event;
+ event.type = vlc_InputItemDurationChanged;
+ event.u.input_item_duration_changed.new_duration = i_duration;
+ vlc_event_send( &p_i->event_manager, &event );
+ }
+
+ return;
+}
+