vlc | branch: master | Thomas Guillem <[email protected]> | Thu Jul 12 11:22:11 2018 +0200| [efb7052d40a3bd2daf351f40da46c76f3d437475] | committer: Thomas Guillem
gui/qt: use INPUT_GET_FULL_TITLE_INFO Don't use INPUT_GET_TITLE_INFO that depends on a variable. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=efb7052d40a3bd2daf351f40da46c76f3d437475 --- modules/gui/qt/adapters/seekpoints.cpp | 36 ++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/modules/gui/qt/adapters/seekpoints.cpp b/modules/gui/qt/adapters/seekpoints.cpp index d40c6bf445..a75012bbf3 100644 --- a/modules/gui/qt/adapters/seekpoints.cpp +++ b/modules/gui/qt/adapters/seekpoints.cpp @@ -35,13 +35,14 @@ SeekPoints::SeekPoints( QObject *parent, intf_thread_t *p_intf_ ) : void SeekPoints::update() { - input_title_t *p_title = NULL; input_thread_t *p_input_thread = playlist_CurrentInput( THEPL ); - int i_title_id = -1; if( !p_input_thread ) { pointsList.clear(); return; } - if ( input_Control( p_input_thread, INPUT_GET_TITLE_INFO, &p_title, &i_title_id ) - != VLC_SUCCESS ) + input_title_t **pp_title = NULL, *p_title = NULL; + int i_title_count = 0; + int i_title_id = var_GetInteger( p_input_thread, "title" ); + if ( input_Control( p_input_thread, INPUT_GET_FULL_TITLE_INFO, &pp_title, + &i_title_count ) != VLC_SUCCESS ) { vlc_object_release( p_input_thread ); pointsList.clear(); @@ -50,23 +51,28 @@ void SeekPoints::update() vlc_object_release( p_input_thread ); - if( !p_title ) - return; + if( i_title_id < i_title_count ) + p_title = pp_title[i_title_id]; /* lock here too, as update event is triggered by an external thread */ - if ( !access() ) return; - pointsList.clear(); - if ( p_title->i_seekpoint > 0 ) + if( p_title && access() ) { - /* first check the last point to see if we have filled time offsets (> 0) */ - if ( p_title->seekpoint[p_title->i_seekpoint - 1]->i_time_offset > 0 ) + pointsList.clear(); + if ( p_title->i_seekpoint > 0 ) { - for ( int i=0; i<p_title->i_seekpoint ; i++ ) - pointsList << SeekPoint( p_title->seekpoint[i] ); + /* first check the last point to see if we have filled time offsets (> 0) */ + if ( p_title->seekpoint[p_title->i_seekpoint - 1]->i_time_offset > 0 ) + { + for ( int i=0; i<p_title->i_seekpoint ; i++ ) + pointsList << SeekPoint( p_title->seekpoint[i] ); + } } + release(); } - vlc_input_title_Delete( p_title ); - release(); + + for( int i = 0; i < i_title_count; i++ ) + vlc_input_title_Delete( pp_title[i] ); + free( pp_title ) ; } QList<SeekPoint> const SeekPoints::getPoints() _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
