/***************************************************************************** * Close: frees unused data *****************************************************************************/ static void Close( vlc_object_t * p_this ) { demux_t *p_demux = (demux_t*)p_this; demux_sys_t *p_sys = p_demux->p_sys; if( p_sys->p_current_block ) block_Release( p_sys->p_current_block ); for( int i = 0; i < p_sys->i_seekpoint; i++ ) free(p_sys->seekpoint[i]); TAB_CLEAN( p_sys->i_seekpoint, p_sys->seekpoint ); for( int i = 0; i < p_sys->i_attachments; i++ ) vlc_input_attachment_Delete( p_sys->attachments[i] ); TAB_CLEAN( p_sys->i_attachments, p_sys->attachments); for( int i = 0; i < p_sys->i_title_seekpoints; i++ ) vlc_seekpoint_Delete( p_sys->pp_title_seekpoints[i] ); TAB_CLEAN( p_sys->i_title_seekpoints, p_sys->pp_title_seekpoints ); /* Delete the decoder */ if( p_sys->p_packetizer ) demux_PacketizerDestroy( p_sys->p_packetizer ); if( p_sys->p_meta ) vlc_meta_Delete( p_sys->p_meta ); free( p_sys ); }
void BookmarksDialog::update() { if ( b_ignore_updates ) return; input_thread_t *p_input = THEMIM->getInput(); if( !p_input ) return; seekpoint_t **pp_bookmarks; int i_bookmarks = 0; if( bookmarksList->topLevelItemCount() > 0 ) { bookmarksList->model()->removeRows( 0, bookmarksList->topLevelItemCount() ); } if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, &i_bookmarks ) != VLC_SUCCESS ) return; for( int i = 0; i < i_bookmarks; i++ ) { mtime_t total = pp_bookmarks[i]->i_time_offset; unsigned hours = ( total / ( CLOCK_FREQ * 3600 ) ); unsigned minutes = ( total % ( CLOCK_FREQ * 3600 ) ) / ( CLOCK_FREQ * 60 ); float seconds = ( total % ( CLOCK_FREQ * 60 ) ) / ( CLOCK_FREQ * 1. ); QStringList row; row << QString( qfu( pp_bookmarks[i]->psz_name ) ); row << qfu("-"); row << QString().sprintf( "%02u:%02u:%06.3f", hours, minutes, seconds ); QTreeWidgetItem *item = new QTreeWidgetItem( bookmarksList, row ); item->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled); bookmarksList->insertTopLevelItem( i, item ); vlc_seekpoint_Delete( pp_bookmarks[i] ); } free( pp_bookmarks ); }
void BookmarksDialog::update() { input_thread_t *p_input = THEMIM->getInput(); if( !p_input ) return; seekpoint_t **pp_bookmarks; int i_bookmarks; if( bookmarksList->topLevelItemCount() > 0 ) { bookmarksList->model()->removeRows( 0, bookmarksList->topLevelItemCount() ); } if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, &i_bookmarks ) != VLC_SUCCESS ) return; for( int i = 0; i < i_bookmarks; i++ ) { // List with the differents elements of the row QStringList row; row << QString( qfu( pp_bookmarks[i]->psz_name ) ); row << QString::number( pp_bookmarks[i]->i_byte_offset ); int total = pp_bookmarks[i]->i_time_offset/ 1000000; int hour = total / (60*60); int min = (total - hour*60*60) / 60; int sec = total - hour*60*60 - min*60; QString str; row << str.sprintf("%02d:%02d:%02d", hour, min, sec ); QTreeWidgetItem *item = new QTreeWidgetItem( bookmarksList, row ); item->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled); bookmarksList->insertTopLevelItem( i, item ); vlc_seekpoint_Delete( pp_bookmarks[i] ); } free( pp_bookmarks ); }