Works with all burnt media, bought media is different some how. Still better then it was since it didn't work at all.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: _cdio_osx.c,v 1.34 2004/06/14 08:18:57 rocky Exp $
|
$Id: _cdio_osx.c,v 1.35 2004/06/16 04:51:29 thesin Exp $
|
||||||
|
|
||||||
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
from vcdimager code:
|
from vcdimager code:
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.34 2004/06/14 08:18:57 rocky Exp $";
|
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.35 2004/06/16 04:51:29 thesin Exp $";
|
||||||
|
|
||||||
#include <cdio/sector.h>
|
#include <cdio/sector.h>
|
||||||
#include <cdio/util.h>
|
#include <cdio/util.h>
|
||||||
@@ -121,7 +121,7 @@ getNumberOfTracks_osx( CDTOC *pTOC, int i_descriptors )
|
|||||||
{
|
{
|
||||||
i_track = pTrackDescriptors[i].point;
|
i_track = pTrackDescriptors[i].point;
|
||||||
|
|
||||||
if( i_track > CDIO_CD_MAX_TRACKS || i_track < CDIO_CD_MIN_TRACK_NO )
|
if( i_track > CDIO_CD_MAX_TRACKS || i_track < CDIO_CD_MIN_TRACK_NO || i_track == 0xA2 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
i_tracks++;
|
i_tracks++;
|
||||||
@@ -147,7 +147,7 @@ getFirstTrack_osx( CDTOC *pTOC, int i_descriptors )
|
|||||||
{
|
{
|
||||||
i_track = pTrackDescriptors[i].point;
|
i_track = pTrackDescriptors[i].point;
|
||||||
|
|
||||||
if( i_track > CDIO_CD_MAX_TRACKS || i_track < CDIO_CD_MIN_TRACK_NO )
|
if( i_track > CDIO_CD_MAX_TRACKS || i_track < CDIO_CD_MIN_TRACK_NO || i_track == 0xA2 )
|
||||||
continue;
|
continue;
|
||||||
return ( i_track );
|
return ( i_track );
|
||||||
}
|
}
|
||||||
@@ -420,8 +420,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
|
|
||||||
env->i_descriptors = CDTOCGetDescriptorCount ( env->pTOC );
|
env->i_descriptors = CDTOCGetDescriptorCount ( env->pTOC );
|
||||||
env->i_first_track = getFirstTrack_osx(env->pTOC, env->i_descriptors);
|
env->i_first_track = getFirstTrack_osx(env->pTOC, env->i_descriptors);
|
||||||
env->i_last_track = env->i_first_track +
|
env->i_last_track = getNumberOfTracks_osx(env->pTOC, env->i_descriptors);
|
||||||
getNumberOfTracks_osx(env->pTOC, env->i_descriptors);
|
|
||||||
|
|
||||||
/* Read in starting sectors */
|
/* Read in starting sectors */
|
||||||
{
|
{
|
||||||
@@ -451,7 +450,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
if( i_track > CDIO_CD_MAX_TRACKS || i_track < CDIO_CD_MIN_TRACK_NO )
|
if( i_track > CDIO_CD_MAX_TRACKS || i_track < CDIO_CD_MIN_TRACK_NO )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
env->pp_lba[i_tracks++] =
|
env->pp_lba[i_tracks--] =
|
||||||
cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i].p ));
|
cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i].p ));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -464,7 +463,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* set leadout sector */
|
/* set leadout sector */
|
||||||
env->pp_lba[i_tracks] =
|
env->pp_lba[i_leadout] =
|
||||||
cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i_leadout].p ));
|
cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i_leadout].p ));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -587,6 +586,8 @@ _get_first_track_num_osx(void *user_data)
|
|||||||
{
|
{
|
||||||
_img_private_t *env = user_data;
|
_img_private_t *env = user_data;
|
||||||
|
|
||||||
|
if (!env->toc_init) _cdio_read_toc (env) ;
|
||||||
|
|
||||||
return env->i_first_track;
|
return env->i_first_track;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -619,6 +620,8 @@ _get_num_tracks_osx(void *user_data)
|
|||||||
{
|
{
|
||||||
_img_private_t *env = user_data;
|
_img_private_t *env = user_data;
|
||||||
|
|
||||||
|
if (!env->toc_init) _cdio_read_toc (env) ;
|
||||||
|
|
||||||
return( TOTAL_TRACKS );
|
return( TOTAL_TRACKS );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -700,7 +703,7 @@ _get_track_green_osx(void *user_data, track_t i_track)
|
|||||||
cdio_error( "could not read trackinfo for track %d", i_track );
|
cdio_error( "could not read trackinfo for track %d", i_track );
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return ((a_track.trackMode & 2) != 0);
|
return ((a_track.trackMode & CDIO_CDROM_DATA_TRACK) != 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user