diff --git a/modules/access/cdda/access.c b/modules/access/cdda/access.c index 2b053ca4142dfbc39d86d7d6d917105703535f28..d11c186fd70ace5e635ed17cfea01836d81aa96b 100644 --- a/modules/access/cdda/access.c +++ b/modules/access/cdda/access.c @@ -579,9 +579,11 @@ static int CDDAControl( access_t *p_access, int i_query, va_list args ) for( i = 0; i < p_cdda->i_titles; i++ ) { - if ( p_cdda->p_title[i] ) + if ( p_cdda->p_title[i] ) { (*ppp_title)[i] = - vlc_input_title_Duplicate( p_cdda->p_title[i] ); + vlc_input_title_Duplicate( p_cdda->p_title[i] ); + } + } break; } diff --git a/modules/access/cdda/info.c b/modules/access/cdda/info.c index 1b2430a2e82487d03c619da9ba1db50c07ff8521..05949b6077c483fafd5b9d2579d2531a161c5b89 100644 --- a/modules/access/cdda/info.c +++ b/modules/access/cdda/info.c @@ -892,8 +892,9 @@ CDDAFixupPlaylist( access_t *p_access, cdda_data_t *p_cdda, p_cdda->i_titles = 1; p_access->info.i_size = - (p_cdda->lsn[p_cdda->i_track] - - p_cdda->lsn[i_first_track+1]) * (int64_t) CDIO_CD_FRAMESIZE_RAW; + (p_cdda->lsn[p_cdda->i_track-1] + - p_cdda->lsn[i_first_track]) * (int64_t) CDIO_CD_FRAMESIZE_RAW; + p_access->info.i_update |= INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE; p_item->input.i_duration = (p_cdda->lsn[p_cdda->i_track] - p_cdda->lsn[i_first_track+1]) / CDIO_CD_FRAMES_PER_SEC; @@ -921,12 +922,13 @@ CDDAFixupPlaylist( access_t *p_access, cdda_data_t *p_cdda, i_track, VLC_TRUE ); } p_cdda->i_titles = p_cdda->i_tracks; /* should be +1 */ - p_access->info.i_size = - (p_cdda->lsn[i_first_track + p_cdda->i_tracks] - - p_cdda->lsn[i_first_track]) * (int64_t) CDIO_CD_FRAMESIZE_RAW; + p_access->info.i_size = + (p_cdda->lsn[p_cdda->i_tracks] + - p_cdda->lsn[0]) * (int64_t) CDIO_CD_FRAMESIZE_RAW; + p_access->info.i_update |= INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE; p_item->input.i_duration = - (p_cdda->lsn[i_first_track + p_cdda->i_tracks] - - p_cdda->lsn[i_first_track]) / CDIO_CD_FRAMES_PER_SEC; + (p_cdda->lsn[p_cdda->i_tracks] + - p_cdda->lsn[0]) / CDIO_CD_FRAMES_PER_SEC; } if( b_play )