Add image driver track flag reporting. Reorganize code for image drivers
a little better (via image_common.c). Update regression tests for more expanded cd-info output.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# $Id: Makefile.am,v 1.1 2004/12/18 17:29:32 rocky Exp $
|
# $Id: Makefile.am,v 1.2 2004/12/31 07:51:43 rocky Exp $
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
# Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
#
|
#
|
||||||
@@ -75,6 +75,7 @@ libcdio_sources = \
|
|||||||
image.h \
|
image.h \
|
||||||
image/bincue.c \
|
image/bincue.c \
|
||||||
image/cdrdao.c \
|
image/cdrdao.c \
|
||||||
|
image_common.c \
|
||||||
image_common.h \
|
image_common.h \
|
||||||
image/nrg.c \
|
image/nrg.c \
|
||||||
image/nrg.h \
|
image/nrg.h \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: bincue.c,v 1.2 2004/12/31 05:47:36 rocky Exp $
|
$Id: bincue.c,v 1.3 2004/12/31 07:51:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
(*.cue).
|
(*.cue).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: bincue.c,v 1.2 2004/12/31 05:47:36 rocky Exp $";
|
static const char _rcsid[] = "$Id: bincue.c,v 1.3 2004/12/31 07:51:43 rocky Exp $";
|
||||||
|
|
||||||
#include "image.h"
|
#include "image.h"
|
||||||
#include "cdio_assert.h"
|
#include "cdio_assert.h"
|
||||||
@@ -63,25 +63,9 @@ static const char _rcsid[] = "$Id: bincue.c,v 1.2 2004/12/31 05:47:36 rocky Exp
|
|||||||
#define DEFAULT_CDIO_DEVICE "videocd.bin"
|
#define DEFAULT_CDIO_DEVICE "videocd.bin"
|
||||||
#define DEFAULT_CDIO_CUE "videocd.cue"
|
#define DEFAULT_CDIO_CUE "videocd.cue"
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
/* Things common to all drivers like this.
|
|
||||||
This must be first. */
|
|
||||||
generic_img_private_t gen;
|
|
||||||
internal_position_t pos;
|
|
||||||
|
|
||||||
char *psz_cue_name;
|
|
||||||
char *psz_mcn; /* Media Catalog Number (5.22.3)
|
|
||||||
exactly 13 bytes */
|
|
||||||
track_info_t tocent[CDIO_CD_MAX_TRACKS+1]; /* entry info for each track
|
|
||||||
add 1 for leadout. */
|
|
||||||
discmode_t disc_mode;
|
|
||||||
} _img_private_t;
|
|
||||||
|
|
||||||
static uint32_t _stat_size_bincue (void *user_data);
|
static uint32_t _stat_size_bincue (void *user_data);
|
||||||
static bool parse_cuefile (_img_private_t *cd, const char *toc_name);
|
|
||||||
|
|
||||||
#define NEED_MEDIA_EJECT_IMAGE
|
|
||||||
#include "image_common.h"
|
#include "image_common.h"
|
||||||
|
static bool parse_cuefile (_img_private_t *cd, const char *toc_name);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Initialize image structures.
|
Initialize image structures.
|
||||||
@@ -1150,31 +1134,34 @@ cdio_open_cue (const char *psz_cue_name)
|
|||||||
|
|
||||||
memset( &_funcs, 0, sizeof(_funcs) );
|
memset( &_funcs, 0, sizeof(_funcs) );
|
||||||
|
|
||||||
_funcs.eject_media = _eject_media_image;
|
_funcs.eject_media = _eject_media_image;
|
||||||
_funcs.free = _free_image;
|
_funcs.free = _free_image;
|
||||||
_funcs.get_arg = _get_arg_image;
|
_funcs.get_arg = _get_arg_image;
|
||||||
_funcs.get_cdtext = get_cdtext_generic;
|
_funcs.get_cdtext = get_cdtext_generic;
|
||||||
_funcs.get_devices = cdio_get_devices_bincue;
|
_funcs.get_devices = cdio_get_devices_bincue;
|
||||||
_funcs.get_default_device = cdio_get_default_device_bincue;
|
_funcs.get_default_device = cdio_get_default_device_bincue;
|
||||||
_funcs.get_discmode = _get_discmode_image;
|
_funcs.get_discmode = _get_discmode_image;
|
||||||
_funcs.get_drive_cap = _get_drive_cap_image;
|
_funcs.get_drive_cap = _get_drive_cap_image;
|
||||||
_funcs.get_first_track_num= _get_first_track_num_image;
|
_funcs.get_first_track_num = _get_first_track_num_image;
|
||||||
_funcs.get_hwinfo = get_hwinfo_bincue;
|
_funcs.get_hwinfo = get_hwinfo_bincue;
|
||||||
_funcs.get_mcn = _get_mcn_image;
|
_funcs.get_mcn = _get_mcn_image;
|
||||||
_funcs.get_num_tracks = _get_num_tracks_image;
|
_funcs.get_num_tracks = _get_num_tracks_image;
|
||||||
_funcs.get_track_format = _get_track_format_bincue;
|
_funcs.get_track_channels = get_track_channels_image,
|
||||||
_funcs.get_track_green = _get_track_green_bincue;
|
_funcs.get_track_copy_permit = get_track_copy_permit_image,
|
||||||
_funcs.get_track_lba = _get_lba_track_bincue;
|
_funcs.get_track_format = _get_track_format_bincue;
|
||||||
_funcs.get_track_msf = _get_track_msf_image;
|
_funcs.get_track_green = _get_track_green_bincue;
|
||||||
_funcs.lseek = _lseek_bincue;
|
_funcs.get_track_lba = _get_lba_track_bincue;
|
||||||
_funcs.read = _read_bincue;
|
_funcs.get_track_msf = _get_track_msf_image;
|
||||||
_funcs.read_audio_sectors = _read_audio_sectors_bincue;
|
_funcs.get_track_preemphasis = get_track_preemphasis_image,
|
||||||
_funcs.read_mode1_sector = _read_mode1_sector_bincue;
|
_funcs.lseek = _lseek_bincue;
|
||||||
_funcs.read_mode1_sectors = _read_mode1_sectors_bincue;
|
_funcs.read = _read_bincue;
|
||||||
_funcs.read_mode2_sector = _read_mode2_sector_bincue;
|
_funcs.read_audio_sectors = _read_audio_sectors_bincue;
|
||||||
_funcs.read_mode2_sectors = _read_mode2_sectors_bincue;
|
_funcs.read_mode1_sector = _read_mode1_sector_bincue;
|
||||||
_funcs.set_arg = _set_arg_image;
|
_funcs.read_mode1_sectors = _read_mode1_sectors_bincue;
|
||||||
_funcs.stat_size = _stat_size_bincue;
|
_funcs.read_mode2_sector = _read_mode2_sector_bincue;
|
||||||
|
_funcs.read_mode2_sectors = _read_mode2_sectors_bincue;
|
||||||
|
_funcs.set_arg = _set_arg_image;
|
||||||
|
_funcs.stat_size = _stat_size_bincue;
|
||||||
|
|
||||||
if (NULL == psz_cue_name) return NULL;
|
if (NULL == psz_cue_name) return NULL;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: cdrdao.c,v 1.2 2004/12/31 05:47:36 rocky Exp $
|
$Id: cdrdao.c,v 1.3 2004/12/31 07:51:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
toc reading routine adapted from cuetools
|
toc reading routine adapted from cuetools
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
(*.cue).
|
(*.cue).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: cdrdao.c,v 1.2 2004/12/31 05:47:36 rocky Exp $";
|
static const char _rcsid[] = "$Id: cdrdao.c,v 1.3 2004/12/31 07:51:43 rocky Exp $";
|
||||||
|
|
||||||
#include "image.h"
|
#include "image.h"
|
||||||
#include "cdio_assert.h"
|
#include "cdio_assert.h"
|
||||||
@@ -64,26 +64,12 @@ static const char _rcsid[] = "$Id: cdrdao.c,v 1.2 2004/12/31 05:47:36 rocky Exp
|
|||||||
#define DEFAULT_CDIO_DEVICE "videocd.bin"
|
#define DEFAULT_CDIO_DEVICE "videocd.bin"
|
||||||
#define DEFAULT_CDIO_CDRDAO "videocd.toc"
|
#define DEFAULT_CDIO_CDRDAO "videocd.toc"
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
/* Things common to all drivers like this.
|
|
||||||
This must be first. */
|
|
||||||
generic_img_private_t gen;
|
|
||||||
internal_position_t pos;
|
|
||||||
|
|
||||||
char *psz_cue_name;
|
|
||||||
char *psz_mcn; /* Media Catalog Number (5.22.3)
|
|
||||||
exactly 13 bytes */
|
|
||||||
track_info_t tocent[CDIO_CD_MAX_TRACKS+1]; /* entry info for each track
|
|
||||||
add 1 for leadout. */
|
|
||||||
discmode_t disc_mode;
|
|
||||||
} _img_private_t;
|
|
||||||
|
|
||||||
static uint32_t _stat_size_cdrdao (void *user_data);
|
|
||||||
static bool parse_tocfile (_img_private_t *cd, const char *toc_name);
|
|
||||||
|
|
||||||
#define NEED_MEDIA_EJECT_IMAGE
|
|
||||||
#include "image_common.h"
|
#include "image_common.h"
|
||||||
|
|
||||||
|
static uint32_t _stat_size_cdrdao (void *p_user_data);
|
||||||
|
static bool parse_tocfile (_img_private_t *cd, const char *p_toc_name);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Initialize image structures.
|
Initialize image structures.
|
||||||
*/
|
*/
|
||||||
@@ -1132,31 +1118,34 @@ cdio_open_cdrdao (const char *psz_cue_name)
|
|||||||
|
|
||||||
memset( &_funcs, 0, sizeof(_funcs) );
|
memset( &_funcs, 0, sizeof(_funcs) );
|
||||||
|
|
||||||
_funcs.eject_media = _eject_media_image;
|
_funcs.eject_media = _eject_media_image;
|
||||||
_funcs.free = _free_image;
|
_funcs.free = _free_image;
|
||||||
_funcs.get_arg = _get_arg_image;
|
_funcs.get_arg = _get_arg_image;
|
||||||
_funcs.get_cdtext = get_cdtext_generic;
|
_funcs.get_cdtext = get_cdtext_generic;
|
||||||
_funcs.get_devices = cdio_get_devices_cdrdao;
|
_funcs.get_devices = cdio_get_devices_cdrdao;
|
||||||
_funcs.get_default_device = cdio_get_default_device_cdrdao;
|
_funcs.get_default_device = cdio_get_default_device_cdrdao;
|
||||||
_funcs.get_discmode = _get_discmode_image;
|
_funcs.get_discmode = _get_discmode_image;
|
||||||
_funcs.get_drive_cap = _get_drive_cap_image;
|
_funcs.get_drive_cap = _get_drive_cap_image;
|
||||||
_funcs.get_first_track_num= _get_first_track_num_image;
|
_funcs.get_first_track_num = _get_first_track_num_image;
|
||||||
_funcs.get_hwinfo = get_hwinfo_cdrdao;
|
_funcs.get_hwinfo = get_hwinfo_cdrdao;
|
||||||
_funcs.get_mcn = _get_mcn_image;
|
_funcs.get_mcn = _get_mcn_image;
|
||||||
_funcs.get_num_tracks = _get_num_tracks_image;
|
_funcs.get_num_tracks = _get_num_tracks_image;
|
||||||
_funcs.get_track_format = _get_track_format_cdrdao;
|
_funcs.get_track_channels = get_track_channels_image,
|
||||||
_funcs.get_track_green = _get_track_green_cdrdao;
|
_funcs.get_track_copy_permit = get_track_copy_permit_image,
|
||||||
_funcs.get_track_lba = _get_lba_track_cdrdao;
|
_funcs.get_track_format = _get_track_format_cdrdao;
|
||||||
_funcs.get_track_msf = _get_track_msf_image;
|
_funcs.get_track_green = _get_track_green_cdrdao;
|
||||||
_funcs.lseek = _lseek_cdrdao;
|
_funcs.get_track_lba = _get_lba_track_cdrdao;
|
||||||
_funcs.read = _read_cdrdao;
|
_funcs.get_track_msf = _get_track_msf_image;
|
||||||
_funcs.read_audio_sectors = _read_audio_sectors_cdrdao;
|
_funcs.get_track_preemphasis = get_track_preemphasis_image,
|
||||||
_funcs.read_mode1_sector = _read_mode1_sector_cdrdao;
|
_funcs.lseek = _lseek_cdrdao;
|
||||||
_funcs.read_mode1_sectors = _read_mode1_sectors_cdrdao;
|
_funcs.read = _read_cdrdao;
|
||||||
_funcs.read_mode2_sector = _read_mode2_sector_cdrdao;
|
_funcs.read_audio_sectors = _read_audio_sectors_cdrdao;
|
||||||
_funcs.read_mode2_sectors = _read_mode2_sectors_cdrdao;
|
_funcs.read_mode1_sector = _read_mode1_sector_cdrdao;
|
||||||
_funcs.set_arg = _set_arg_image;
|
_funcs.read_mode1_sectors = _read_mode1_sectors_cdrdao;
|
||||||
_funcs.stat_size = _stat_size_cdrdao;
|
_funcs.read_mode2_sector = _read_mode2_sector_cdrdao;
|
||||||
|
_funcs.read_mode2_sectors = _read_mode2_sectors_cdrdao;
|
||||||
|
_funcs.set_arg = _set_arg_image;
|
||||||
|
_funcs.stat_size = _stat_size_cdrdao;
|
||||||
|
|
||||||
if (NULL == psz_cue_name) return NULL;
|
if (NULL == psz_cue_name) return NULL;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: nrg.c,v 1.1 2004/12/18 17:29:32 rocky Exp $
|
$Id: nrg.c,v 1.2 2004/12/31 07:51:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 2001, 2003 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001, 2003 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
#include "_cdio_stdio.h"
|
#include "_cdio_stdio.h"
|
||||||
#include "nrg.h"
|
#include "nrg.h"
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: nrg.c,v 1.1 2004/12/18 17:29:32 rocky Exp $";
|
static const char _rcsid[] = "$Id: nrg.c,v 1.2 2004/12/31 07:51:43 rocky Exp $";
|
||||||
|
|
||||||
|
|
||||||
/* reader */
|
/* reader */
|
||||||
@@ -66,39 +66,12 @@ typedef struct {
|
|||||||
} _mapping_t;
|
} _mapping_t;
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
#define NEED_NERO_STRUCT
|
||||||
/* Things common to all drivers like this.
|
#include "image_common.h"
|
||||||
This must be first. */
|
|
||||||
generic_img_private_t gen;
|
|
||||||
internal_position_t pos;
|
|
||||||
|
|
||||||
/* This is common to all image drivers... */
|
|
||||||
char *psz_cue_name;
|
|
||||||
char *psz_mcn; /* Media Catalog Number (5.22.3) */
|
|
||||||
|
|
||||||
track_info_t tocent[CDIO_CD_MAX_TRACKS+1]; /* entry info for each track
|
|
||||||
add 1 for leadout. */
|
|
||||||
discmode_t disc_mode;
|
|
||||||
|
|
||||||
/* Nero Specific stuff. Note: for the image_free to work, this *must*
|
|
||||||
be last. */
|
|
||||||
bool is_dao; /* True if some of disk at once. False
|
|
||||||
if some sort of track at once. */
|
|
||||||
uint32_t mtyp; /* Value of MTYP (media type?) tag */
|
|
||||||
uint8_t dtyp; /* Value of DAOX media type tag */
|
|
||||||
|
|
||||||
/* This is a hack because I don't really understnad NERO better. */
|
|
||||||
bool is_cues;
|
|
||||||
|
|
||||||
CdioList *mapping; /* List of track information */
|
|
||||||
uint32_t size;
|
|
||||||
} _img_private_t;
|
|
||||||
|
|
||||||
static bool parse_nrg (_img_private_t *env, const char *psz_cue_name);
|
static bool parse_nrg (_img_private_t *env, const char *psz_cue_name);
|
||||||
static uint32_t _stat_size_nrg (void *user_data);
|
static uint32_t _stat_size_nrg (void *user_data);
|
||||||
|
|
||||||
#include "image_common.h"
|
|
||||||
|
|
||||||
/* Updates internal track TOC, so we can later
|
/* Updates internal track TOC, so we can later
|
||||||
simulate ioctl(CDROMREADTOCENTRY).
|
simulate ioctl(CDROMREADTOCENTRY).
|
||||||
*/
|
*/
|
||||||
|
|||||||
266
lib/driver/image_common.c
Normal file
266
lib/driver/image_common.c
Normal file
@@ -0,0 +1,266 @@
|
|||||||
|
/*
|
||||||
|
$Id: image_common.c,v 1.1 2004/12/31 07:51:43 rocky Exp $
|
||||||
|
|
||||||
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! Common image routines.
|
||||||
|
|
||||||
|
Because _img_private_t may vary over image formats, the routines are
|
||||||
|
included into the image drivers after _img_private_t is defined. In
|
||||||
|
order for the below routines to work, there is a large part of
|
||||||
|
_img_private_t that is common among image drivers. For example, see
|
||||||
|
image.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "image.h"
|
||||||
|
#include "image_common.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_STDLIB_H
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRING_H
|
||||||
|
#include <string.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define free_if_notnull(obj) \
|
||||||
|
if (NULL != obj) { free(obj); obj=NULL; };
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Eject media -- there's nothing to do here except free resources.
|
||||||
|
We always return 2.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
_eject_media_image(void *user_data)
|
||||||
|
{
|
||||||
|
_free_image (user_data);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
We don't need the image any more. Free all memory associated with
|
||||||
|
it.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
_free_image (void *p_user_data)
|
||||||
|
{
|
||||||
|
_img_private_t *p_env = p_user_data;
|
||||||
|
track_t i_track;
|
||||||
|
|
||||||
|
if (NULL == p_env) return;
|
||||||
|
|
||||||
|
for (i_track=0; i_track < p_env->gen.i_tracks; i_track++) {
|
||||||
|
free_if_notnull(p_env->tocent[i_track].filename);
|
||||||
|
free_if_notnull(p_env->tocent[i_track].isrc);
|
||||||
|
cdtext_destroy(&(p_env->tocent[i_track].cdtext));
|
||||||
|
}
|
||||||
|
|
||||||
|
free_if_notnull(p_env->psz_mcn);
|
||||||
|
free_if_notnull(p_env->psz_cue_name);
|
||||||
|
cdtext_destroy(&(p_env->gen.cdtext));
|
||||||
|
cdio_generic_stdio_free(p_env);
|
||||||
|
free(p_env);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Return the value associated with the key "arg".
|
||||||
|
*/
|
||||||
|
const char *
|
||||||
|
_get_arg_image (void *user_data, const char key[])
|
||||||
|
{
|
||||||
|
_img_private_t *p_env = user_data;
|
||||||
|
|
||||||
|
if (!strcmp (key, "source")) {
|
||||||
|
return p_env->gen.source_name;
|
||||||
|
} else if (!strcmp (key, "cue")) {
|
||||||
|
return p_env->psz_cue_name;
|
||||||
|
} else if (!strcmp(key, "access-mode")) {
|
||||||
|
return "image";
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Get disc type associated with cd_obj.
|
||||||
|
*/
|
||||||
|
discmode_t
|
||||||
|
_get_discmode_image (void *p_user_data)
|
||||||
|
{
|
||||||
|
_img_private_t *p_env = p_user_data;
|
||||||
|
return p_env->disc_mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Return the the kind of drive capabilities of device.
|
||||||
|
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
_get_drive_cap_image (const void *user_data,
|
||||||
|
cdio_drive_read_cap_t *p_read_cap,
|
||||||
|
cdio_drive_write_cap_t *p_write_cap,
|
||||||
|
cdio_drive_misc_cap_t *p_misc_cap)
|
||||||
|
{
|
||||||
|
|
||||||
|
*p_read_cap = CDIO_DRIVE_CAP_READ_AUDIO
|
||||||
|
| CDIO_DRIVE_CAP_READ_CD_G
|
||||||
|
| CDIO_DRIVE_CAP_READ_CD_R
|
||||||
|
| CDIO_DRIVE_CAP_READ_CD_RW
|
||||||
|
;
|
||||||
|
|
||||||
|
*p_write_cap = 0;
|
||||||
|
|
||||||
|
/* In the future we may want to simulate
|
||||||
|
LOCK, OPEN_TRAY, CLOSE_TRAY, SELECT_SPEED, etc.
|
||||||
|
*/
|
||||||
|
*p_misc_cap = CDIO_DRIVE_CAP_MISC_FILE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Return the number of of the first track.
|
||||||
|
CDIO_INVALID_TRACK is returned on error.
|
||||||
|
*/
|
||||||
|
track_t
|
||||||
|
_get_first_track_num_image(void *p_user_data)
|
||||||
|
{
|
||||||
|
_img_private_t *p_env = p_user_data;
|
||||||
|
|
||||||
|
return p_env->gen.i_first_track;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Return the media catalog number (MCN) from the CD or NULL if there
|
||||||
|
is none or we don't have the ability to get it.
|
||||||
|
|
||||||
|
Note: string is malloc'd so caller has to free() the returned
|
||||||
|
string when done with it.
|
||||||
|
*/
|
||||||
|
char *
|
||||||
|
_get_mcn_image(const void *p_user_data)
|
||||||
|
{
|
||||||
|
const _img_private_t *p_env = p_user_data;
|
||||||
|
|
||||||
|
if (!p_env || !p_env->psz_mcn) return NULL;
|
||||||
|
return strdup(p_env->psz_mcn);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Return the number of tracks.
|
||||||
|
*/
|
||||||
|
track_t
|
||||||
|
_get_num_tracks_image(void *p_user_data)
|
||||||
|
{
|
||||||
|
_img_private_t *p_env = p_user_data;
|
||||||
|
|
||||||
|
return p_env->gen.i_tracks;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Return the starting MSF (minutes/secs/frames) for the track number
|
||||||
|
track_num in obj. Tracks numbers start at 1.
|
||||||
|
The "leadout" track is specified either by
|
||||||
|
using track_num LEADOUT_TRACK or the total tracks+1.
|
||||||
|
|
||||||
|
*/
|
||||||
|
bool
|
||||||
|
_get_track_msf_image(void *p_user_data, track_t i_track, msf_t *msf)
|
||||||
|
{
|
||||||
|
const _img_private_t *p_env = p_user_data;
|
||||||
|
|
||||||
|
if (NULL == msf) return false;
|
||||||
|
|
||||||
|
if (i_track == CDIO_CDROM_LEADOUT_TRACK) i_track = p_env->gen.i_tracks+1;
|
||||||
|
|
||||||
|
if (i_track <= p_env->gen.i_tracks+1 && i_track != 0) {
|
||||||
|
*msf = p_env->tocent[i_track-p_env->gen.i_first_track].start_msf;
|
||||||
|
return true;
|
||||||
|
} else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*! Return number of channels in track: 2 or 4; -2 if not
|
||||||
|
implemented or -1 for error.
|
||||||
|
Not meaningful if track is not an audio track.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
get_track_channels_image(const void *p_user_data, track_t i_track)
|
||||||
|
{
|
||||||
|
const _img_private_t *p_env = p_user_data;
|
||||||
|
return ( p_env->tocent[i_track-p_env->gen.i_first_track].flags
|
||||||
|
& FOUR_CHANNEL_AUDIO ) ? 4 : 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*! Return 1 if copy is permitted on the track, 0 if not, or -1 for error.
|
||||||
|
Is this meaningful if not an audio track?
|
||||||
|
*/
|
||||||
|
track_flag_t
|
||||||
|
get_track_copy_permit_image(void *p_user_data, track_t i_track)
|
||||||
|
{
|
||||||
|
const _img_private_t *p_env = p_user_data;
|
||||||
|
return ( p_env->tocent[i_track-p_env->gen.i_first_track].flags
|
||||||
|
& COPY_PERMITTED ) ? CDIO_TRACK_FLAG_TRUE : CDIO_TRACK_FLAG_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*! Return 1 if track has pre-emphasis, 0 if not, or -1 for error.
|
||||||
|
Is this meaningful if not an audio track?
|
||||||
|
|
||||||
|
pre-emphasis is a non linear frequency response.
|
||||||
|
*/
|
||||||
|
track_flag_t
|
||||||
|
get_track_preemphasis_image(const void *p_user_data, track_t i_track)
|
||||||
|
{
|
||||||
|
const _img_private_t *p_env = p_user_data;
|
||||||
|
return ( p_env->tocent[i_track-p_env->gen.i_first_track].flags
|
||||||
|
& PRE_EMPHASIS ) ? CDIO_TRACK_FLAG_TRUE : CDIO_TRACK_FLAG_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Set the arg "key" with "value" in the source device.
|
||||||
|
Currently "source" to set the source device in I/O operations
|
||||||
|
is the only valid key.
|
||||||
|
|
||||||
|
0 is returned if no error was found, and nonzero if there as an error.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
_set_arg_image (void *user_data, const char key[], const char value[])
|
||||||
|
{
|
||||||
|
_img_private_t *env = user_data;
|
||||||
|
|
||||||
|
if (!strcmp (key, "source"))
|
||||||
|
{
|
||||||
|
free_if_notnull (env->gen.source_name);
|
||||||
|
|
||||||
|
if (!value)
|
||||||
|
return -2;
|
||||||
|
|
||||||
|
env->gen.source_name = strdup (value);
|
||||||
|
}
|
||||||
|
else if (!strcmp (key, "cue"))
|
||||||
|
{
|
||||||
|
free_if_notnull (env->psz_cue_name);
|
||||||
|
|
||||||
|
if (!value)
|
||||||
|
return -2;
|
||||||
|
|
||||||
|
env->psz_cue_name = strdup (value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: image_common.h,v 1.2 2004/12/31 05:47:36 rocky Exp $
|
$Id: image_common.h,v 1.3 2004/12/31 07:51:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -30,6 +30,35 @@
|
|||||||
#ifndef __CDIO_IMAGE_COMMON_H__
|
#ifndef __CDIO_IMAGE_COMMON_H__
|
||||||
#define __CDIO_IMAGE_COMMON_H__
|
#define __CDIO_IMAGE_COMMON_H__
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* Things common to all drivers like this.
|
||||||
|
This must be first. */
|
||||||
|
generic_img_private_t gen;
|
||||||
|
internal_position_t pos;
|
||||||
|
|
||||||
|
char *psz_cue_name;
|
||||||
|
char *psz_mcn; /* Media Catalog Number (5.22.3)
|
||||||
|
exactly 13 bytes */
|
||||||
|
track_info_t tocent[CDIO_CD_MAX_TRACKS+1]; /* entry info for each track
|
||||||
|
add 1 for leadout. */
|
||||||
|
discmode_t disc_mode;
|
||||||
|
|
||||||
|
#ifdef NEED_NERO_STRUCT
|
||||||
|
/* Nero Specific stuff. Note: for the image_free to work, this *must*
|
||||||
|
be last. */
|
||||||
|
bool is_dao; /* True if some of disk at once. False
|
||||||
|
if some sort of track at once. */
|
||||||
|
uint32_t mtyp; /* Value of MTYP (media type?) tag */
|
||||||
|
uint8_t dtyp; /* Value of DAOX media type tag */
|
||||||
|
|
||||||
|
/* This is a hack because I don't really understnad NERO better. */
|
||||||
|
bool is_cues;
|
||||||
|
|
||||||
|
CdioList *mapping; /* List of track information */
|
||||||
|
uint32_t size;
|
||||||
|
#endif
|
||||||
|
} _img_private_t;
|
||||||
|
|
||||||
#define free_if_notnull(obj) \
|
#define free_if_notnull(obj) \
|
||||||
if (NULL != obj) { free(obj); obj=NULL; };
|
if (NULL != obj) { free(obj); obj=NULL; };
|
||||||
|
|
||||||
@@ -37,67 +66,34 @@
|
|||||||
We don't need the image any more. Free all memory associated with
|
We don't need the image any more. Free all memory associated with
|
||||||
it.
|
it.
|
||||||
*/
|
*/
|
||||||
static void
|
void _free_image (void *p_user_data);
|
||||||
_free_image (void *user_data)
|
|
||||||
{
|
|
||||||
_img_private_t *p_env = user_data;
|
|
||||||
track_t i_track;
|
|
||||||
|
|
||||||
if (NULL == p_env) return;
|
int _eject_media_image(void *p_user_data);
|
||||||
|
|
||||||
for (i_track=0; i_track < p_env->gen.i_tracks; i_track++) {
|
|
||||||
free_if_notnull(p_env->tocent[i_track].filename);
|
|
||||||
free_if_notnull(p_env->tocent[i_track].isrc);
|
|
||||||
cdtext_destroy(&(p_env->tocent[i_track].cdtext));
|
|
||||||
}
|
|
||||||
|
|
||||||
free_if_notnull(p_env->psz_mcn);
|
|
||||||
free_if_notnull(p_env->psz_cue_name);
|
|
||||||
cdtext_destroy(&(p_env->gen.cdtext));
|
|
||||||
cdio_generic_stdio_free(p_env);
|
|
||||||
free(p_env);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef NEED_MEDIA_EJECT_IMAGE
|
|
||||||
/*!
|
|
||||||
Eject media -- there's nothing to do here except free resources.
|
|
||||||
We always return 2.
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
_eject_media_image(void *user_data)
|
|
||||||
{
|
|
||||||
_free_image (user_data);
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Return the value associated with the key "arg".
|
Return the value associated with the key "arg".
|
||||||
*/
|
*/
|
||||||
static const char *
|
const char * _get_arg_image (void *user_data, const char key[]);
|
||||||
_get_arg_image (void *user_data, const char key[])
|
|
||||||
{
|
|
||||||
_img_private_t *p_env = user_data;
|
|
||||||
|
|
||||||
if (!strcmp (key, "source")) {
|
|
||||||
return p_env->gen.source_name;
|
|
||||||
} else if (!strcmp (key, "cue")) {
|
|
||||||
return p_env->psz_cue_name;
|
|
||||||
} else if (!strcmp(key, "access-mode")) {
|
|
||||||
return "image";
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Get disc type associated with cd_obj.
|
Get disc type associated with cd_obj.
|
||||||
*/
|
*/
|
||||||
static discmode_t
|
discmode_t _get_discmode_image (void *p_user_data);
|
||||||
_get_discmode_image (void *p_user_data)
|
|
||||||
{
|
/*!
|
||||||
_img_private_t *p_env = p_user_data;
|
Return the the kind of drive capabilities of device.
|
||||||
return p_env->disc_mode;
|
|
||||||
}
|
*/
|
||||||
|
void _get_drive_cap_image (const void *user_data,
|
||||||
|
cdio_drive_read_cap_t *p_read_cap,
|
||||||
|
cdio_drive_write_cap_t *p_write_cap,
|
||||||
|
cdio_drive_misc_cap_t *p_misc_cap);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Return the number of of the first track.
|
||||||
|
CDIO_INVALID_TRACK is returned on error.
|
||||||
|
*/
|
||||||
|
track_t _get_first_track_num_image(void *p_user_data);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Return the media catalog number (MCN) from the CD or NULL if there
|
Return the media catalog number (MCN) from the CD or NULL if there
|
||||||
@@ -106,14 +102,13 @@ _get_discmode_image (void *p_user_data)
|
|||||||
Note: string is malloc'd so caller has to free() the returned
|
Note: string is malloc'd so caller has to free() the returned
|
||||||
string when done with it.
|
string when done with it.
|
||||||
*/
|
*/
|
||||||
static char *
|
char * _get_mcn_image(const void *p_user_data);
|
||||||
_get_mcn_image(const void *user_data)
|
|
||||||
{
|
/*!
|
||||||
const _img_private_t *env = user_data;
|
Return the number of tracks.
|
||||||
|
*/
|
||||||
if (NULL == env || NULL == env->psz_mcn) return NULL;
|
track_t _get_num_tracks_image(void *p_user_data);
|
||||||
return strdup(env->psz_mcn);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Return the starting MSF (minutes/secs/frames) for the track number
|
Return the starting MSF (minutes/secs/frames) for the track number
|
||||||
@@ -122,45 +117,26 @@ _get_mcn_image(const void *user_data)
|
|||||||
using track_num LEADOUT_TRACK or the total tracks+1.
|
using track_num LEADOUT_TRACK or the total tracks+1.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
static bool
|
bool _get_track_msf_image(void *p_user_data, track_t i_track, msf_t *msf);
|
||||||
_get_track_msf_image(void *user_data, track_t track_num, msf_t *msf)
|
|
||||||
{
|
|
||||||
_img_private_t *env = user_data;
|
|
||||||
|
|
||||||
if (NULL == msf) return false;
|
/*! Return number of channels in track: 2 or 4; -2 if not
|
||||||
|
implemented or -1 for error.
|
||||||
if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = env->gen.i_tracks+1;
|
Not meaningful if track is not an audio track.
|
||||||
|
|
||||||
if (track_num <= env->gen.i_tracks+1 && track_num != 0) {
|
|
||||||
*msf = env->tocent[track_num-env->gen.i_first_track].start_msf;
|
|
||||||
return true;
|
|
||||||
} else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Return the number of of the first track.
|
|
||||||
CDIO_INVALID_TRACK is returned on error.
|
|
||||||
*/
|
*/
|
||||||
static track_t
|
int get_track_channels_image(const void *p_user_data, track_t i_track);
|
||||||
_get_first_track_num_image(void *p_user_data)
|
|
||||||
{
|
/*! Return 1 if copy is permitted on the track, 0 if not, or -1 for error.
|
||||||
_img_private_t *p_env = p_user_data;
|
Is this meaningful if not an audio track?
|
||||||
|
*/
|
||||||
|
track_flag_t get_track_copy_permit_image(void *p_user_data, track_t i_track);
|
||||||
|
|
||||||
|
/*! Return 1 if track has pre-emphasis, 0 if not, or -1 for error.
|
||||||
|
Is this meaningful if not an audio track?
|
||||||
|
|
||||||
return p_env->gen.i_first_track;
|
pre-emphasis is a non linear frequency response.
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Return the number of tracks.
|
|
||||||
*/
|
*/
|
||||||
static track_t
|
track_flag_t get_track_preemphasis_image(const void *p_user_data,
|
||||||
_get_num_tracks_image(void *p_user_data)
|
track_t i_track);
|
||||||
{
|
|
||||||
_img_private_t *p_env = p_user_data;
|
|
||||||
|
|
||||||
return p_env->gen.i_tracks;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Set the arg "key" with "value" in the source device.
|
Set the arg "key" with "value" in the source device.
|
||||||
Currently "source" to set the source device in I/O operations
|
Currently "source" to set the source device in I/O operations
|
||||||
@@ -168,58 +144,6 @@ _get_num_tracks_image(void *p_user_data)
|
|||||||
|
|
||||||
0 is returned if no error was found, and nonzero if there as an error.
|
0 is returned if no error was found, and nonzero if there as an error.
|
||||||
*/
|
*/
|
||||||
static int
|
int _set_arg_image (void *user_data, const char key[], const char value[]);
|
||||||
_set_arg_image (void *user_data, const char key[], const char value[])
|
|
||||||
{
|
|
||||||
_img_private_t *env = user_data;
|
|
||||||
|
|
||||||
if (!strcmp (key, "source"))
|
|
||||||
{
|
|
||||||
free_if_notnull (env->gen.source_name);
|
|
||||||
|
|
||||||
if (!value)
|
|
||||||
return -2;
|
|
||||||
|
|
||||||
env->gen.source_name = strdup (value);
|
|
||||||
}
|
|
||||||
else if (!strcmp (key, "cue"))
|
|
||||||
{
|
|
||||||
free_if_notnull (env->psz_cue_name);
|
|
||||||
|
|
||||||
if (!value)
|
|
||||||
return -2;
|
|
||||||
|
|
||||||
env->psz_cue_name = strdup (value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Return the the kind of drive capabilities of device.
|
|
||||||
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
_get_drive_cap_image (const void *user_data,
|
|
||||||
cdio_drive_read_cap_t *p_read_cap,
|
|
||||||
cdio_drive_write_cap_t *p_write_cap,
|
|
||||||
cdio_drive_misc_cap_t *p_misc_cap)
|
|
||||||
{
|
|
||||||
|
|
||||||
*p_read_cap = CDIO_DRIVE_CAP_READ_AUDIO
|
|
||||||
| CDIO_DRIVE_CAP_READ_CD_G
|
|
||||||
| CDIO_DRIVE_CAP_READ_CD_R
|
|
||||||
| CDIO_DRIVE_CAP_READ_CD_RW
|
|
||||||
;
|
|
||||||
|
|
||||||
*p_write_cap = 0;
|
|
||||||
|
|
||||||
/* In the future we may want to simulate
|
|
||||||
LOCK, OPEN_TRAY, CLOSE_TRAY, SELECT_SPEED, etc.
|
|
||||||
*/
|
|
||||||
*p_misc_cap = CDIO_DRIVE_CAP_MISC_FILE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* __CDIO_IMAGE_COMMON_H__ */
|
#endif /* __CDIO_IMAGE_COMMON_H__ */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: cd-info.c,v 1.104 2004/12/31 05:47:36 rocky Exp $
|
$Id: cd-info.c,v 1.105 2004/12/31 07:51:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 1996, 1997, 1998 Gerd Knorr <kraxel@bytesex.org>
|
Copyright (C) 1996, 1997, 1998 Gerd Knorr <kraxel@bytesex.org>
|
||||||
@@ -1106,6 +1106,7 @@ main(int argc, const char *argv[])
|
|||||||
printf("%-5s", psz);
|
printf("%-5s", psz);
|
||||||
|
|
||||||
if (TRACK_FORMAT_AUDIO == track_format) {
|
if (TRACK_FORMAT_AUDIO == track_format) {
|
||||||
|
const int i_channels = cdio_get_track_channels(p_cdio, i);
|
||||||
switch (cdio_get_track_preemphasis(p_cdio, i)) {
|
switch (cdio_get_track_preemphasis(p_cdio, i)) {
|
||||||
case CDIO_TRACK_FLAG_FALSE:
|
case CDIO_TRACK_FLAG_FALSE:
|
||||||
psz="no";
|
psz="no";
|
||||||
@@ -1121,7 +1122,13 @@ main(int argc, const char *argv[])
|
|||||||
psz="error";
|
psz="error";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
printf( " %-8d %s", cdio_get_track_channels(p_cdio, i), psz);
|
if (i_channels == -2)
|
||||||
|
printf(" %-8s", "unknown");
|
||||||
|
else if (i_channels == -1)
|
||||||
|
printf(" %-8s", "error");
|
||||||
|
else
|
||||||
|
printf(" %-8d", i_channels);
|
||||||
|
printf( " %s", psz);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf( "\n" );
|
printf( "\n" );
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# $Id: Makefile.am,v 1.37 2004/12/19 01:43:38 rocky Exp $
|
# $Id: Makefile.am,v 1.38 2004/12/31 07:51:43 rocky Exp $
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
# Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
#
|
#
|
||||||
@@ -48,7 +48,7 @@ check_SCRIPTS = check_nrg.sh check_cue.sh check_cd_read.sh \
|
|||||||
|
|
||||||
check_PROGRAMS = $(hack)
|
check_PROGRAMS = $(hack)
|
||||||
|
|
||||||
check_DATA = vcd_demo.right \
|
check_DATA = vcd_demo.right vcd_demo_vcdinfo.right vcd_demo_vcdinfo_toc.right \
|
||||||
videocd.right videocd.nrg \
|
videocd.right videocd.nrg \
|
||||||
cdda.right cdda.toc cdda.cue cdda.bin \
|
cdda.right cdda.toc cdda.cue cdda.bin \
|
||||||
isofs-m1.right isofs-m1.toc isofs-m1.cue isofs-m1.bin \
|
isofs-m1.right isofs-m1.toc isofs-m1.cue isofs-m1.bin \
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DA
|
Disc mode is listed as: CD-DA
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy? Channels Premphasis?
|
||||||
1: 00:02:00 000000 audio false
|
1: 00:02:00 000000 audio false ? unknown ?
|
||||||
170: 00:09:64 000589 leadout (1 MB)
|
170: 00:09:64 000589 leadout (1 MB)
|
||||||
Media Catalog Number (MCN): 123456789ABCD
|
Media Catalog Number (MCN): 123456789ABCD
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ CATALOG 0000010271955
|
|||||||
PERFORMER "Richard Stallman"
|
PERFORMER "Richard Stallman"
|
||||||
FILE "BOING.BIN" BINARY
|
FILE "BOING.BIN" BINARY
|
||||||
TRACK 01 AUDIO
|
TRACK 01 AUDIO
|
||||||
|
FLAGS DCP
|
||||||
INDEX 01 00:00:00
|
INDEX 01 00:00:00
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DA
|
Disc mode is listed as: CD-DA
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy? Channels Premphasis?
|
||||||
1: 00:02:00 000000 audio false
|
1: 00:02:00 000000 audio false yes 2 no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): 0000010271955
|
Media Catalog Number (MCN): 0000010271955
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// $Id: cdda.toc,v 1.3 2004/07/25 09:57:04 rocky Exp $
|
// $Id: cdda.toc,v 1.4 2004/12/31 07:51:43 rocky Exp $
|
||||||
|
|
||||||
// Language number should always start with 0
|
// Language number should always start with 0
|
||||||
LANGUAGE 0 {
|
LANGUAGE 0 {
|
||||||
@@ -10,4 +10,5 @@ CATALOG "0000010271955"
|
|||||||
CD_DA
|
CD_DA
|
||||||
|
|
||||||
TRACK AUDIO
|
TRACK AUDIO
|
||||||
|
COPY
|
||||||
FILE "cdda.bin" 00:00:00 00:00:00
|
FILE "cdda.bin" 00:00:00 00:00:00
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#$Id: check_cue.sh.in,v 1.21 2004/09/04 00:06:50 rocky Exp $
|
#$Id: check_cue.sh.in,v 1.22 2004/12/31 07:51:43 rocky Exp $
|
||||||
# Tests to see that BIN/CUE and cdrdao TOC file iamge reading is correct
|
# Tests to see that BIN/CUE and cdrdao TOC file iamge reading is correct
|
||||||
# (via cd-info).
|
# (via cd-info).
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ testnum=CD-DA
|
|||||||
opts="--quiet --no-device-info --cue-file ${srcdir}/${fname}.cue --no-cddb"
|
opts="--quiet --no-device-info --cue-file ${srcdir}/${fname}.cue --no-cddb"
|
||||||
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
||||||
RC=$?
|
RC=$?
|
||||||
check_result $RC "cd-info CUE test $testnum" "cd-info $opts"
|
check_result $RC "cd-info CUE test $testnum" "${CD_INFO} $opts"
|
||||||
|
|
||||||
|
|
||||||
opts="--quiet --no-device-info --bin-file ${srcdir}/${fname}.bin --no-cddb"
|
opts="--quiet --no-device-info --bin-file ${srcdir}/${fname}.bin --no-cddb"
|
||||||
@@ -35,7 +35,7 @@ check_result $RC "cd-info BIN test $testnum" "cd-info $opts"
|
|||||||
opts="--quiet --no-device-info --toc-file ${srcdir}/${fname}.toc --no-cddb"
|
opts="--quiet --no-device-info --toc-file ${srcdir}/${fname}.toc --no-cddb"
|
||||||
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
||||||
RC=$?
|
RC=$?
|
||||||
check_result $RC "cd-info TOC test $testnum" "cd-info $opts"
|
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
|
||||||
|
|
||||||
fname=isofs-m1
|
fname=isofs-m1
|
||||||
testnum='ISO 9660 mode1 CUE'
|
testnum='ISO 9660 mode1 CUE'
|
||||||
@@ -43,7 +43,7 @@ if test -f ${srcdir}/${fname}.bin ; then
|
|||||||
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/${fname}.cue --iso9660"
|
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/${fname}.cue --iso9660"
|
||||||
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
||||||
RC=$?
|
RC=$?
|
||||||
check_result $RC "cd-info CUE test $testnum" "$opts"
|
check_result $RC "cd-info CUE test $testnum" "${CD_INFO} $opts"
|
||||||
else
|
else
|
||||||
echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
|
echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
|
||||||
fi
|
fi
|
||||||
@@ -53,7 +53,7 @@ if test -f ${srcdir}/${fname}.bin ; then
|
|||||||
opts="-q --no-device-info --no-disc-mode --toc-file ${srcdir}/${fname}.toc --iso9660"
|
opts="-q --no-device-info --no-disc-mode --toc-file ${srcdir}/${fname}.toc --iso9660"
|
||||||
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
||||||
RC=$?
|
RC=$?
|
||||||
check_result $RC "cd-info TOC test $testnum" "cd-info $opts"
|
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
|
||||||
else
|
else
|
||||||
echo "Don't see TOC file ${srcdir}/${fname}.bin. Test $testnum skipped."
|
echo "Don't see TOC file ${srcdir}/${fname}.bin. Test $testnum skipped."
|
||||||
fi
|
fi
|
||||||
@@ -69,13 +69,18 @@ if test -f ${srcdir}/${fname}.bin ; then
|
|||||||
opts="-q --no-device-info --no-disc-mode -c ${srcdir}/${fname}.cue --iso9660"
|
opts="-q --no-device-info --no-disc-mode -c ${srcdir}/${fname}.cue --iso9660"
|
||||||
test_cdinfo "$opts" ${fname}.dump $right
|
test_cdinfo "$opts" ${fname}.dump $right
|
||||||
RC=$?
|
RC=$?
|
||||||
check_result $RC "cd-info CUE test $testnum" "cd-info $opts"
|
check_result $RC "cd-info CUE test $testnum" "${CD_INFO} $opts"
|
||||||
|
|
||||||
|
if test -z "@VCDINFO_LIBS@" ; then
|
||||||
|
right=${srcdir}/${fname}.right
|
||||||
|
else
|
||||||
|
right=${srcdir}/${fname}_vcdinfo_toc.right
|
||||||
|
fi
|
||||||
opts="-q --no-device-info --no-disc-mode -t ${srcdir}/${fname}.toc --iso9660"
|
opts="-q --no-device-info --no-disc-mode -t ${srcdir}/${fname}.toc --iso9660"
|
||||||
if test -f ${srcdir}/${fname}.toc ; then
|
if test -f ${srcdir}/${fname}.toc ; then
|
||||||
test_cdinfo "$opts" ${fname}.dump $right
|
test_cdinfo "$opts" ${fname}.dump $right
|
||||||
RC=$?
|
RC=$?
|
||||||
check_result $RC "cd-info TOC test $testnum" "cd-info $opts"
|
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
|
||||||
else
|
else
|
||||||
echo "Don't see TOC file ${srcdir}/${fname}.toc. Test $testnum skipped."
|
echo "Don't see TOC file ${srcdir}/${fname}.toc. Test $testnum skipped."
|
||||||
fi
|
fi
|
||||||
@@ -89,7 +94,7 @@ if test -f ${srcdir}/${fname}.bin ; then
|
|||||||
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/${fname}.cue $vcd_opt --iso9660"
|
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/${fname}.cue $vcd_opt --iso9660"
|
||||||
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
|
||||||
RC=$?
|
RC=$?
|
||||||
check_result $RC "cd-info CUE test $testnum" "cd-info $opts"
|
check_result $RC "cd-info CUE test $testnum" "${CD_INFO} $opts"
|
||||||
else
|
else
|
||||||
echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
|
echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ PARTICULAR PURPOSE.
|
|||||||
__________________________________
|
__________________________________
|
||||||
|
|
||||||
CD-ROM Track List (1 - 1)
|
CD-ROM Track List (1 - 1)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB)
|
170: 00:06:02 000302 leadout (693 KB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD DATA (Mode 2)
|
Disc mode is listed as: CD DATA (Mode 2)
|
||||||
CD-ROM Track List (1 - 2)
|
CD-ROM Track List (1 - 2)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 XA true
|
1: 00:02:00 000000 XA true ?
|
||||||
2: 00:18:51 001251 XA true
|
2: 00:18:51 001251 XA true ?
|
||||||
170: 00:39:71 002846 leadout (6 MB)
|
170: 00:39:71 002846 leadout (6 MB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ PARTICULAR PURPOSE.
|
|||||||
__________________________________
|
__________________________________
|
||||||
|
|
||||||
CD-ROM Track List (1 - 2)
|
CD-ROM Track List (1 - 2)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 XA true
|
1: 00:02:00 000000 XA true yes
|
||||||
2: 00:09:01 000526 XA true
|
2: 00:09:01 000526 XA true yes
|
||||||
170: 00:56:56 004106 leadout (9 MB)
|
170: 00:56:56 004106 leadout (9 MB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD DATA (Mode 2)
|
Disc mode is listed as: CD DATA (Mode 2)
|
||||||
CD-ROM Track List (1 - 2)
|
CD-ROM Track List (1 - 2)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 XA true
|
1: 00:02:00 000000 XA true ?
|
||||||
2: 00:22:53 001553 XA true
|
2: 00:22:53 001553 XA true ?
|
||||||
170: 01:17:62 005687 leadout (12 MB)
|
170: 01:17:62 005687 leadout (12 MB)
|
||||||
Media Catalog Number (MCN):
|
Media Catalog Number (MCN):
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ PARTICULAR PURPOSE.
|
|||||||
__________________________________
|
__________________________________
|
||||||
|
|
||||||
CD-ROM Track List (1 - 3)
|
CD-ROM Track List (1 - 3)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 XA true
|
1: 00:02:00 000000 XA true yes
|
||||||
2: 00:17:57 001182 XA true
|
2: 00:17:57 001182 XA true yes
|
||||||
3: 00:24:71 001721 XA true
|
3: 00:24:71 001721 XA true yes
|
||||||
170: 00:30:10 002110 leadout (4 MB)
|
170: 00:30:10 002110 leadout (4 MB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
96
test/vcd_demo_vcdinfo_toc.right
Normal file
96
test/vcd_demo_vcdinfo_toc.right
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
This is free software; see the source for copying conditions.
|
||||||
|
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE.
|
||||||
|
__________________________________
|
||||||
|
|
||||||
|
CD-ROM Track List (1 - 3)
|
||||||
|
#: MSF LSN Type Green? Copy? Channels Premphasis?
|
||||||
|
1: 00:02:00 000000 XA true yes
|
||||||
|
2: 00:17:57 001182 XA true yes
|
||||||
|
3: 00:24:71 001721 XA true yes
|
||||||
|
170: 00:30:10 002110 leadout (4 MB)
|
||||||
|
Media Catalog Number (MCN): not available
|
||||||
|
__________________________________
|
||||||
|
CD Analysis Report
|
||||||
|
CD-ROM with CD-RTOS and ISO 9660 filesystem
|
||||||
|
ISO 9660: 1032 blocks, label `V0469 '
|
||||||
|
Application:
|
||||||
|
Preparer : LKVCDIMAGER 5.0.7.10(WIN32)
|
||||||
|
Publisher : LAURENS KOEHOORN
|
||||||
|
System : CD-RTOS CD-BRIDGE
|
||||||
|
Volume : V0469
|
||||||
|
Volume Set :
|
||||||
|
ISO9660 filesystem
|
||||||
|
/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 ext
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 mpegav
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 segment
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 sources
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 vcd
|
||||||
|
|
||||||
|
/EXT/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 375] 65536 Jul 14 1978 00:00 lot_x.vcd
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 407] 144 Jul 14 1978 00:00 psd_x.vcd
|
||||||
|
|
||||||
|
/MPEGAV/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
||||||
|
- ---2-xrxrxr 0 0 [fn 01] [LSN 1182] 904036 ( 796672) Jul 14 1978 00:00 avseq01.dat
|
||||||
|
- ---2-xrxrxr 0 0 [fn 02] [LSN 1721] 904036 ( 796672) Jul 14 1978 00:00 avseq02.dat
|
||||||
|
|
||||||
|
/SEGMENT/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
||||||
|
- ---2-xrxrxr 0 0 [fn 01] [LSN 225] 220780 ( 194560) Jul 14 1978 00:00 item0001.dat
|
||||||
|
|
||||||
|
/Sources/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 html
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 434] 842 Dec 11 2002 10:33 index.htm
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 435] 1216557 Jan 07 2003 18:01 menu.ppm
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 1030] 2793 Jan 07 2003 18:08 source.xml
|
||||||
|
|
||||||
|
/Sources/HTML/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 ..
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 425] 1067 Jan 07 2003 17:51 0.xml
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 426] 1067 Jan 07 2003 17:51 1.xml
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 img
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 427] 1327 Jan 07 2003 17:51 movies.css
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 428] 12024 Jan 07 2003 17:51 toc.xsl
|
||||||
|
|
||||||
|
/Sources/HTML/img/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 ..
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 408] 1999 Nov 13 2002 07:27 al.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 409] 7626 Jan 07 2003 17:42 loeki_groep_01.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 413] 9986 Jan 07 2003 17:42 loeki_groep_02.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 418] 207 Nov 14 2002 19:33 a_left.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 419] 207 Nov 14 2002 19:33 a_right.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 420] 441 Nov 13 2002 10:54 animatie.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 421] 250 Nov 14 2002 11:44 face_up2.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 422] 259 Nov 13 2002 11:09 familie.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 423] 1010 Nov 14 2002 11:52 goldstar2.gif
|
||||||
|
- ----1xrxrxr 0 0 [fn 01] [LSN 424] 1783 Nov 13 2002 07:15 vcd.gif
|
||||||
|
|
||||||
|
/VCD/:
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 .
|
||||||
|
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
||||||
|
- ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 entries.vcd
|
||||||
|
- ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 info.vcd
|
||||||
|
- ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 lot.vcd
|
||||||
|
- ----1xrxrxr 0 0 [fn 00] [LSN 184] 72 Jul 14 1978 00:00 psd.vcd
|
||||||
|
|
||||||
|
XA sectors Video CD
|
||||||
|
|
||||||
|
Format : VCD 2.0
|
||||||
|
Album : `LOEKI'
|
||||||
|
Volume count: 1
|
||||||
|
volume number: 1
|
||||||
|
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
|
||||||
|
ISO 9660: 1032 blocks, label `V0469 '
|
||||||
@@ -5,12 +5,12 @@ __________________________________
|
|||||||
|
|
||||||
Disc mode is listed as: CD DATA (Mode 2)
|
Disc mode is listed as: CD DATA (Mode 2)
|
||||||
CD-ROM Track List (1 - 5)
|
CD-ROM Track List (1 - 5)
|
||||||
#: MSF LSN Type Green?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 XA true
|
1: 00:02:00 000000 XA true ?
|
||||||
2: 00:13:01 000826 XA true
|
2: 00:13:01 000826 XA true ?
|
||||||
3: 00:16:01 001051 XA true
|
3: 00:16:01 001051 XA true ?
|
||||||
4: 00:19:01 001276 XA true
|
4: 00:19:01 001276 XA true ?
|
||||||
5: 00:22:01 001501 XA true
|
5: 00:22:01 001501 XA true ?
|
||||||
170: 00:25:01 001726 leadout (3 MB)
|
170: 00:25:01 001726 leadout (3 MB)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): not available
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
Reference in New Issue
Block a user