Remove more paranoia code
This commit is contained in:
12
src/cd-paranoia/.gitignore
vendored
12
src/cd-paranoia/.gitignore
vendored
@@ -1,12 +0,0 @@
|
||||
/*.exe
|
||||
/*.o
|
||||
/.deps
|
||||
/.libs
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
/cd-paranoia
|
||||
/*.orig
|
||||
/*~
|
||||
/*.rej
|
||||
/usage.h
|
||||
/usage.txt
|
||||
@@ -1,57 +0,0 @@
|
||||
# Copyright (C) 2004, 2005, 2006, 2007, 2008,
|
||||
# Rocky Bernstein <rocky@gnu.org>
|
||||
# Copyright (C) 1998 Monty xiphmont@mit.edu
|
||||
#
|
||||
# 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
transform = s,cd-paranoia,@CDPARANOIA_NAME@,
|
||||
|
||||
if BUILD_CD_PARANOIA
|
||||
|
||||
SUBDIRS = doc
|
||||
|
||||
GETOPT_C = getopt1.c getopt.c
|
||||
|
||||
EXTRA_DIST = usage.txt.in usage-copy.h pod2c.pl \
|
||||
doc/FAQ.txt doc/overlapdef.txt $(GETOPT_C) getopt.h
|
||||
|
||||
noinst_HEADERS = header.h report.h $(GETOPT_H)
|
||||
|
||||
cd_paranoia_SOURCES = cd-paranoia.c \
|
||||
buffering_write.c buffering_write.h \
|
||||
header.c report.c utils.h version.h $(GETOPT_C)
|
||||
|
||||
cd_paranoia_LDADD = $(LIBCDIO_LIBS) $(LIBCDIO_CDDA_LIBS) $(LIBCDIO_PARANOIA_LIBS) $(LTLIBICONV)
|
||||
|
||||
cd_paranoia_DEPENDENCIES = $(LIBCDIO_DEPS) $(LIBCDIO_CDDA_LIBS) $(LIBCDIO_PARANOIA_LIBS)
|
||||
|
||||
bin_PROGRAMS = cd-paranoia
|
||||
|
||||
INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS)
|
||||
|
||||
cd-paranoia.$(OBJEXT): usage.h
|
||||
|
||||
#: create header file used in help text: the "usage" help.
|
||||
if HAVE_PERL
|
||||
usage.h: usage.txt $(srcdir)/pod2c.pl
|
||||
$(PERL) $(srcdir)/pod2c.pl usage.txt >usage.h
|
||||
else
|
||||
usage.h: usage-copy.h
|
||||
cp usage-copy.h $@
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
MOSTLYCLEANFILES = usage.h usage.txt
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
/*
|
||||
$Id: buffering_write.c,v 1.4 2008/06/19 15:44:28 flameeyes Exp $
|
||||
|
||||
Copyright (C) 2004, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
Copyright (C) 1998, 1999 Monty <xiphmont@mit.edu>
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* Eliminate teeny little writes. patch submitted by
|
||||
Rob Ross <rbross@parl.ces.clemson.edu> --Monty 19991008 */
|
||||
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define OUTBUFSZ 32*1024
|
||||
|
||||
#include "utils.h"
|
||||
#include "buffering_write.h"
|
||||
|
||||
|
||||
/* GLOBALS FOR BUFFERING CALLS */
|
||||
static int bw_fd = -1;
|
||||
static long bw_pos = 0;
|
||||
static char bw_outbuf[OUTBUFSZ];
|
||||
|
||||
|
||||
|
||||
static long int
|
||||
blocking_write(int outf, char *buffer, long num){
|
||||
long int words=0,temp;
|
||||
|
||||
while(words<num){
|
||||
temp=write(outf,buffer+words,num-words);
|
||||
if(temp==-1){
|
||||
if(errno!=EINTR && errno!=EAGAIN)
|
||||
return(-1);
|
||||
temp=0;
|
||||
}
|
||||
words+=temp;
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
/** buffering_write() - buffers data to a specified size before writing.
|
||||
*
|
||||
* Restrictions:
|
||||
* - MUST CALL BUFFERING_CLOSE() WHEN FINISHED!!!
|
||||
*
|
||||
*/
|
||||
long int
|
||||
buffering_write(int fd, char *buffer, long num)
|
||||
{
|
||||
if (fd != bw_fd) {
|
||||
/* clean up after buffering for some other file */
|
||||
if (bw_fd >= 0 && bw_pos > 0) {
|
||||
if (blocking_write(bw_fd, bw_outbuf, bw_pos)) {
|
||||
perror("write (in buffering_write, flushing)");
|
||||
}
|
||||
}
|
||||
bw_fd = fd;
|
||||
bw_pos = 0;
|
||||
}
|
||||
|
||||
if (bw_pos + num > OUTBUFSZ) {
|
||||
/* fill our buffer first, then write, then modify buffer and num */
|
||||
memcpy(&bw_outbuf[bw_pos], buffer, OUTBUFSZ - bw_pos);
|
||||
if (blocking_write(fd, bw_outbuf, OUTBUFSZ)) {
|
||||
perror("write (in buffering_write, full buffer)");
|
||||
return(-1);
|
||||
}
|
||||
num -= (OUTBUFSZ - bw_pos);
|
||||
buffer += (OUTBUFSZ - bw_pos);
|
||||
bw_pos = 0;
|
||||
}
|
||||
/* save data */
|
||||
memcpy(&bw_outbuf[bw_pos], buffer, num);
|
||||
bw_pos += num;
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
/** buffering_close() - writes out remaining buffered data before
|
||||
* closing file.
|
||||
*
|
||||
*/
|
||||
int
|
||||
buffering_close(int fd)
|
||||
{
|
||||
if (fd == bw_fd && bw_pos > 0) {
|
||||
/* write out remaining data and clean up */
|
||||
if (blocking_write(fd, bw_outbuf, bw_pos)) {
|
||||
perror("write (in buffering_close)");
|
||||
}
|
||||
bw_fd = -1;
|
||||
bw_pos = 0;
|
||||
}
|
||||
return(close(fd));
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
$Id: buffering_write.h,v 1.4 2008/06/19 15:44:30 flameeyes Exp $
|
||||
|
||||
Copyright (C) 2004, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
Copyright (C) 1998 Monty <xiphmont@mit.edu>
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** buffering_write() - buffers data to a specified size before writing.
|
||||
*
|
||||
* Restrictions:
|
||||
* - MUST CALL BUFFERING_CLOSE() WHEN FINISHED!!!
|
||||
*
|
||||
*/
|
||||
extern long buffering_write(int outf, char *buffer, long num);
|
||||
|
||||
/** buffering_close() - writes out remaining buffered data before
|
||||
* closing file.
|
||||
*
|
||||
*/
|
||||
extern int buffering_close(int fd);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
2
src/cd-paranoia/doc/.gitignore
vendored
2
src/cd-paranoia/doc/.gitignore
vendored
@@ -1,2 +0,0 @@
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
@@ -1,620 +0,0 @@
|
||||
|
||||
CDDA Paranoia FAQ
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
"Suspicion Breeds Confidence!"
|
||||
--Brazil
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
August 20, 1999
|
||||
|
||||
For those new to Paranoia and cdparanoia, this is the
|
||||
best, first place to look for information and answers to
|
||||
your questions.
|
||||
|
||||
More information can be found on the cdparanoia homepage:
|
||||
|
||||
http://www.xiph.org/paranoia/
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Table of Contents
|
||||
|
||||
1. Questions about the Paranoia and cdparanoia projects
|
||||
1. What is cdparanoia?
|
||||
2. Why use cdparanoia?
|
||||
3. What is Paranoia?
|
||||
4. Is cdparanoia / Paranoia portable?
|
||||
5. What is Paranoia's history?
|
||||
6. Is cdparanoia/Paranoia related to cdda2wav?
|
||||
7. What are the differences between Paranoia II, III and IV?
|
||||
8. Are there cdparanoia mailing lists for users or developers?
|
||||
9. What is Paranoia IV's current development status?
|
||||
10. Will cdparanoia, and cdda2wav or xcdroast merge anytime in the future?
|
||||
|
||||
2. Questions about using Paranoia and cdparanoia
|
||||
1. Requirements to run cdparanoia (as of alpha 3)
|
||||
2. Does Cdparanoia support ATAPI drives? SCSI Emulation? Parallel port
|
||||
drives?
|
||||
3. I can play audio CDs perfectly; why is reading the CD into a file so
|
||||
difficult and prone to errors?
|
||||
4. Does cdparanoia lose quality from the CD recording?
|
||||
5. Can cdparanoia detect pregaps? Can it remove the two second gaps
|
||||
between tracks?
|
||||
6. Why don't you implement CDDB? A GUI? Four million other features I want?
|
||||
7. The progress meter: What is that weird bargraph during ripping?
|
||||
8. How can I tell if my drive would be OK with regular cdda2wav?
|
||||
9. What is the biggest value of SG_BIG_BUFF I can use?
|
||||
10. Why do the binary files from two reads differ when compared?
|
||||
11. Why does CDParanoia rip files off into WAV format (and other sample
|
||||
formats) but not CDDA format?
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Questions about the Paranoia and cdparanoia projects
|
||||
|
||||
What is cdparanoia?
|
||||
|
||||
Cdparanoia is a Compact Disc Digital Audio (CDDA) extraction tool,
|
||||
commonly known on the net as a 'ripper'. The application is built on
|
||||
top of the Paranoia library, which is doing the real work (the
|
||||
Paranoia source is included in the cdparanoia source distribution).
|
||||
Like the original cdda2wav, cdparanoia package reads audio from the
|
||||
CDROM directly as data, with no analog step between, and writes the
|
||||
data to a file or pipe in WAV, AIFC or raw 16 bit linear PCM.
|
||||
|
||||
Cdparanoia is a bit different than most other CDDA extration tools. It
|
||||
contains few-to-no 'extra' features, concentrating only on the ripping
|
||||
process and knowing as much as possible about the hardware performing
|
||||
it. Cdparanoia will read correct, rock-solid audio data from
|
||||
inexpensive drives prone to misalignment, frame jitter and loss of
|
||||
streaming during atomic reads. Cdparanoia will also read and repair
|
||||
data from CDs that have been damaged in some way.
|
||||
|
||||
At the same time, however, cdparanoia turns out to be easy to use and
|
||||
administrate; It has no compile time configuration, happily
|
||||
autodetecting the CDROM, its type, its interface and other aspects of
|
||||
the ripping process at runtime. A single binary can serve the diverse
|
||||
hardware of the do-it-yourself computer laboratory from Hell...
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Why use cdparanoia?
|
||||
|
||||
All CDROM drives are not created equal. You'll need cdparanoia if
|
||||
yours is a little less equal than others-- or maybe you just keep your
|
||||
CD collection in a box of full of gravel. Jewel cases are for wimps;
|
||||
you know what I'm talking about.
|
||||
|
||||
Unfortunately, cdda2wav and readcdda cannot work properly with a large
|
||||
number of CDROM drives in the desktop world today. The most common
|
||||
problem is sporadic or regular clicks and pops in the read sample,
|
||||
regardless of 'nsector' or 'overlap' settings. Cdda2wav also cannot do
|
||||
anything about scratches (and they can cause cdda2wav to break).
|
||||
Cdparanoia is also smarter about probing CDDA support from SCSI and
|
||||
IDE-SCSI drives; many drives that do not work at all with cdda2wav,
|
||||
readcdda, tosha, etc, will work just fine with cdparanoia.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
What is Paranoia?
|
||||
|
||||
Paranoia is a library project that provides a platform independent,
|
||||
unified, robust interface for packet-command based devices. In the
|
||||
case of CDROM drives for example, handling and programming cdrom
|
||||
drives becomes identical whether on Solaris or Linux, or if the Linux
|
||||
drive is SCSI, ATAPI or on the parallel port. In this way, Paranoia is
|
||||
similar to Joerg Schilling's SCG library.
|
||||
|
||||
In addition to device/platform unification, the library provides tools
|
||||
for automatically identifying devices, and intelligent
|
||||
handling/correction of errors at all levels of the interface. On top
|
||||
of a generic low-level packet command layer, Paranoia implements
|
||||
high-level error-correcting interfaces for tasks such as CDDA where
|
||||
broken or vastly non-standard devices are the rule, rather than the
|
||||
exception.
|
||||
|
||||
The Paranoia libraries are incomplete; the first release for use will
|
||||
be Paranoia IV, to be bundled with cdparanoia alpha release 10.
|
||||
Programming documentation for Paranoia IV will appear shortly on the
|
||||
documentation page as Programming with Paranoia IV. Programmers
|
||||
interested in contributing to Paranoia IV should read the heading
|
||||
Paranoia IV development information.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Is cdparanoia / Paranoia portable?
|
||||
|
||||
Paranoia III is Linux only (although it runs on all the flavors of
|
||||
linux with a 2.0 or later kernel. It is not only for x86).
|
||||
|
||||
Paranoia IV (cdparanoia alpha 10 and later) is a port to other UNIX
|
||||
flavors and uses a substantially revised infrastructure. NetBSD and
|
||||
Solaris will be first; others will be added as time and outside
|
||||
assistance allow.
|
||||
|
||||
Suggestions on the proper way to handle each OS's native configuration
|
||||
idioms are welcome. I want Rhapsody cdparanoia to look just like other
|
||||
Rhapsody apps just as much as I want Linux cdparanoia to look like a
|
||||
Linux app.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
What is Paranoia's history?
|
||||
|
||||
Is cdparanoia/Paranoia related to cdda2wav?
|
||||
|
||||
Paranoia I/II and cdparanoia began life as a set of patches to Heiko
|
||||
Eissfeldt's 'cdda2wav' application. Cdparanoia gained its own life as
|
||||
a rewrite of cdda2wav in January of 1998 as "Paranoia III". Paranoia
|
||||
III proved to have an inadequate structure for extention and use on
|
||||
other platforms, so Paranoia IV began to take form in fall of 1998.
|
||||
|
||||
Modern Paranoia no longer has any relation to cdda2wav aside from
|
||||
general cooperation in sharing details between the two projects. In
|
||||
fact, cdda2wav itself doesn't look much like the cdda2wav of a year or
|
||||
two ago.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
What are the differences between Paranoia II, III and IV?
|
||||
|
||||
Paranoia I and II were a set of patches to Heiko Eissfeldt's cdda2wav
|
||||
0.8. These patches did nothing more than add some error checks to the
|
||||
standard cdda2wav. They were inefficient and only worked with some
|
||||
drives.
|
||||
|
||||
Paranoia III was the first version to be written seperately from
|
||||
cdda2wav in the form of a standalone library. It was not terribly
|
||||
portable, however, and the API proved to be inadequate for extension.
|
||||
|
||||
Paranoia IV is the upcoming new generation of CDDA Paranoia. It is
|
||||
both portable and more capable than Paranoia III.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Are there cdparanoia mailing lists for users or developers?
|
||||
|
||||
Yes. In addition to the mailing lists below, read-only CVS access to
|
||||
Paranoia III and IV will be availble from xiph.org soon (Paranoia IV
|
||||
is not yet under CVS). See http://www.xiph.org/paranoia/ for upto
|
||||
date information and automated ways of subscribing.
|
||||
|
||||
Mailing list for Paranoia and Cdparanoia users (paranoia@xiph.org):
|
||||
|
||||
To join: send a message containing only the one-word line
|
||||
'subscribe' in the body to paranoia-request@xiph.org. Do not send
|
||||
subscription requests directly to the main list. The list server at
|
||||
xiph.org should respond fairly quickly with a welcome message.
|
||||
|
||||
Mailing list for Paranoia IV developers: paranoia-dev@xiph.org
|
||||
|
||||
The developers list is intended for focused development discussion
|
||||
amongst the core Paranoia development team and outside groups
|
||||
developing their own applications using Paranoia. Of course, anyone is
|
||||
welcome to read.
|
||||
|
||||
To join: send a message containing only the one-word line
|
||||
'subscribe' in the body to paranoia-dev-request@xiph.org. Do not
|
||||
send subscription requests directly to the main list.
|
||||
|
||||
List for general CDROM tools
|
||||
|
||||
There's also a general mailing list for those using/developing CDDA
|
||||
extraction and CD writing tools
|
||||
(cdwrite@other.debian.org). Subscribe by sending mail to
|
||||
other-cdwrite-request@lists.debian.org containing only the word
|
||||
subscribe in the body. Do not send subscription requests directly to
|
||||
the main list.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
What is Paranoia IV's current development status?
|
||||
|
||||
Paranoia IV code will soon be available for internal evaluation,
|
||||
testing and development work to the developers involved in the
|
||||
Paranoia project; read-only CVS access should also be available soon.
|
||||
A public release does not yet set for any firm date.
|
||||
|
||||
Those interested in contributing to the development of Paranoia, or
|
||||
who wich to contribute to porting to other platforms, please contact
|
||||
us. Paranoia IV prerelease code will be available to porters soon; I
|
||||
prefer to be in contact with those porting to other platforms so that
|
||||
Paranoia development has consistent quality across platforms.
|
||||
|
||||
At the moment, volunteers have contacted me for most major platforms,
|
||||
but more help is still welcome on every OS.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Will cdparanoia, and cdda2wav or xcdroast merge anytime in the future?
|
||||
|
||||
Probably not beyond the point it already has. Versions of XCDRoast
|
||||
(and other GUI frontends; see the links page) that make use of
|
||||
cdparanoia already exist.
|
||||
|
||||
Although the cdrecord/cdda2wav and Paranoia projects cooperate,
|
||||
they're likely to remain seperate as the former is committed to Joerg
|
||||
Schilling's libscg (part of the cdrecord package), just as cdparanoia
|
||||
is committed to using Paranoia IV.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Questions about using Paranoia and cdparanoia
|
||||
|
||||
Requirements to run cdparanoia (as of alpha 3)
|
||||
|
||||
1. A CDDA capable CDROM drive
|
||||
2. Linux 2.0, 2.1, 2.2 or 2.3
|
||||
1. kernel support for the particular CDROM in use
|
||||
2. kernel support for the generic SCSI interface (if using a
|
||||
SCSI CDROM drive) and proper device (/dev/sg?) files (get
|
||||
them with the MAKEDEV script) in /dev. Most distributions
|
||||
already have the /dev/sg? files.
|
||||
|
||||
The cdparanoia binary will likely work with Linux 1.2 and 1.3, but I
|
||||
do not actively support kernels older than 2.0 I do know for a fact
|
||||
that the source will not build on kernel installs older than 2.0, but
|
||||
the problems are mostly related to the ever-changing locations of
|
||||
proprietary cdrom include files.
|
||||
|
||||
Also, although a 2.0 stock SCSI setup will work, performance will be
|
||||
better if linux/include/scsi/sg.h defines SG_BIG_BUFF to 65536 (it
|
||||
can't be bigger). Recent kernels (2.0.30+?) already set it to 32768;
|
||||
that's OK. Cdparanoia will tell you how big your generic SCSI buffer
|
||||
is. 2.2+ does not use a static DMA pool for SG, so there is nothing
|
||||
to tune.
|
||||
|
||||
Unlike cdda2wav, cdparanoia does not require threading, IPC or
|
||||
(optionally) sound card support. /proc filesystem support is no longer
|
||||
required (but encouraged!), and /dev/sr? or /dev/scd? devices are not
|
||||
required for SCSI, although they do add functionality if present.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Does Cdparanoia support ATAPI drives? SCSI Emulation? Parallel port
|
||||
drives?
|
||||
|
||||
Alpha 9 supports the full ATAPI, IDE-SCSI and SCSI generic interfaces
|
||||
under Linux.
|
||||
|
||||
Note that the native ATAPI driver is supported, but that IDE-SCSI
|
||||
emulation works better with ATAPI drives. This is an issue of control;
|
||||
the emulation interface gives cdparanoia complete control over the
|
||||
drive whereas the native ATAPI driver insists on hiding the device
|
||||
under an abstraction layer with poor error handling capabilities. Note
|
||||
also that a number of ATAPI drives that do not work at all with the
|
||||
ATAPI driver (error 006: Could not read audio) *will* work with
|
||||
IDE-SCSI emulation.
|
||||
|
||||
Parallel port based CDROM (paride) drives are not yet supported;
|
||||
support for these drives in Linux will appear in alpha release 10
|
||||
(Paranoia IV).
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
I can play audio CDs perfectly; why is reading the CD into a file so
|
||||
difficult and prone to errors? It's just the same thing.
|
||||
|
||||
Unfortunately, it isn't that easy.
|
||||
|
||||
The audio CD is not a random access format. It can only be played from
|
||||
some starting point in sequence until it is done, like a vinyl LP.
|
||||
Unlike a data CD, there are no synchronization or positioning headers
|
||||
in the audio data (a CD, audio or data, uses 2352 byte sectors. In a
|
||||
data CD, 304 bytes of each sector is used for header, sync and error
|
||||
correction. An audio CD uses all 2352 bytes for data). The audio CD
|
||||
*does* have a continuous fragmented subchannel, but this is only good
|
||||
for seeking +/-1 second (or 75 sectors or ~176kB) of the desired area,
|
||||
as per the SCSI spec.
|
||||
|
||||
When the CD is being played as audio, it is not only moving at 1x, the
|
||||
drive is keeping the media data rate (the spin speed) exactly locked
|
||||
to playback speed. Pick up a portable CD player while it's playing and
|
||||
rotate it 90 degrees. Chances are it will skip; you disturbed this
|
||||
delicate balance. In addition, a player is never distracted from what
|
||||
it's doing... it has nothing else taking up its time. Now add a
|
||||
non-realtime, (relatively) high-latency, multitasking kernel into the
|
||||
mess; it's like picking up the player and constantly shaking it.
|
||||
|
||||
CDROM drives generally assume that any sort of DAE will be linear and
|
||||
throw a readahead buffer at the task. However, the OS is reading the
|
||||
data as broken up, seperated read requests. The drive is doing
|
||||
readahead buffering and attempting to store additional data as it
|
||||
comes in off media while it waits for the OS to get around to reading
|
||||
previous blocks. Seeing as how, at 36x, data is coming in at
|
||||
6.2MB/second, and each read is only 13 sectors or ~30k (due to DMA
|
||||
restrictions), one has to get off 208 read requests a second, minimum
|
||||
without any interruption, to avoid skipping. A single swap to disc or
|
||||
flush of filesystem cache by the OS will generally result in loss of
|
||||
streaming, assuming the drive is working flawlessly. Oh, and virtually
|
||||
no PC on earth has that kind of I/O throughput; a Sun Enterprise
|
||||
server might, but a PC does not. Most don't come within a factor of
|
||||
five, assuming perfect realtime behavior.
|
||||
|
||||
To keep piling on the difficulties, faster drives are often prone to
|
||||
vibration and alignment problems; some are total fiascos. They lose
|
||||
streaming *constantly* even without being interrupted. Philips
|
||||
determined 15 years ago that the CD could only be spun up to 50-60x
|
||||
until the physical CD (made of polycarbonate) would deform from
|
||||
centripetal force badly enough to become unreadable. Today's players
|
||||
are pushing physics to the limit. Few do so terribly reliably.
|
||||
|
||||
Note that CD 'playback speed' is an excellent example of advertisers
|
||||
making numbers lie for them. A 36x cdrom is generally not spinning at
|
||||
36x a normal drive's speed. As a 1x drive is adjusting velocity
|
||||
depending on the access's distance from the hub, a 36x drive is
|
||||
probably using a constant angular velocity across the whole surface
|
||||
such that it gets 36x max at the edge. Thus it's actually spinning
|
||||
slower, assuming the '36x' isn't a complete lie, as it is on some
|
||||
drives.
|
||||
|
||||
Because audio discs have no headers in the data to assist in picking
|
||||
up where things got lost, most drives will just guess.
|
||||
|
||||
This doesn't even *begin* to get into stupid firmware bugs. Even
|
||||
Plextors have occasionally had DAE bugs (although in every case,
|
||||
Plextor has fixed the bug *and* replaced/repaired drives for free).
|
||||
Cheaper drives are often complete basket cases.
|
||||
|
||||
Rant Update (for those in the know):
|
||||
|
||||
Several folks, through personal mail and on Usenet, have pointed out
|
||||
that audio discs do place absolute positioning information for (at
|
||||
least) nine out of every ten sectors into the Q subchannel, and that
|
||||
my original statement of +/-75 sectors above is wrong. I admit to it
|
||||
being misleading, so I'll try to clarify.
|
||||
|
||||
The positioning data certainly is in subchannel Q; the point is moot
|
||||
however, for a couple of reasons.
|
||||
|
||||
1. The SCSI and ATAPI specs (there are a couple of each, pick one)
|
||||
don't give any way to retrieve the subchannel from a desired
|
||||
sector. The READ SUB-CHANNEL command will hand you Q all right,
|
||||
you just don't have any idea where exactly that Q came from. The
|
||||
command was intended for getting rough positioning information
|
||||
from audio discs that are paused or playing. This is audio;
|
||||
missing by several sectors is a tiny fraction of a second.
|
||||
|
||||
2. Older CDROM drives tended not to expect 'READ SUB-CHANNEL' unless
|
||||
the drive was playing audio; calling it during data reads could
|
||||
crash the drive and lock up the system. I had one of these drives
|
||||
(Apple 803i, actually a repackaged Sony CD-8003).
|
||||
|
||||
3. MMC-2 *does* give a way to retrieve the Q subchannel along with
|
||||
user data in the READ CD command. Although the drive is required
|
||||
to recognize the fetaure, it is allowed to simply return zeroes
|
||||
(effectively leaving the feature unimplemented). Guess how many
|
||||
drives actually implement this feature: not many.
|
||||
|
||||
4. Assuming you *can* get back the subchannel, most CDROM drives
|
||||
seem to understand audio discs primarily at the "little frame"
|
||||
level; thus sector-level structures aren't reliable. One might
|
||||
get a reassembled subQ, but if the read began in the middle of a
|
||||
sector (or dropped a little frame in the middle; many do), the
|
||||
subQ is likely corrupt and useless.
|
||||
|
||||
As reassembling uncorrupted frames is easy without the subchannel, and
|
||||
corrupted reads likely result in a corrupted subchannel too,
|
||||
cdparanoia treats the subchannel as more trouble than it's worth
|
||||
(during verification).
|
||||
|
||||
At least one other package (Exact Audio Copy for Win32) manages to use
|
||||
the subchannel to enhance the Table of Contents information. I don't
|
||||
know if this only works on MMC-2 drives that support returning Q with
|
||||
READ CD, but I think I'm going to revisit using the subchannel for
|
||||
extra TOC information.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Does cdparanoia lose quality from the CD recording? Does it just
|
||||
re-record the analog signal played from the CDROM drive?
|
||||
|
||||
No to both. Cdparanoia (and all other true CD digital audio extraction
|
||||
tools) reads the values off the CDROM in digital form. The data never
|
||||
comes anywhere near the soundcard, and does not pass through any
|
||||
conversion to analog first.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Can cdparanoia detect pregaps? Can it remove the two second gaps
|
||||
between tracks
|
||||
|
||||
Not yet. This feature is slated to appear in a release of alpha 10
|
||||
(Paranoia IV).
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Why don't you implement CDDB? A GUI? Four million other features I
|
||||
want?
|
||||
|
||||
Too many features spoil the broth. "Software is not perfect when there
|
||||
is nothing left to add, but rather when there is nothing extraneous
|
||||
left to take away." The goal of cdparanoia is perfect, rock-solid
|
||||
audio from every capable cdrom on every platform. As this goal has not
|
||||
yet been met, I'm uninterested in adding unrelated capability to the
|
||||
core engine.
|
||||
|
||||
Several GUIs that incorporate cdparanoia already exist; I'm in the
|
||||
process of compiling a list (see the links page). Other software that
|
||||
implements new features by wrapping around cdpar anoia (like CDDB
|
||||
lookup) also exist.
|
||||
|
||||
'Cdparanoia' will not play to sound cards (you can always pipe the
|
||||
output to a WAV player), do MD5 signatures, read CD catalog or serial
|
||||
numbers (this *is* a feature I plan to add), search indexes, do rate
|
||||
reduction (use Sox, Ogg or a million others), or generally make use of
|
||||
the maximum speed available from a CDROM drive.
|
||||
|
||||
If your CDROM drive is *not* prone to jitter and you don't have
|
||||
scratched discs to worry about, you might want to look at the original
|
||||
cdda2wav for features cdparanoia does not have. Keep in mind however
|
||||
that even the really good drives do occasionally stumble. I know of at
|
||||
least one cdparanoia user who insists on using full paranoia with his
|
||||
Plextor UltraPlex because it once botched a single sector from a rip;
|
||||
he'd already burned the track to several CD-Rs before noticing...
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
The progress meter: What is that weird bargraph during ripping?
|
||||
|
||||
It's a progress/status indicator. There's a completion bargraph, a
|
||||
number indicating the last sector number completely verified of the
|
||||
read currently happening, an overlap indicator, a gratuitous smilie,
|
||||
and a heartbeat indicator to show if the process is still alive, hung,
|
||||
or spinning.
|
||||
|
||||
The bargraph also marks points during the read with characters to
|
||||
indicate where various 'paranoia' features were tripped into action.
|
||||
Different bargraph characters indicate different things occurred
|
||||
during that part of the read. The letters are heirarchical; for
|
||||
example if a trasport error occurs in the same sector as jitter, the
|
||||
bargraph will print 'e' instead of '-'.
|
||||
|
||||
Legend of
|
||||
characters
|
||||
A hyphen indicates that two blocks overlapped properly,
|
||||
- but they were skewed (frame jitter). This case is
|
||||
completely corrected by Paranoia and is not a cause for
|
||||
concern.
|
||||
A plus indicates not only frame jitter, but an
|
||||
unreported, uncorrected loss of streaming in the middle
|
||||
+ of an atomic read operation. That is, the drive lost
|
||||
its place while reading data, and restarted in some
|
||||
random incorrect location without alerting the kernel.
|
||||
This case is also corrected by Paranoia.
|
||||
An 'e' indicates that a transport level SCSI or ATAPI
|
||||
e error was caught and corrected. Paranoia will
|
||||
completely repair such an error without audible
|
||||
defects.
|
||||
An "X" indicates a scratch was caught and corrected.
|
||||
X Cdparanoia wil interpolate over any missing/corrupt
|
||||
samples.
|
||||
An asterisk indicates a scratch and jitter both
|
||||
* occurred in this general area of the read. Cdparanoia
|
||||
wil interpolate over any missing/corrupt samples.
|
||||
A ! indicates that a read error got through the stage
|
||||
one of error correction and was caught by stage two.
|
||||
Many '!' are a cause for concern; it means that the
|
||||
drive is making continuous silent errors that look
|
||||
! identical on each re-read, a condition that can't
|
||||
always be detected. Although the presence of a '!'
|
||||
means the error was corrected, it also means that
|
||||
similar errors are probably passing by unnoticed.
|
||||
Upcoming releases of cdparanoia will address this
|
||||
issue.
|
||||
A V indicates a skip that could not be repaired or a
|
||||
V sector totally obliterated on the medium (hard read
|
||||
error). A 'V' marker generally results in some audible
|
||||
defect in the sample.
|
||||
|
||||
The smilie is actually relevant. It makes different faces depending on
|
||||
the current errors it's correcting.
|
||||
|
||||
Legend of
|
||||
smilies
|
||||
|
||||
:-) Normal operation. No errors to report; if any jitter is
|
||||
present, it's small.
|
||||
:-| Normal operation, but average jitter is quite large.
|
||||
A rift was found in the middle of an atomically read
|
||||
block; in other words, the drive lost streaming in the
|
||||
:-P middle of a read and did not abort, alert the kernel , or
|
||||
restart in the proper location. The drive silently
|
||||
continued reading in so me random location.
|
||||
|
||||
:-/ The read appears to be drifting; cdparanoia is shifting
|
||||
all of its reads to make up for it.
|
||||
Two matching vectors were found to disagree even after
|
||||
first stage verification; this is an indication that the
|
||||
drive is reliably dropping/adding bytes at consistent
|
||||
locations. Because the verification algorithm is partially
|
||||
8-| based on rereading and comparing vectors, if two vectors
|
||||
read incorrectly but identically, cdparanoia may never
|
||||
detect the problem. This smilie indicates that such a
|
||||
situation *was* detected; other instances may be slipping
|
||||
through.
|
||||
Transport or drive error. This is normally not a cause for
|
||||
concern; cdparanoia can repair just about any error that
|
||||
:-0 it actually detects. For more information about these
|
||||
errors, run cdparanoia with the -v option. Any all all
|
||||
errors and a description will dump to stderr.
|
||||
:-( Cdparanoia detected a scratch.
|
||||
Cdparanoia gave up trying to repair a sector; it could not
|
||||
read consistent enough information from the drive to do
|
||||
;-( so. At this point cdparanoia will make the best guess it
|
||||
has available and continue (a V appears in the bargraph at
|
||||
this point). This often results in an audible defect.
|
||||
Cdparanoia displays this smilie both when finished reading
|
||||
:^D a track and also if no error correction mechanism has been
|
||||
tripped so far reading a new track.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
How can I tell if my drive would be OK with regular cdda2wav?
|
||||
|
||||
Easy. Run cdparanoia; if the progress meter never shows any characters
|
||||
but the little arrow going across the screen, the CDROM drive is
|
||||
probably one of the (currently) few drives that can read a pristine
|
||||
stream of data off an audio disc regardless of circumstances. This
|
||||
drive will work quite well with cdda2wav (or cdparanoia using the '-Z'
|
||||
option)
|
||||
|
||||
A drive that results in a bargraph of all hyphens would *likely* work
|
||||
OK with cdda2wav, but it's less certain.
|
||||
|
||||
Any other characters in the bargraph (colons, semicolons, pluses, Xs,
|
||||
etc..) indicate that a fixups had to be performed at that point during
|
||||
the read; that read would have failed or 'popped' using cdda2wav.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
What is the biggest value of SG_BIG_BUFF I can use?
|
||||
|
||||
This is relevant only to 2.0 kernels and early 2.2 kernels.
|
||||
Modern Linux kernels no longer have a single static SG DMS pool.
|
||||
|
||||
For 2.0, 65536 (64 kilobytes). Some motherboards can use 128kB
|
||||
DMA, but attempting to use 128kB DMA on a machine that can't do
|
||||
it will crash the machine. Cdparanoia will not use larger than
|
||||
64kB requests.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Why do the binary files from two reads differ when compared?
|
||||
|
||||
The problem is the beginning point of the read. Cdparanoia enforces
|
||||
consistency from whatever the drive considers to be the starting point
|
||||
of the data, and the drive is returning a slightly different beginning
|
||||
point each time. The beginning point should not vary by much, and if
|
||||
this shift is accounted for when comparing the files, they should
|
||||
indeed turn out to be the same (aside from errors duly reported during
|
||||
the read; scratch correction or any reported skips will very likely
|
||||
also result in different files).
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Why do CDParanoia, CDDA2WAV et al. rip files off into WAV format (and
|
||||
other sample formats) but not CDDA format?
|
||||
|
||||
WAV and AIFC are simply convenient formats that include enough header
|
||||
information such that multipurpose audio software can uniquely
|
||||
identify the form of the data in the sample. In raw form, mulaw, SND
|
||||
and CDDA look exactly alike to a program like xplay, and are very
|
||||
likely to blow your ears (and stereo) out when played! Header formats
|
||||
are more versatile and safer. By default, cdparanoia and cdda2wav
|
||||
write WAV files.
|
||||
|
||||
That said, cdparanoia (and cdda2wav) will write raw, headerless
|
||||
formats if explicitly told to. Cdparanoia writes headerless, signed 16
|
||||
bit, 44.1kHz stero files in little endian format (LSB first) when
|
||||
given the -r option, and the same in big endian (MSB) format when
|
||||
given -R. All files written by cdparanoia are a multiple of 2352 bytes
|
||||
long (minus the header, if any) as required by cd writer software.
|
||||
|
||||
|
||||
Cdparanoia and the Laser-Playback-Head-of-Omniscience logo are
|
||||
trademarks (tm) of Xiphophorus (xiph.org). This document copyright (C)
|
||||
1994-1999 Xiphophorus. All rights reserved. Comments and questions
|
||||
are welcome.
|
||||
@@ -1,27 +0,0 @@
|
||||
# $Id: Makefile.am,v 1.4 2008/04/17 17:39:48 karl Exp $
|
||||
#
|
||||
# Copyright (C) 2005, 2007, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
#
|
||||
# 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
SUBDIRS = en ja
|
||||
EXTRA_DIST = FAQ.txt overlapdef.txt
|
||||
|
||||
mostlyclean-generic:
|
||||
-rm -f *~ \#* .*~ .\#*
|
||||
|
||||
maintainer-clean-generic:
|
||||
-@echo "This command is intended for maintainers to use;"
|
||||
-@echo "it deletes files that may require special tools to rebuild."
|
||||
-rm -f Makefile.in
|
||||
3
src/cd-paranoia/doc/en/.gitignore
vendored
3
src/cd-paranoia/doc/en/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
/cd-paranoia.1
|
||||
@@ -1,30 +0,0 @@
|
||||
# $Id: Makefile.am,v 1.3 2008/04/17 17:39:48 karl Exp $
|
||||
#
|
||||
# Copyright (C) 2005, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
#
|
||||
# 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
manfiles = cd-paranoia.1
|
||||
man_MANS = $(manfiles)
|
||||
transform = s,cd-paranoia,@CDPARANOIA_NAME@,
|
||||
|
||||
EXTRA_DIST = $(manfiles) cd-paranoia.1.in
|
||||
|
||||
mostlyclean-generic:
|
||||
-rm -f *~ \#* .*~ .\#*
|
||||
|
||||
maintainer-clean-generic:
|
||||
-@echo "This command is intended for maintainers to use;"
|
||||
-@echo "it deletes files that may require special tools to rebuild."
|
||||
-rm -f Makefile.in $(manfiles)
|
||||
@@ -1,381 +0,0 @@
|
||||
.TH @CDPARANOIA_NAME@ 1 "version III release alpha 9.8 libcdio"
|
||||
.SH NAME
|
||||
@CDPARANOIA_NAME@ 9.8 (Paranoia release III via libcdio) \- an audio CD reading utility which includes extra data verification features
|
||||
.SH SYNOPSIS
|
||||
.B @CDPARANOIA_NAME@
|
||||
.RB [ options ]
|
||||
.B span
|
||||
.RB [ outfile ]
|
||||
.SH DESCRIPTION
|
||||
.B @CDPARANOIA_NAME@
|
||||
retrieves audio tracks from CDDA capable CD-ROM drives. The data can
|
||||
be saved to a file or directed to standard output in WAV, AIFF, AIFF-C
|
||||
or raw format. Most ATAPI, SCSI and several proprietary CD-ROM drive
|
||||
makes are supported;
|
||||
.B @CDPARANOIA_NAME@
|
||||
can determine if the target drive is CDDA capable.
|
||||
.P
|
||||
In addition to simple reading,
|
||||
.B @CDPARANOIA_NAME@
|
||||
adds extra-robust data verification, synchronization, error handling
|
||||
and scratch reconstruction capability.
|
||||
.P
|
||||
This version uses the libcdio library for interaction with a CD-ROM
|
||||
drive. The jitter and error correction however are the same as used in
|
||||
Xiph's cdparanoia.
|
||||
.SH OPTIONS
|
||||
|
||||
.TP
|
||||
.B \-v --verbose
|
||||
Be absurdly verbose about the autosensing and reading process. Good
|
||||
for setup and debugging.
|
||||
|
||||
.TP
|
||||
.B \-q --quiet
|
||||
Do not print any progress or error information during the reading process.
|
||||
|
||||
.TP
|
||||
.B \-e --stderr-progress
|
||||
Force output of progress information to stderr (for wrapper scripts).
|
||||
|
||||
.TP
|
||||
.B \-V --version
|
||||
Print the program version and quit.
|
||||
|
||||
.TP
|
||||
.B \-Q --query
|
||||
Perform CD-ROM drive autosense, query and print the CD-ROM table of
|
||||
contents, then quit.
|
||||
|
||||
.TP
|
||||
.B \-s --search-for-drive
|
||||
Forces a complete search for a cdrom drive, even if the /dev/cdrom link exists.
|
||||
|
||||
.TP
|
||||
.B \-h --help
|
||||
Print a brief synopsis of
|
||||
.B @CDPARANOIA_NAME@
|
||||
usage and options.
|
||||
|
||||
.TP
|
||||
.BI "\-l --log-summary " file
|
||||
Save result summary to file.
|
||||
|
||||
.TP
|
||||
.B \-p --output-raw
|
||||
Output headerless data as raw 16 bit PCM data with interleaved samples in host byte order. To force little or big endian byte order, use
|
||||
.B \-r
|
||||
or
|
||||
.B \-R
|
||||
as described below.
|
||||
|
||||
.TP
|
||||
.B \-r --output-raw-little-endian
|
||||
Output headerless data as raw 16 bit PCM data with interleaved samples in LSB first byte order.
|
||||
|
||||
.TP
|
||||
.B \-R --output-raw-big-endian
|
||||
Output headerless data as raw 16 bit PCM data with interleaved samples in MSB first byte order.
|
||||
|
||||
.TP
|
||||
.B \-w --output-wav
|
||||
Output data in Micro$oft RIFF WAV format (note that WAV data is always
|
||||
LSB first byte order).
|
||||
|
||||
.TP
|
||||
.B \-f --output-aiff
|
||||
Output data in Apple AIFF format (note that AIFC data is
|
||||
always in MSB first byte order).
|
||||
|
||||
.TP
|
||||
.B \-a --output-aifc
|
||||
Output data in uncompressed Apple AIFF-C format (note that AIFF-C data is
|
||||
always in MSB first byte order).
|
||||
|
||||
.TP
|
||||
.BI "\-B --batch "
|
||||
|
||||
Cdda2wav-style batch output flag; @CDPARANOIA_NAME@ will split the output
|
||||
into multiple files at track boundaries. Output file names are
|
||||
prepended with 'track#.'
|
||||
|
||||
.TP
|
||||
.B \-c --force-cdrom-little-endian
|
||||
Some CD-ROM drives misreport their endianness (or do not report it at
|
||||
all); it's possible that @CDPARANOIA_NAME@ will guess wrong. Use
|
||||
.B \-c
|
||||
to force @CDPARANOIA_NAME@ to treat the drive as a little endian device.
|
||||
|
||||
.TP
|
||||
.B \-C --force-cdrom-big-endian
|
||||
As above but force @CDPARANOIA_NAME@ to treat the drive as a big endian device.
|
||||
|
||||
.TP
|
||||
.BI "\-n --force-default-sectors " n
|
||||
Force the interface backend to do atomic reads of
|
||||
.B n
|
||||
sectors per read. This number can be misleading; the kernel will often
|
||||
split read requests into multiple atomic reads (the automated Paranoia
|
||||
code is aware of this) or allow reads only wihin a restricted size
|
||||
range.
|
||||
.B This option should generally not be used.
|
||||
|
||||
.TP
|
||||
.BI "\-d --force-cdrom-device " device
|
||||
Force the interface backend to read from
|
||||
.B device
|
||||
rather than the first readable CD-ROM drive it finds containing a
|
||||
CD-DA disc. This can be used to specify devices of any valid
|
||||
interface type (ATAPI, SCSI or proprietary).
|
||||
|
||||
.TP
|
||||
.BI "\-g --force-generic-device " device
|
||||
This option is an alias for
|
||||
.B \-d
|
||||
and is retained for compatibility.
|
||||
|
||||
.TP
|
||||
.BI "\-S --force-read-speed " number
|
||||
Use this option explicitly to set the read rate of the CD drive (where
|
||||
supported). This can reduce underruns on machines with slow disks, or
|
||||
which are low on memory.
|
||||
|
||||
.TP
|
||||
.BI "\-t --toc-offset " number
|
||||
Use this option to force the entire disc LBA addressing to shift by
|
||||
the given amount; the value is added to the beginning offsets in the
|
||||
TOC. This can be used to shift track boundaries for the whole disc
|
||||
manually on sector granularity. The next option does something
|
||||
similar...
|
||||
|
||||
.TP
|
||||
.BI "\-T --toc-bias "
|
||||
Some drives (usually random Toshibas) report the actual track
|
||||
beginning offset values in the TOC, but then treat the beginning of
|
||||
track 1 index 1 as sector 0 for all read operations. This results in
|
||||
every track seeming to start too late (losing a bit of the beginning
|
||||
and catching a bit of the next track).
|
||||
\-T accounts for this behavior. Note that this option will cause
|
||||
@CDPARANOIA_NAME@ to attempt to read sectors before or past the known user
|
||||
data area of the disc, resulting in read errors at disc edges on most
|
||||
drives and possibly even hard lockups on some buggy hardware.
|
||||
|
||||
.TP
|
||||
.BI "\-O --sample-offset " number
|
||||
Some CD-ROM/CD-R drives will add an offset to the position on reading
|
||||
audio data. This is usually around 500-700 audio samples (ca. 1/75
|
||||
second) on reading. So when @CDPARANOIA_NAME@ queries a specific
|
||||
sector, it might not receive exactly that sector, but shifted by some
|
||||
amount.
|
||||
.P
|
||||
Use this option to force the entire disc to shift sample position
|
||||
output by the given amount; This can be used to shift track boundaries
|
||||
for the whole disc manually on sample granularity. Note that if you
|
||||
are ripping something including the ending of the CD (e.g. the entire
|
||||
disk), this option will cause @CDPARANOIA_NAME@ to attempt to read
|
||||
partial sectors before or past the known user data area, probably
|
||||
causing read errors on most drives and possibly even hard lockups on
|
||||
some buggy hardware.
|
||||
|
||||
.TP
|
||||
.B \-Z --disable-paranoia
|
||||
Disable
|
||||
.B all
|
||||
data verification and correction features. When using -Z, @CDPARANOIA_NAME@
|
||||
reads data exactly as would cdda2wav with an overlap setting of zero.
|
||||
This option implies that
|
||||
.B \-Y
|
||||
is active.
|
||||
|
||||
.TP
|
||||
.B \-z --never-skip[=max_retries]
|
||||
Do not accept any skips; retry forever if needed. An optional maximum
|
||||
number of retries can be specified; for comparison, default without -z is
|
||||
currently 20.
|
||||
|
||||
.TP
|
||||
.B \-Y --disable-extra-paranoia
|
||||
Disables intra-read data verification; only overlap checking at read
|
||||
boundaries is performed. It can wedge if errors occur in the attempted overlap area. Not recommended.
|
||||
|
||||
.TP
|
||||
.B \-X --abort-on-skip
|
||||
If the read skips due to imperfect data, a scratch, whatever, abort reading this track. If output is to a file, delete the partially completed file.
|
||||
|
||||
.TP
|
||||
.B \-x --test-flags mask
|
||||
Simulate CD-reading errors. This is used in regression testing, but
|
||||
other uses might be to see how well a CD-ROM performs under
|
||||
(simulated) CD degradation. mask specifies the artificial kinds of
|
||||
errors to introduced; "or"-ing values from the selection below will
|
||||
simulate the kind of specified failure.
|
||||
.P
|
||||
0x10 - Simulate under-run reading
|
||||
.TP
|
||||
|
||||
|
||||
.SH OUTPUT SMILIES
|
||||
.TP
|
||||
.B
|
||||
:-)
|
||||
Normal operation, low/no jitter
|
||||
.TP
|
||||
.B
|
||||
:-|
|
||||
Normal operation, considerable jitter
|
||||
.TP
|
||||
.B
|
||||
:-/
|
||||
Read drift
|
||||
.TP
|
||||
.B
|
||||
:-P
|
||||
Unreported loss of streaming in atomic read operation
|
||||
.TP
|
||||
.B
|
||||
8-|
|
||||
Finding read problems at same point during reread; hard to correct
|
||||
.TP
|
||||
.B
|
||||
:-0
|
||||
SCSI/ATAPI transport error
|
||||
.TP
|
||||
.B
|
||||
:-(
|
||||
Scratch detected
|
||||
.TP
|
||||
.B
|
||||
;-(
|
||||
Gave up trying to perform a correction
|
||||
.TP
|
||||
.B
|
||||
8-X
|
||||
Aborted read due to known, uncorrectable error
|
||||
.TP
|
||||
.B
|
||||
:^D
|
||||
Finished extracting
|
||||
|
||||
.SH PROGRESS BAR SYMBOLS
|
||||
.TP
|
||||
.B
|
||||
<space>
|
||||
No corrections needed
|
||||
.TP
|
||||
.B
|
||||
-
|
||||
Jitter correction required
|
||||
.TP
|
||||
.B
|
||||
+
|
||||
Unreported loss of streaming/other error in read
|
||||
.TP
|
||||
.B
|
||||
!
|
||||
Errors found after stage 1 correction; the drive is making the
|
||||
same error through multiple re-reads, and @CDPARANOIA_NAME@ is having trouble
|
||||
detecting them.
|
||||
.TP
|
||||
.B
|
||||
e
|
||||
SCSI/ATAPI transport error (corrected)
|
||||
.TP
|
||||
.B
|
||||
V
|
||||
Uncorrected error/skip
|
||||
|
||||
.SH SPAN ARGUMENT
|
||||
|
||||
The span argument specifies which track, tracks or subsections of
|
||||
tracks to read. This argument is required.
|
||||
.B NOTE:
|
||||
Unless the span is a simple number, it's generally a good idea to
|
||||
quote the span argument to protect it from the shell.
|
||||
.P
|
||||
The span argument may be a simple track number or an offset/span
|
||||
specification. The syntax of an offset/span takes the rough form:
|
||||
.P
|
||||
1[ww:xx:yy.zz]-2[aa:bb:cc.dd]
|
||||
.P
|
||||
Here, 1 and 2 are track numbers; the numbers in brackets provide a
|
||||
finer grained offset within a particular track. [aa:bb:cc.dd] is in
|
||||
hours/minutes/seconds/sectors format. Zero fields need not be
|
||||
specified: [::20], [:20], [20], [20.], etc, would be interpreted as
|
||||
twenty seconds, [10:] would be ten minutes, [.30] would be thirty
|
||||
sectors (75 sectors per second).
|
||||
.P
|
||||
When only a single offset is supplied, it is interpreted as a starting
|
||||
offset and ripping will continue to the end of the track. If a single
|
||||
offset is preceeded or followed by a hyphen, the implicit missing
|
||||
offset is taken to be the start or end of the disc, respectively. Thus:
|
||||
|
||||
.TP
|
||||
.B 1:[20.35]
|
||||
Specifies ripping from track 1, second 20, sector 35 to the end of
|
||||
track 1.
|
||||
.TP
|
||||
.B 1:[20.35]-
|
||||
Specifies ripping from 1[20.35] to the end of the disc
|
||||
.TP
|
||||
.B \-2
|
||||
Specifies ripping from the beginning of the disc up to (and including) track 2
|
||||
.TP
|
||||
.B \-2:[30.35]
|
||||
Specifies ripping from the beginning of the disc up to 2:[30.35]
|
||||
.TP
|
||||
.B 2-4
|
||||
Specifies ripping from the beginning of track 2 to the end of track 4.
|
||||
.P
|
||||
Again, don't forget to protect square brackets and preceeding hyphens from
|
||||
the shell.
|
||||
|
||||
.SH EXAMPLES
|
||||
|
||||
A few examples, protected from the shell:
|
||||
.TP
|
||||
Query only with exhaustive search for a drive and full reporting of autosense:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ -vsQ
|
||||
.TP
|
||||
Extract an entire disc, putting each track in a seperate file:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ -B
|
||||
.TP
|
||||
Extract from track 1, time 0:30.12 to 1:10.00:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ "1[:30.12]-1[1:10]"
|
||||
.TP
|
||||
Extract from the beginning of the disc up to track 3:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ -- "-3"
|
||||
.TP
|
||||
The "--" above is to distinguish "-3" from an option flag.
|
||||
.SH OUTPUT
|
||||
|
||||
The output file argument is optional; if it is not specified,
|
||||
@CDPARANOIA_NAME@ will output samples to one of
|
||||
.BR cdda.wav ", " cdda.aifc ", or " cdda.raw
|
||||
depending on whether
|
||||
.BR \-w ", " \-a ", " \-r " or " \-R " is used (" \-w
|
||||
is the implicit default). The output file argument of
|
||||
.B \-
|
||||
specifies standard output; all data formats may be piped.
|
||||
|
||||
.SH ACKNOWLEDGEMENTS
|
||||
@CDPARANOIA_NAME@ sprang from and once drew heavily from the interface of
|
||||
Heiko Eissfeldt's (heiko@colossus.escape.de) 'cdda2wav'
|
||||
package. @CDPARANOIA_NAME@ would not have happened without it.
|
||||
.P
|
||||
Joerg Schilling has also contributed SCSI expertise through his
|
||||
generic SCSI transport library.
|
||||
.P
|
||||
.SH AUTHOR
|
||||
Monty <monty@xiph.org>
|
||||
.P
|
||||
Cdparanoia's homepage may be found at:
|
||||
http://www.xiph.org/paranoia/
|
||||
.P
|
||||
Revised for use with libcdio by Rocky <rocky@gnu.org>
|
||||
.P
|
||||
The libcdio homepage may be found at:
|
||||
http://www.gnu.org/software/libcdio
|
||||
3
src/cd-paranoia/doc/ja/.gitignore
vendored
3
src/cd-paranoia/doc/ja/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
/Makefile
|
||||
/Makefile.in
|
||||
/cd-paranoia.1
|
||||
@@ -1,72 +0,0 @@
|
||||
# $Id: Makefile.am,v 1.2 2008/04/17 17:39:48 karl Exp $
|
||||
#
|
||||
# Copyright (C) 2005, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
#
|
||||
# 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
mansubdir=/jp/man1
|
||||
manfiles = cd-paranoia.1
|
||||
man_MANS = $(manfiles) cd-paranoia.1
|
||||
transform = s,cd-paranoia,@CDPARANOIA_NAME@,
|
||||
|
||||
EXTRA_DIST = $(manfiles) cd-paranoia.1.in
|
||||
|
||||
install-man1: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(mandir)$(mansubdir)"
|
||||
@list='$(man1_MANS)'; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)$(mansubdir)/$$inst"; \
|
||||
$(INSTALL_DATA) $$file $(DESTDIR)$(mandir)$(mansubdir)/$$inst; \
|
||||
done
|
||||
|
||||
uninstall-man1:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man1_MANS)'; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f $(DESTDIR)$(mandir)$(mansubdir)/$$inst"; \
|
||||
rm -f $(DESTDIR)$(mandir)$(mansubdir)/$$inst; \
|
||||
done
|
||||
|
||||
mostlyclean-generic:
|
||||
-rm -f *~ \#* .*~ .\#*
|
||||
|
||||
maintainer-clean-generic:
|
||||
-@echo "This command is intended for maintainers to use;"
|
||||
-@echo "it deletes files that may require special tools to rebuild."
|
||||
-rm -f Makefile.in $(manfiles)
|
||||
@@ -1,359 +0,0 @@
|
||||
.TH @CDPARANOIA_NAME@ 1
|
||||
.\" Translated Sun Aug 22 18:02:41 JST 1999
|
||||
.\" by FUJIWARA Teruyoshi <fujiwara@linux.or.jp>
|
||||
.SH ̾<EFBFBD><EFBFBD>
|
||||
@CDPARANOIA_NAME@ (Paranoia release III libcdio) \- <20><><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD> CD <20>ɤ<C9A4><DFBC><EFBFBD><EFBFBD>桼<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̤ʥǡ<CAA5><C7A1><EFBFBD><EFBFBD>ȹ絡ǽ<E7B5A1><C7BD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>III <20><><EFBFBD><EFBFBD><EAA1BC><EFBFBD><EFBFBD>9.6 (17 Aug 1999)
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B @CDPARANOIA_NAME@
|
||||
.RB [ options ]
|
||||
.B span
|
||||
.RB [ outfile ]
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B @CDPARANOIA_NAME@
|
||||
<EFBFBD><EFBFBD> CD-DA <20><>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CD-ROM <20>ɥ饤<C9A5>֤<EFBFBD><D6A4>饪<EFBFBD><E9A5AA><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>å<EFBFBD><C3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD><D0A4><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Υǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WAV, AIFF, AIFF-C, raw <20><><EFBFBD><EFBFBD><EFBFBD>ǥե<C7A5><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD>֤<EFBFBD><D6A4>뤳<EFBFBD><EBA4B3>
|
||||
<EFBFBD>䡢ɸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뤳<EFBFBD>Ȥ<EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۤȤ<EFBFBD><EFBFBD>ɤ<EFBFBD> ATAPI, SCSI, <20><EFBFBD><E1A1BC><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
||||
<EFBFBD><EFBFBD> CD-ROM <20>ɥ饤<C9A5>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
.B @CDPARANOIA_NAME@
|
||||
<EFBFBD><EFBFBD><EFBFBD>оݤΥɥ饤<EFBFBD>֤<EFBFBD> CD-DA <20><>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD>äƤ<C3A4><C6A4>뤫<EFBFBD>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD>̤Ǥ<CCA4><C7A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
.P
|
||||
ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥʤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.B @CDPARANOIA_NAME@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̤˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʥǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ絡ǽ<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>äƤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-v --verbose
|
||||
<EFBFBD><EFBFBD>ư<EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤĤ<EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۤɾ<EFBFBD>Ĺ<EFBFBD><EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥХå<EFBFBD><EFBFBD>κݤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-q --quiet
|
||||
<EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><EFBFBD>ʹԾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>䥨<EFBFBD>顼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-e --stderr-progress
|
||||
<EFBFBD>ʹԾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>åѥ<C3A5><D1A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץȤΤ<C8A4><CEA4><EFBFBD><EFBFBD><EFBFBD>)ɸ<>२<EFBFBD>顼<EFBFBD><E9A1BC><EFBFBD>Ϥ˽<CFA4><CBBD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-V --version
|
||||
<EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΥС<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-Q --query
|
||||
CD-ROM <20>ɥ饤<C9A5>֤μ<D6A4>ư<EFBFBD><C6B0><EFBFBD>Ф<EFBFBD><D0A4>Ԥ<EFBFBD><D4A4><EFBFBD>CD-ROM <20><> TOC <20><><EFBFBD>䤤<EFBFBD><E4A4A4><EFBFBD>碌<EFBFBD><EFA4BB>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-s --search-for-drive
|
||||
<EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD> /dev/cdrom <20>Υ<EFBFBD><CEA5><EFBFBD>¸<EFBFBD>ߤ<EFBFBD><DFA4>Ƥ<EFBFBD><C6A4>Ƥ⡢CD-ROM <20>ɥ饤<C9A5>֤δ<D6A4><CEB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-h --help
|
||||
.B @CDPARANOIA_NAME@
|
||||
<EFBFBD>λȤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-p --output-raw
|
||||
<EFBFBD>إå<EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>Υǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۥ<EFBFBD><EFBFBD>ȤΥХ<EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ벻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD> raw <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16 <20>ӥå<D3A5> PCM <20>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>ƽ<EFBFBD><C6BD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
<EFBFBD>Х<EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD>ȥ륨<EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뤤<EFBFBD>ϥӥå<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҥ<EFBFBD>
|
||||
.B \-r
|
||||
<EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.B \-R
|
||||
<EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȤäƤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-r --output-raw-little-endian
|
||||
<EFBFBD>إå<EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>Υǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LSB first <20>ΥХ<CEA5><D0A5>Ƚ<EFBFBD><C8BD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><F3A5BFA5>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܤ<EFBFBD><DCA4><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ벻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD> raw <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16 <20>ӥå<D3A5> PCM <20>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>ƽ<EFBFBD><C6BD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-R --output-raw-big-endian
|
||||
<EFBFBD>إå<EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>Υǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MSB first <20>ΥХ<CEA5><D0A5>Ƚ<EFBFBD><C8BD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><F3A5BFA5>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܤ<EFBFBD><DCA4><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ벻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD> raw <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16 <20>ӥå<D3A5> PCM <20>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>ƽ<EFBFBD><C6BD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-w --output-wav
|
||||
<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Micro$oft <20><> RIFF WAV <20><><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD>(WAV <20>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ΥХ<CEA5><D0A5>Ƚ<EFBFBD><C8BD><EFBFBD>
|
||||
ɬ<EFBFBD><EFBFBD> LSB first <20>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><>
|
||||
|
||||
.TP
|
||||
.B \-f --output-aiff
|
||||
<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Apple <20><> AIFF <20><><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD>(AIFC <20>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ΥХ<CEA5><D0A5>Ƚ<EFBFBD><C8BD><EFBFBD>ɬ<EFBFBD><C9AC>
|
||||
MSB first <20>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><>
|
||||
|
||||
.TP
|
||||
.B \-a --output-aifc
|
||||
<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Apple AIFF-C <20><><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD>(AIFF-C <20>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ΥХ<CEA5><D0A5><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɬ<EFBFBD><EFBFBD> MSB first <20>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><>
|
||||
|
||||
.TP
|
||||
.BI "\-B --batch "
|
||||
cdda2wav <20><><EFBFBD><EFBFBD><EFBFBD>ΥХå<D0A5><C3A5><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4>Ԥ<EFBFBD><D4A4>ޤ<EFBFBD><DEA4><EFBFBD>@CDPARANOIA_NAME@ <20>Ͻ<EFBFBD><CFBD>Ϥ<EFBFBD><CFA4>ȥ<EFBFBD><C8A5>å<EFBFBD><C3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ʣ<EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʬ<EFBFBD>䤷<EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϥե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Υե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD>ʬ<EFBFBD>ϡ<EFBFBD>'track(<28>ֹ<EFBFBD>)'
|
||||
<EFBFBD>Ȥʤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-c --force-cdrom-little-endian
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CD-ROM <20>ϴְ<CFB4><D6B0>ä<EFBFBD><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤷤ޤ<F0A4B7A4>(<28><><EFBFBD>뤤<EFBFBD>ϥ<EFBFBD><CFA5><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>˴ؤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤷤ޤ<EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD><CEA4>ᡢ@CDPARANOIA_NAME@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ְ㤨<EFBFBD>뤳<EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɥ饤<EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ륨<EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΥǥХ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD>
|
||||
@CDPARANOIA_NAME@ <20>˰<EFBFBD><CBB0>碌<EFBFBD><EFA4BB><EFBFBD>ˤϡ<CBA4>
|
||||
.B \-c
|
||||
<EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-C --force-cdrom-big-endian
|
||||
<EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>εդǡ<EFBFBD><EFBFBD>ǥХ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӥå<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΥǥХ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD>
|
||||
@CDPARANOIA_NAME@ <20>˰<EFBFBD><CBB0>碌<EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
|
||||
.TP
|
||||
.BI "\-n --force-default-sectors " n
|
||||
<EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΥХå<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ǿ<EFBFBD>ñ<EFBFBD>̤<EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1 <20><><EFBFBD><EFBFBD><EFBFBD>ɤ<C9A4><DFBC>ꤴ<EFBFBD>Ȥ<EFBFBD>
|
||||
.B n
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>줬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͥ<EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>硢<EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD>ñ<EFBFBD>̤<EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD>(@CDPARANOIA_NAME@ <20>ˤ<EFBFBD><CBA4>뼫ư<EBBCAB><C6B0><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD>ޤ<EFBFBD>)ʣ<><CAA3><EFBFBD>Ĥ<EFBFBD>ʬ<EFBFBD>䤹<EFBFBD>뤫<EFBFBD><EBA4AB><EFBFBD><EFBFBD><EFBFBD>¤<EFBFBD><C2A4>줿<EFBFBD>礭<EFBFBD><E7A4AD><EFBFBD><EFBFBD><EFBFBD>ϰϤǤ<CFA4><C7A4><EFBFBD>
|
||||
<EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B <EFBFBD><EFBFBD><EFBFBD>̤Ϥ<EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>٤<EFBFBD><EFBFBD>ǤϤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.BI "\-d --force-cdrom-device " device
|
||||
<EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΥХå<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD>˸<EFBFBD><EFBFBD>Ĥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ǽ<EFBFBD><EFBFBD> CD-ROM <20>ɥ饤<C9A5>֤ǤϤʤ<CFA4><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤷ<EFBFBD><EAA4B7>
|
||||
.B device
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>褦<EFBFBD>ˤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD>ǽ<EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD>դ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ATAPI, SCSI, <20><EFBFBD><E1A1BC><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>ĥǥХ<C7A5><D0A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤹ<EFBFBD>뤳<EFBFBD><EBA4B3>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.BI "\-g --force-generic-device " device
|
||||
<EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD>SCSI CD-ROM <20><><EFBFBD><EFBFBD><EFBFBD>ѥǥХ<C7A5><D0A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ū<EFBFBD><C5AA><EFBFBD>̡<EFBFBD><CCA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B \-d
|
||||
<EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ߹<EFBFBD><EFBFBD>碌<EFBFBD>ƻȤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ω<EFBFBD>ĤΤϡ<EFBFBD>SCSI <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD>꤬ɸ<EFBFBD><EFBFBD><EFBFBD>Ȱۤʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.BI "\-S --force-read-speed " number
|
||||
CD <20>ɥ饤<C9A5>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ߹<C9A4><DFB9><EFBFBD>®<EFBFBD>٤<EFBFBD><D9A4><EFBFBD><EFBFBD>ꤹ<EFBFBD><EAA4B9><EFBFBD>ˤϡ<CBA4><CFA1><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ū<EFBFBD><C5AA>
|
||||
<EFBFBD>ȤäƤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ɥ饤<C9A5>֤<EFBFBD><D6A4>б<EFBFBD><D0B1><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD><D1A4><EFBFBD><EFBFBD>ȡ<EFBFBD>
|
||||
<EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>٤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꤬<EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>륢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-Z --disable-paranoia
|
||||
<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD>
|
||||
.b <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
̵<EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>-Z <20><><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD><D1A4><EFBFBD><EFBFBD>ȡ<EFBFBD>@CDPARANOIA_NAME@ <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>åפ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>꤬ 0 <20>Ǥ<EFBFBD><C7A4><EFBFBD> cdda2wav <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>褦<EFBFBD>˥ǡ<CBA5><C7A1><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B \-W ,
|
||||
.B \-X ,
|
||||
.B \-Y
|
||||
<EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͭ<EFBFBD><EFBFBD><EFBFBD>ˤʤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B \-Z \-W \-X \-Y
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD>
|
||||
.B <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ʤ<EFBFBD><EFBFBD>ʤ顢
|
||||
.B \-W
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B \-Z
|
||||
<EFBFBD>ޤǤΥ<EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ<EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD>٥뤬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ū<EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD><EFBFBD>뤫<EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ºݤ<EFBFBD>ͭ<EFBFBD><EFBFBD>
|
||||
<EFBFBD>ˤʤ<EFBFBD><EFBFBD>ΤϺǸ<EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD>ꤷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-Y --disable-extra-paranoia
|
||||
<EFBFBD>ɤ<EFBFBD><EFBFBD>ä<EFBFBD><EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤ˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD>Ĥޤꡢ
|
||||
<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD>궭<EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>륪<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD>ʬ<EFBFBD>Υ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-X --disable-scratch-detection
|
||||
<EFBFBD>ȹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǤϽ<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ鷺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B \-X
|
||||
<EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>硢<EFBFBD><EFBFBD><EFBFBD>Ĥ<EFBFBD><EFBFBD><EFBFBD> CD <20><>Ϳ<EFBFBD><CDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @CDPARANOIA_NAME@ <20><><EFBFBD>ɤ<C9A4><DFBC><EFBFBD>
|
||||
<EFBFBD>μ<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.TP
|
||||
.B \-W --disable-scratch-repair
|
||||
<EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݤĽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>줿<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϹԤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD>(
|
||||
.RB \-i
|
||||
<EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>Ƥν<C6A4><CEBD>Υե졼<D5A5><ECA1BC><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
:-)
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD>Ͼ<EFBFBD><EFBFBD>ʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
:-|
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
:-/
|
||||
<EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥɥ<EFBFBD><EFBFBD>եȤ<EFBFBD>ȯ<EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
:-P
|
||||
<EFBFBD>Ǿ<EFBFBD>ñ<EFBFBD>̤<EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤵤<EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD>ʤ<EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD>ߥˤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
8-|
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥä<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>꤬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
:-0
|
||||
SCSI/ATAPI <20>Υǡ<CEA5><C7A1><EFBFBD>ž<EFBFBD><C5BE><EFBFBD><EFBFBD><EFBFBD>顼
|
||||
.TP
|
||||
.B
|
||||
:-(
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>줿
|
||||
.TP
|
||||
.B
|
||||
;-(
|
||||
<EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
:^D
|
||||
<EFBFBD>ɤ<EFBFBD><EFBFBD>꽪λ
|
||||
|
||||
.SH <EFBFBD>ʹ<EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>̣
|
||||
.TP
|
||||
.B
|
||||
<<3C><><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD>>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
-
|
||||
<EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɬ<EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
+
|
||||
<EFBFBD><EFBFBD><EFBFBD>𤵤<EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD>ʤ<EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD>ߥˤ<EFBFBD><EFBFBD>롣<EFBFBD><EFBFBD><EFBFBD>뤤<EFBFBD><EFBFBD><EFBFBD>̤Υ<EFBFBD><EFBFBD>顼<EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
!
|
||||
<EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD>θ<EFBFBD><CEB8>˥<EFBFBD><CBA5>顼<EFBFBD><E9A1BC><EFBFBD><EFBFBD><EFBFBD>Ĥ<EFBFBD><C4A4>ä<EFBFBD><C3A4><EFBFBD><EFBFBD>ɤ<C9A4><DFBC><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><F3B7ABA4>֤<EFBFBD><D6A4>Ƥ<EFBFBD>
|
||||
Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顼<EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@CDPARANOIA_NAME@ <20>Ϥ<EFBFBD><CFA4>Υ<EFBFBD><CEA5>顼<EFBFBD>ޤ<F2A4A6A4><DEA4><EFBFBD><EFBFBD>ФǤ<D0A4><C7A4>ʤ<EFBFBD><CAA4><EFBFBD>
|
||||
.TP
|
||||
.B
|
||||
e
|
||||
SCSI/ATAPI <20>Υǡ<CEA5><C7A1><EFBFBD>ž<EFBFBD><C5BE><EFBFBD><EFBFBD><EFBFBD>顼(<28><><EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD>)
|
||||
.TP
|
||||
.B
|
||||
V
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD>ʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>顼/<2F>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>å<EFBFBD>
|
||||
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'span'
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> span <EFBFBD>ϡ<EFBFBD><EFBFBD>ɤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD>ϥȥ<EFBFBD><EFBFBD>å<EFBFBD><EFBFBD>ΰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤷ<EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɬ<EFBFBD><EFBFBD>ɬ<EFBFBD>פǤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.B <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
span <20><>ñ<EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥʤ<C7A4><CAA4><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뤬<EFBFBD><EBA4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> span <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4>ʤ<EFBFBD>
|
||||
<EFBFBD>褦<EFBFBD>˥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̤Ǥ<EFBFBD><EFBFBD>礦<EFBFBD><EFBFBD>
|
||||
.P
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> span <20>ϡ<EFBFBD>ñ<EFBFBD>ʤ<EFBFBD><CAA4>ȥ<EFBFBD><C8A5>å<EFBFBD><C3A5>ֹ椫<D6B9><E6A4AB><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5>åȤȥ<C8A4><C8A5>ѥ<EFBFBD><D1A5><EFBFBD><EFBFBD>ȹ礻<C8B9>λ<EFBFBD><CEBB><EFBFBD>
|
||||
<EFBFBD>Ȥʤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD>åȤȥ<EFBFBD><EFBFBD>ѥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ礻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>褦<EFBFBD>ˤʤ<EFBFBD><EFBFBD>ޤ<EFBFBD>:
|
||||
.P
|
||||
1[ww:xx:yy.zz]-2[aa:bb:cc.dd]
|
||||
.P
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><> 2 <20>ϥȥ<CFA5><C8A5>å<EFBFBD><C3A5>ֹ<EFBFBD><D6B9>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3>̤<EFBFBD><CCA4><EFBFBD><EFBFBD>ο<EFBFBD><CEBF>ͤϡ<CDA4><CFA1><EFBFBD><EFBFBD>ꤵ<EFBFBD>줿<EFBFBD>ȥ<EFBFBD><C8A5>å<EFBFBD>
|
||||
<EFBFBD>ˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>롢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>٤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD>åȻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>[aa:bb:cc.dd] <20><>
|
||||
<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>/ʬ/<2F><>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>פη<D7A4><CEB7><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD>ͤ<EFBFBD> 0 <20>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤϻ<C9A4><CFBB>ꤷ<EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD>Ĥޤ<EFBFBD> [::20], [:20], [20], [20.] <20><><EFBFBD><EFBFBD> 20 <20>äȲ<C3A4><C8B2>ᤵ<EFBFBD>졢
|
||||
[10:] <20><> 10 <20>äȲ<C3A4><C8B2>ᤵ<EFBFBD>졢[.30] <20><> 30 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2>ᤵ<EFBFBD><E1A4B5><EFBFBD>ޤ<EFBFBD>(75 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1 <20>äǤ<C3A4>)<29><>
|
||||
.P
|
||||
<EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD>åȤ<EFBFBD> 1 <20>Ĥ<EFBFBD><C4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤷ<EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3>ϰ<EFBFBD><CFB0>֤Υ<D6A4><CEA5>ե<EFBFBD><D5A5>åȤ<C3A5>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ۤ<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD>Υȥ<EFBFBD><EFBFBD>å<EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤǹԤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD>åȤ<EFBFBD> 1 <20>Ĥ<EFBFBD><C4A4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ꡢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥ϥ<EFBFBD><EFBFBD>ե<EFBFBD>(-)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤϡ<CBA4><CFA1><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>륪<EFBFBD>ե<EFBFBD><D5A5>åȤ<C3A5>
|
||||
<EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD>뤤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD>ᤵ<EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD>:
|
||||
|
||||
.TP
|
||||
.B 1:[20.35]
|
||||
<EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD> 1 <EFBFBD><EFBFBD> 20 <EFBFBD>á<EFBFBD>35 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>顢<EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤǤ<EFBFBD><EFBFBD>ۤ<EFBFBD>
|
||||
<EFBFBD>Ф<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B 1:[20.35]-
|
||||
1[20.35] <EFBFBD>ΰ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤǤ<EFBFBD><EFBFBD>ۤ<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B \-2
|
||||
<EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD> 2 <EFBFBD>ޤ<EFBFBD>(<28>ȥ<EFBFBD><C8A5>å<EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD>ޤߤޤ<EFBFBD>)<29><><EFBFBD>ۤ<EFBFBD><DBA4>Ф<EFBFBD><D0A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
.TP
|
||||
.B \-2:[30.35]
|
||||
<EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2:[30.35] <EFBFBD>ΰ<EFBFBD><EFBFBD>֤ޤǵۤ<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.TP
|
||||
.B 2-4
|
||||
<EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD> 4 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤǤ<EFBFBD><EFBFBD>ۤ<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
.P
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>ˤʤ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><EFBFBD>̤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>ˤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϥ<EFBFBD><EFBFBD>ե<EFBFBD><EFBFBD><EFBFBD>ɬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD><EFBFBD>褦<EFBFBD>ˤ<EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD>:
|
||||
.TP
|
||||
<EFBFBD>ɥ饤<EFBFBD>֤<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD>Ū<EFBFBD>˹Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><EFBFBD><EFBFBD>Фη<EFBFBD><EFBFBD>̤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤷤ޤ<EFBFBD>:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ -vsQ
|
||||
.TP
|
||||
<EFBFBD>ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD><EFBFBD>ۤ<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>줾<EFBFBD><EFBFBD><EFBFBD>Υȥ<EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD>Υե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><EFBFBD>ޤ<EFBFBD>:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ -B "1-"
|
||||
.TP
|
||||
<EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD> 1 <20>λ<EFBFBD><CEBB><EFBFBD> 0:30.12 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:10.00 <20>ޤǤ<DEA4><C7A4>ۤ<EFBFBD><DBA4>Ф<EFBFBD><D0A4>ޤ<EFBFBD>:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ "1[:30.12]-1[1:10]"
|
||||
.TP
|
||||
<EFBFBD>ȥ<EFBFBD><EFBFBD>å<EFBFBD> 1 <20>λ<EFBFBD><CEBB><EFBFBD> 0:30.12 <20><><EFBFBD><EFBFBD> 1 ʬ<>֤Υǡ<CEA5><C7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۤ<EFBFBD><DBA4>Ф<EFBFBD><D0A4>ޤ<EFBFBD>:
|
||||
.P
|
||||
@CDPARANOIA_NAME@ "1[:30.12]-[1:00]"
|
||||
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ϥե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>ά<EFBFBD><EFBFBD>ǽ<EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤵ<EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD>ʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
|
||||
@CDPARANOIA_NAME@ <20>ϥ<EFBFBD><CFA5><EFBFBD><EFBFBD>ץ벻<D7A5><EBB2BB><EFBFBD><EFBFBD>
|
||||
.BR cdda.wav ", " cdda.aifc ", " cdda.raw
|
||||
<EFBFBD>Τ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>줫<EFBFBD>˽<EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤΥե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD><EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.BR \-w ", " \-a ", " \-r "," \-R
|
||||
<EFBFBD>Τ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><EFBFBD>äƷ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD>ޤ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤷ<EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD><EFBFBD>
|
||||
.BR \-w
|
||||
<EFBFBD><EFBFBD><EFBFBD>ǥե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͤǤ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>ϥե<CFA5><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤹ<EFBFBD><EAA4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.B \-
|
||||
<EFBFBD>ʤ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD>Ф<EFBFBD><EFBFBD>ƹԤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤΥǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD>ѥ<EFBFBD><EFBFBD>פ<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>뤳<EFBFBD>Ȥ<EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
.SH <EFBFBD>ռ<EFBFBD>
|
||||
@CDPARANOIA_NAME@ <20>δ<EFBFBD><CEB4>Ȥʤä<CAA4><C3A4>Τ<EFBFBD> Heiko Eissfeldt <20><><EFBFBD><EFBFBD>
|
||||
(heiko@colossus.escape.de)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'cdda2wav' <20>ѥå<D1A5><C3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4>ꡢ
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @CDPARANOIA_NAME@ <20>Υ<EFBFBD><CEA5>ե<F3A5BFA5><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʬ<EFBFBD><CAAC> cdda2wav <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>äƤ<C3A4><C6A4><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ΤǤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cdda2wav <20><><EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD>С<EFBFBD>@CDPARANOIA_NAME@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뤳<EFBFBD>ȤϤʤ<CFA4><CAA4>ä<EFBFBD><C3A4><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>礦<EFBFBD><EFBFBD>
|
||||
.P
|
||||
Joerg Schilling <20><><EFBFBD><EFBFBD><F3A4ACBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SCSI <20>ǡ<EFBFBD><C7A1><EFBFBD>ž<EFBFBD><C5BE><EFBFBD>饤<EFBFBD>֥<EFBFBD><D6A5>꤫<EFBFBD>顢SCSI
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><EFBFBD><EFBFBD>ؤФ<EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.P
|
||||
.SH <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Monty <monty@xiph.org>
|
||||
.P
|
||||
cdparanoia <20>Υۡ<CEA5><DBA1><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EFBFBD>ϰʲ<CFB0><CAB2>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD><EFBFBD>ޤ<EFBFBD>:
|
||||
.P
|
||||
.ce
|
||||
http://www.xiph.org/paranoia/
|
||||
.P
|
||||
libcdio <20>Υۡ<CEA5><DBA1><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EFBFBD>ϰʲ<CFB0><CAB2>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD><EFBFBD>ޤ<EFBFBD>:
|
||||
.P
|
||||
.ce
|
||||
http://www.gnu.org/libcdio/
|
||||
@@ -1,18 +0,0 @@
|
||||
0 70 100
|
||||
A |----------|-----|
|
||||
B |-----|---------|
|
||||
0 40 100
|
||||
|
||||
offset=-30
|
||||
begin=30
|
||||
end=100
|
||||
|
||||
0 70 100
|
||||
A |----------|-----|
|
||||
B |-----|---------|
|
||||
50 90 150
|
||||
|
||||
offset=20
|
||||
begin=30
|
||||
end=100
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,126 +0,0 @@
|
||||
/* Declarations for getopt.
|
||||
Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
||||
Bugs can be reported to bug-glibc@gnu.org.
|
||||
|
||||
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, 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. */
|
||||
|
||||
#ifndef _GETOPT_H
|
||||
#define _GETOPT_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* For communication from `getopt' to the caller.
|
||||
When `getopt' finds an option that takes an argument,
|
||||
the argument value is returned here.
|
||||
Also, when `ordering' is RETURN_IN_ORDER,
|
||||
each non-option ARGV-element is returned here. */
|
||||
|
||||
extern char *optarg;
|
||||
|
||||
/* Index in ARGV of the next element to be scanned.
|
||||
This is used for communication to and from the caller
|
||||
and for communication between successive calls to `getopt'.
|
||||
|
||||
On entry to `getopt', zero means this is the first call; initialize.
|
||||
|
||||
When `getopt' returns -1, this is the index of the first of the
|
||||
non-option elements that the caller should itself scan.
|
||||
|
||||
Otherwise, `optind' communicates from one call to the next
|
||||
how much of ARGV has been scanned so far. */
|
||||
|
||||
extern int optind;
|
||||
|
||||
/* Callers store zero here to inhibit the error message `getopt' prints
|
||||
for unrecognized options. */
|
||||
|
||||
extern int opterr;
|
||||
|
||||
/* Set to an option character which was unrecognized. */
|
||||
|
||||
extern int optopt;
|
||||
|
||||
/* Describe the long-named options requested by the application.
|
||||
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
|
||||
of `struct option' terminated by an element containing a name which is
|
||||
zero.
|
||||
|
||||
The field `has_arg' is:
|
||||
no_argument (or 0) if the option does not take an argument,
|
||||
required_argument (or 1) if the option requires an argument,
|
||||
optional_argument (or 2) if the option takes an optional argument.
|
||||
|
||||
If the field `flag' is not NULL, it points to a variable that is set
|
||||
to the value given in the field `val' when the option is found, but
|
||||
left unchanged if the option is not found.
|
||||
|
||||
To have a long-named option do something other than set an `int' to
|
||||
a compiled-in constant, such as set a value from `optarg', set the
|
||||
option's `flag' field to zero and its `val' field to a nonzero
|
||||
value (the equivalent single-letter option character, if there is
|
||||
one). For long options that have a zero `flag' field, `getopt'
|
||||
returns the contents of the `val' field. */
|
||||
|
||||
struct option
|
||||
{
|
||||
#if defined (__STDC__) && __STDC__
|
||||
const char *name;
|
||||
#else
|
||||
char *name;
|
||||
#endif
|
||||
/* has_arg can't be an enum because some compilers complain about
|
||||
type mismatches in all the code that assumes it is an int. */
|
||||
int has_arg;
|
||||
int *flag;
|
||||
int val;
|
||||
};
|
||||
|
||||
/* Names for the values of the `has_arg' field of `struct option'. */
|
||||
|
||||
#define no_argument 0
|
||||
#define required_argument 1
|
||||
#define optional_argument 2
|
||||
|
||||
#if defined (__STDC__) && __STDC__
|
||||
extern int getopt (int argc, char *const *argv, const char *optstring);
|
||||
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
|
||||
const struct option *longopts, int *longind);
|
||||
extern int getopt_long_only (int argc, char *const *argv,
|
||||
const char *shortopts,
|
||||
const struct option *longopts, int *longind);
|
||||
|
||||
/* Internal only. Users should not call this directly. */
|
||||
extern int _getopt_internal (int argc, char *const *argv,
|
||||
const char *shortopts,
|
||||
const struct option *longopts, int *longind,
|
||||
int long_only);
|
||||
#else /* not __STDC__ */
|
||||
extern int getopt ();
|
||||
extern int getopt_long ();
|
||||
extern int getopt_long_only ();
|
||||
|
||||
extern int _getopt_internal ();
|
||||
#endif /* __STDC__ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* getopt.h */
|
||||
@@ -1,190 +0,0 @@
|
||||
/* getopt_long and getopt_long_only entry points for GNU getopt.
|
||||
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
||||
Bugs can be reported to bug-glibc@gnu.org.
|
||||
|
||||
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, 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. */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include "getopt.h"
|
||||
|
||||
#if !defined __STDC__ || !__STDC__
|
||||
/* This is a separate conditional since some stdc systems
|
||||
reject `defined (const)'. */
|
||||
#ifndef const
|
||||
#define const
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* Comment out all this code if we are using the GNU C Library, and are not
|
||||
actually compiling the library itself. This code is part of the GNU C
|
||||
Library, but also included in many other GNU distributions. Compiling
|
||||
and linking in this code is a waste when using the GNU C library
|
||||
(especially if it is a shared library). Rather than having every GNU
|
||||
program understand `configure --with-gnu-libc' and omit the object files,
|
||||
it is simpler to just do this in the source for each such file. */
|
||||
|
||||
#define GETOPT_INTERFACE_VERSION 2
|
||||
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
|
||||
#include <gnu-versions.h>
|
||||
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
|
||||
#define ELIDE_CODE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef ELIDE_CODE
|
||||
|
||||
|
||||
/* This needs to come after some library #include
|
||||
to get __GNU_LIBRARY__ defined. */
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
int
|
||||
getopt_long (argc, argv, options, long_options, opt_index)
|
||||
int argc;
|
||||
char *const *argv;
|
||||
const char *options;
|
||||
const struct option *long_options;
|
||||
int *opt_index;
|
||||
{
|
||||
return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
|
||||
}
|
||||
|
||||
/* Like getopt_long, but '-' as well as '--' can indicate a long option.
|
||||
If an option that starts with '-' (not '--') doesn't match a long option,
|
||||
but does match a short option, it is parsed as a short option
|
||||
instead. */
|
||||
|
||||
int
|
||||
getopt_long_only (argc, argv, options, long_options, opt_index)
|
||||
int argc;
|
||||
char *const *argv;
|
||||
const char *options;
|
||||
const struct option *long_options;
|
||||
int *opt_index;
|
||||
{
|
||||
return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
|
||||
}
|
||||
|
||||
|
||||
#endif /* Not ELIDE_CODE. */
|
||||
|
||||
#ifdef TEST
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int
|
||||
main (argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
int c;
|
||||
int digit_optind = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
int this_option_optind = optind ? optind : 1;
|
||||
int option_index = 0;
|
||||
static struct option long_options[] =
|
||||
{
|
||||
{"add", 1, 0, 0},
|
||||
{"append", 0, 0, 0},
|
||||
{"delete", 1, 0, 0},
|
||||
{"verbose", 0, 0, 0},
|
||||
{"create", 0, 0, 0},
|
||||
{"file", 1, 0, 0},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
c = getopt_long (argc, argv, "abc:d:0123456789",
|
||||
long_options, &option_index);
|
||||
if (c == -1)
|
||||
break;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case 0:
|
||||
printf ("option %s", long_options[option_index].name);
|
||||
if (optarg)
|
||||
printf (" with arg %s", optarg);
|
||||
printf ("\n");
|
||||
break;
|
||||
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
if (digit_optind != 0 && digit_optind != this_option_optind)
|
||||
printf ("digits occur in two different argv-elements.\n");
|
||||
digit_optind = this_option_optind;
|
||||
printf ("option %c\n", c);
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
printf ("option a\n");
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
printf ("option b\n");
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
printf ("option c with value `%s'\n", optarg);
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
printf ("option d with value `%s'\n", optarg);
|
||||
break;
|
||||
|
||||
case '?':
|
||||
break;
|
||||
|
||||
default:
|
||||
printf ("?? getopt returned character code 0%o ??\n", c);
|
||||
}
|
||||
}
|
||||
|
||||
if (optind < argc)
|
||||
{
|
||||
printf ("non-option ARGV-elements: ");
|
||||
while (optind < argc)
|
||||
printf ("%s ", argv[optind++]);
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
||||
#endif /* TEST */
|
||||
@@ -1,132 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 2004 Rocky Bernstein <rocky@gnu.org
|
||||
Copyright (C) 1998 Monty xiphmont@mit.edu
|
||||
and Heiko Eissfeldt heiko@escape.colossus.de
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** \file header.h
|
||||
* \brief WAV, AIFF and AIFC header-writing routines.
|
||||
*/
|
||||
|
||||
#include "header.h"
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static void PutNum(long num,int f,int endianness,int bytes){
|
||||
int i;
|
||||
unsigned char c;
|
||||
|
||||
if(!endianness)
|
||||
i=0;
|
||||
else
|
||||
i=bytes-1;
|
||||
while(bytes--){
|
||||
c=(num>>(i<<3))&0xff;
|
||||
if(write(f,&c,1)==-1){
|
||||
perror("Could not write to output.");
|
||||
exit(1);
|
||||
}
|
||||
if(endianness)
|
||||
i--;
|
||||
else
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
/** Writes WAV headers */
|
||||
void
|
||||
WriteWav(int f, long int bytes)
|
||||
{
|
||||
/* quick and dirty */
|
||||
|
||||
write(f,"RIFF",4); /* 0-3 */
|
||||
PutNum(bytes+44-8,f,0,4); /* 4-7 */
|
||||
write(f,"WAVEfmt ",8); /* 8-15 */
|
||||
PutNum(16,f,0,4); /* 16-19 */
|
||||
PutNum(1,f,0,2); /* 20-21 */
|
||||
PutNum(2,f,0,2); /* 22-23 */
|
||||
PutNum(44100,f,0,4); /* 24-27 */
|
||||
PutNum(44100*2*2,f,0,4); /* 28-31 */
|
||||
PutNum(4,f,0,2); /* 32-33 */
|
||||
PutNum(16,f,0,2); /* 34-35 */
|
||||
write(f,"data",4); /* 36-39 */
|
||||
PutNum(bytes,f,0,4); /* 40-43 */
|
||||
}
|
||||
|
||||
/** Writes AIFF headers */
|
||||
void
|
||||
WriteAiff(int f, long int bytes)
|
||||
{
|
||||
long size=bytes+54;
|
||||
long frames=bytes/4;
|
||||
|
||||
/* Again, quick and dirty */
|
||||
|
||||
write(f,"FORM",4); /* 4 */
|
||||
PutNum(size-8,f,1,4); /* 8 */
|
||||
write(f,"AIFF",4); /* 12 */
|
||||
|
||||
write(f,"COMM",4); /* 16 */
|
||||
PutNum(18,f,1,4); /* 20 */
|
||||
PutNum(2,f,1,2); /* 22 */
|
||||
PutNum(frames,f,1,4); /* 26 */
|
||||
PutNum(16,f,1,2); /* 28 */
|
||||
write(f,"@\016\254D\0\0\0\0\0\0",10); /* 38 (44.100 as a float) */
|
||||
|
||||
write(f,"SSND",4); /* 42 */
|
||||
PutNum(bytes+8,f,1,4); /* 46 */
|
||||
PutNum(0,f,1,4); /* 50 */
|
||||
PutNum(0,f,1,4); /* 54 */
|
||||
|
||||
}
|
||||
|
||||
/** Writes AIFC headers */
|
||||
void
|
||||
WriteAifc(int f, long bytes)
|
||||
{
|
||||
long size=bytes+86;
|
||||
long frames=bytes/4;
|
||||
|
||||
/* Again, quick and dirty */
|
||||
|
||||
write(f,"FORM",4); /* 4 */
|
||||
PutNum(size-8,f,1,4); /* 8 */
|
||||
write(f,"AIFC",4); /* 12 */
|
||||
write(f,"FVER",4); /* 16 */
|
||||
PutNum(4,f,1,4); /* 20 */
|
||||
PutNum(2726318400UL,f,1,4); /* 24 */
|
||||
|
||||
write(f,"COMM",4); /* 28 */
|
||||
PutNum(38,f,1,4); /* 32 */
|
||||
PutNum(2,f,1,2); /* 34 */
|
||||
PutNum(frames,f,1,4); /* 38 */
|
||||
PutNum(16,f,1,2); /* 40 */
|
||||
write(f,"@\016\254D\0\0\0\0\0\0",10); /* 50 (44.100 as a float) */
|
||||
|
||||
write(f,"NONE",4); /* 54 */
|
||||
PutNum(14,f,1,1); /* 55 */
|
||||
write(f,"not compressed",14); /* 69 */
|
||||
PutNum(0,f,1,1); /* 70 */
|
||||
|
||||
write(f,"SSND",4); /* 74 */
|
||||
PutNum(bytes+8,f,1,4); /* 78 */
|
||||
PutNum(0,f,1,4); /* 82 */
|
||||
PutNum(0,f,1,4); /* 86 */
|
||||
|
||||
}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
/*
|
||||
$Id: header.h,v 1.2 2008/04/11 15:44:00 karl Exp $
|
||||
|
||||
Copyright (C) 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
Copyright (C) 1998 Monty <xiphmont@mit.edu>
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** \file header.h
|
||||
* \brief header for WAV, AIFF and AIFC header-writing routines.
|
||||
*/
|
||||
|
||||
/** Writes WAV headers */
|
||||
extern void WriteWav(int f,long int i_bytes);
|
||||
|
||||
/** Writes AIFC headers */
|
||||
extern void WriteAifc(int f,long int i_bytes);
|
||||
|
||||
/** Writes AIFF headers */
|
||||
extern void WriteAiff(int f,long int_bytes);
|
||||
@@ -1,46 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
# $Id: pod2c.pl,v 1.4 2008/06/19 15:44:31 flameeyes Exp $
|
||||
# Utility to turn pieces of pod text to help text.
|
||||
use File::Basename;
|
||||
|
||||
die "Expecting exactly one argument, a filename" if @ARGV != 1;
|
||||
$filename = shift;
|
||||
|
||||
($name, $path, $suffix)=fileparse($filename,"\.txt");
|
||||
close(STDIN);
|
||||
open(STDIN, "<$filename")
|
||||
|| die "Can't open $filename for reading:\n$!";
|
||||
|
||||
#$outfile="../${filename}.h";
|
||||
#open(STDOUT, ">$outfile")
|
||||
# || die "Can't open $outfile for writing:\n$!";
|
||||
|
||||
print "/*
|
||||
Copyright (C) 1999, 2005, 2007, 2008 Rocky Bernstein
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
static const char ${name}_help[] =\n";
|
||||
while(<STDIN>) {
|
||||
s/["]/\\"/g;
|
||||
# Change POD'ed items to quoted items, e.g. See L<y> and L<z> becomes
|
||||
# See "y" and "z" (with \'s around the quotes)
|
||||
s/[C,L,I,B,F]<(.+?)>/\\"$1\\"/g;
|
||||
chomp;
|
||||
if ( $^O eq "cygwin" ) {
|
||||
s/\
|
||||
//
|
||||
}
|
||||
print "\"$_\\n\"\n";
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 2004, 2008, 2010, 2011 Rocky Bernstein <rocky@gnu.org>
|
||||
Copyright (C) 1998 Monty xiphmont@mit.edu
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/******************************************************************
|
||||
*
|
||||
* reporting/logging routines
|
||||
*
|
||||
******************************************************************/
|
||||
|
||||
|
||||
/* config.h has to come first else _FILE_OFFSET_BITS are redefined in
|
||||
say opensolaris. */
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
# define __CDIO_CONFIG_H__ 1
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <cdio/cdda.h>
|
||||
#include "report.h"
|
||||
|
||||
int quiet=0;
|
||||
int verbose=CDDA_MESSAGE_FORGETIT;
|
||||
|
||||
void
|
||||
report(const char *s)
|
||||
{
|
||||
if (!quiet) {
|
||||
fprintf(stderr, "%s", s);
|
||||
fputc('\n',stderr);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
report2(const char *s, char *s2)
|
||||
{
|
||||
if (!quiet) {
|
||||
fprintf(stderr,s,s2);
|
||||
fputc('\n',stderr);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
report3(const char *s, char *s2, char *s3)
|
||||
{
|
||||
if (!quiet) {
|
||||
fprintf(stderr,s,s2,s3);
|
||||
fputc('\n',stderr);
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
extern void report(const char *s);
|
||||
extern void report2(const char *s, char *s2);
|
||||
extern void report3(const char *s, char *s2, char *s3);
|
||||
@@ -1,143 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 1999, 2005, 2008, 2009 Rocky Bernstein
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
const char usage_help[] =
|
||||
"USAGE:\n"
|
||||
" cd-paranoia [options] <span> [outfile]\n"
|
||||
"\n"
|
||||
"OPTIONS:\n"
|
||||
" -v --verbose : extra verbose operation\n"
|
||||
" -q --quiet : quiet operation\n"
|
||||
" -e --stderr-progress : force output of progress information to\n"
|
||||
" -l --log-summary <file> : save result summary to file\n"
|
||||
" stderr (for wrapper scripts)\n"
|
||||
" -V --version : print version info and quit\n"
|
||||
" -Q --query : autosense drive, query disc and quit\n"
|
||||
" -B --batch : 'batch' mode (saves each track to a\n"
|
||||
" seperate file.\n"
|
||||
" -s --search-for-drive : do an exhaustive search for drive\n"
|
||||
" -h --help : print help\n"
|
||||
"\n"
|
||||
" -p --output-raw : output raw 16 bit PCM in host byte \n"
|
||||
" order\n"
|
||||
" -r --output-raw-little-endian : output raw 16 bit little-endian PCM\n"
|
||||
" -R --output-raw-big-endian : output raw 16 bit big-endian PCM\n"
|
||||
" -w --output-wav : output as WAV file (default)\n"
|
||||
" -f --output-aiff : output as AIFF file\n"
|
||||
" -a --output-aifc : output as AIFF-C file\n"
|
||||
"\n"
|
||||
" -c --force-cdrom-little-endian : force treating drive as little endian\n"
|
||||
" -C --force-cdrom-big-endian : force treating drive as big endian\n"
|
||||
" -n --force-default-sectors <n> : force default number of sectors in read\n"
|
||||
" to n sectors\n"
|
||||
" -o --force-search-overlap <n> : force minimum overlap search during\n"
|
||||
" verification to n sectors\n"
|
||||
" -d --force-cdrom-device <dev> : use specified device; disallow \n"
|
||||
" autosense\n"
|
||||
" -g --force-generic-device <dev> : really an alias for -d. Kept for \n"
|
||||
" compatibility.\n"
|
||||
" -S --force-read-speed <n> : read from device at specified speed\n"
|
||||
" -t --toc-offset <n> : Add <n> sectors to the values reported\n"
|
||||
" when addressing tracks. May be negative\n"
|
||||
" -T --toc-bias : Assume that the beginning offset of \n"
|
||||
" track 1 as reported in the TOC will be\n"
|
||||
" addressed as LBA 0. Necessary for some\n"
|
||||
" Toshiba drives to get track boundaries\n"
|
||||
" correct\n"
|
||||
" -m --mmc-timeout <n> : Set SCSI-MMC timeout to <n> seconds.\n"
|
||||
" -O --sample-offset <n> : Add <n> samples to the offset when\n"
|
||||
" reading data. May be negative.\n"
|
||||
" -z --never-skip[=n] : never accept any less than perfect\n"
|
||||
" data reconstruction (don't allow 'V's)\n"
|
||||
" but if [n] is given, skip after [n]\n"
|
||||
" retries without progress.\n"
|
||||
" -Z --disable-paranoia : disable all paranoia checking\n"
|
||||
" -Y --disable-extra-paranoia : only do cdda2wav-style overlap checking\n"
|
||||
" -X --abort-on-skip : abort on imperfect reads/skips\n"
|
||||
" -x --test-flags=mask : simulate CD-reading errors of ilk-mask n\n"
|
||||
" mask & 0x10 - simulate underrun errors\n"
|
||||
"\n"
|
||||
"OUTPUT SMILIES:\n"
|
||||
" :-) Normal operation, low/no jitter\n"
|
||||
" :-| Normal operation, considerable jitter\n"
|
||||
" :-/ Read drift\n"
|
||||
" :-P Unreported loss of streaming in atomic read operation\n"
|
||||
" 8-| Finding read problems at same point during reread; hard to correct\n"
|
||||
" :-0 SCSI/ATAPI transport error\n"
|
||||
" :-( Scratch detected\n"
|
||||
" ;-( Gave up trying to perform a correction\n"
|
||||
" 8-X Aborted (as per -X) due to a scratch/skip\n"
|
||||
" :^D Finished extracting\n"
|
||||
"\n"
|
||||
"PROGRESS BAR SYMBOLS:\n"
|
||||
"<space> No corrections needed\n"
|
||||
" - Jitter correction required\n"
|
||||
" + Unreported loss of streaming/other error in read\n"
|
||||
" ! Errors are getting through stage 1 but corrected in stage2\n"
|
||||
" e SCSI/ATAPI transport error (corrected)\n"
|
||||
" V Uncorrected error/skip\n"
|
||||
"\n"
|
||||
"SPAN ARGUMENT:\n"
|
||||
"The span argument may be a simple track number or a offset/span\n"
|
||||
"specification. The syntax of an offset/span takes the rough form:\n"
|
||||
" \n"
|
||||
" 1[ww:xx:yy.zz]-2[aa:bb:cc.dd] \n"
|
||||
"\n"
|
||||
"Here, 1 and 2 are track numbers; the numbers in brackets provide a\n"
|
||||
"finer grained offset within a particular track. [aa:bb:cc.dd] is in\n"
|
||||
"hours/minutes/seconds/sectors format. Zero fields need not be\n"
|
||||
"specified: [::20], [:20], [20], [20.], etc, would be interpreted as\n"
|
||||
"twenty seconds, [10:] would be ten minutes, [.30] would be thirty\n"
|
||||
"sectors (75 sectors per second).\n"
|
||||
"\n"
|
||||
"When only a single offset is supplied, it is interpreted as a starting\n"
|
||||
"offset and ripping will continue to the end of he track. If a single\n"
|
||||
"offset is preceeded or followed by a hyphen, the implicit missing\n"
|
||||
"offset is taken to be the start or end of the disc, respectively. Thus:\n"
|
||||
"\n"
|
||||
" 1:[20.35] Specifies ripping from track 1, second 20, sector 35 to \n"
|
||||
" the end of track 1.\n"
|
||||
"\n"
|
||||
" 1:[20.35]- Specifies ripping from 1[20.35] to the end of the disc\n"
|
||||
"\n"
|
||||
" -2 Specifies ripping from the beginning of the disc up to\n"
|
||||
" (and including) track 2\n"
|
||||
"\n"
|
||||
" -2:[30.35] Specifies ripping from the beginning of the disc up to\n"
|
||||
" 2:[30.35]\n"
|
||||
"\n"
|
||||
" 2-4 Specifies ripping from the beginning of track two to the\n"
|
||||
" end of track 4.\n"
|
||||
"\n"
|
||||
"Don't forget to protect square brackets and preceeding hyphens from\n"
|
||||
"the shell...\n"
|
||||
"\n"
|
||||
"A few examples, protected from the shell:\n"
|
||||
" A) query only with exhaustive search for a drive and full reporting\n"
|
||||
" of autosense:\n"
|
||||
" cd-paranoia -vsQ\n"
|
||||
"\n"
|
||||
" B) extract up to and including track 3, putting each track in a seperate\n"
|
||||
" file:\n"
|
||||
" cd-paranoia -B -- \"-3\"\n"
|
||||
"\n"
|
||||
" C) extract from track 1, time 0:30.12 to 1:10.00:\n"
|
||||
" cd-paranoia \"[:30.12]-1[1:10]\"\n"
|
||||
"\n"
|
||||
"Submit bug reports to bug-libcdio@gnu.org\n"
|
||||
"\n"
|
||||
;
|
||||
@@ -1,124 +0,0 @@
|
||||
USAGE:
|
||||
@CDPARANOIA_NAME@ [options] <span> [outfile]
|
||||
|
||||
OPTIONS:
|
||||
-v --verbose : extra verbose operation
|
||||
-q --quiet : quiet operation
|
||||
-e --stderr-progress : force output of progress information to
|
||||
stderr (for wrapper scripts)
|
||||
-l --log-summary <file> : save result summary to file
|
||||
-V --version : print version info and quit
|
||||
-Q --query : autosense drive, query disc and quit
|
||||
-B --batch : 'batch' mode (saves each track to a
|
||||
seperate file.
|
||||
-s --search-for-drive : do an exhaustive search for drive
|
||||
-h --help : print help
|
||||
|
||||
-p --output-raw : output raw 16 bit PCM in host byte
|
||||
order
|
||||
-r --output-raw-little-endian : output raw 16 bit little-endian PCM
|
||||
-R --output-raw-big-endian : output raw 16 bit big-endian PCM
|
||||
-w --output-wav : output as WAV file (default)
|
||||
-f --output-aiff : output as AIFF file
|
||||
-a --output-aifc : output as AIFF-C file
|
||||
|
||||
-c --force-cdrom-little-endian : force treating drive as little endian
|
||||
-C --force-cdrom-big-endian : force treating drive as big endian
|
||||
-n --force-default-sectors <n> : force default number of sectors in read
|
||||
to n sectors
|
||||
-o --force-search-overlap <n> : force minimum overlap search during
|
||||
verification to n sectors
|
||||
-d --force-cdrom-device <dev> : use specified device; disallow
|
||||
autosense
|
||||
-g --force-generic-device <dev> : really an alias for -d. Kept for
|
||||
compatibility.
|
||||
-S --force-read-speed <n> : read from device at specified speed
|
||||
-t --toc-offset <n> : Add <n> sectors to the values reported
|
||||
when addressing tracks. May be negative
|
||||
-T --toc-bias : Assume that the beginning offset of
|
||||
track 1 as reported in the TOC will be
|
||||
addressed as LBA 0. Necessary for some
|
||||
Toshiba drives to get track boundaries
|
||||
correct
|
||||
-m --mmc-timeout <n> : Set SCSI-MMC timeout to <n> seconds.
|
||||
-O --sample-offset <n> : Add <n> samples to the offset when
|
||||
reading data. May be negative.
|
||||
-z --never-skip[=n] : never accept any less than perfect
|
||||
data reconstruction (don't allow 'V's)
|
||||
but if [n] is given, skip after [n]
|
||||
retries without progress.
|
||||
-Z --disable-paranoia : disable all paranoia checking
|
||||
-Y --disable-extra-paranoia : only do cdda2wav-style overlap checking
|
||||
-X --abort-on-skip : abort on imperfect reads/skips
|
||||
-x --test-flags=mask : simulate CD-reading errors of ilk-mask n
|
||||
mask & 0x10 - simulate underrun errors
|
||||
|
||||
OUTPUT SMILIES:
|
||||
:-) Normal operation, low/no jitter
|
||||
:-| Normal operation, considerable jitter
|
||||
:-/ Read drift
|
||||
:-P Unreported loss of streaming in atomic read operation
|
||||
8-| Finding read problems at same point during reread; hard to correct
|
||||
:-0 SCSI/ATAPI transport error
|
||||
:-( Scratch detected
|
||||
;-( Gave up trying to perform a correction
|
||||
8-X Aborted (as per -X) due to a scratch/skip
|
||||
:^D Finished extracting
|
||||
|
||||
PROGRESS BAR SYMBOLS:
|
||||
<space> No corrections needed
|
||||
- Jitter correction required
|
||||
+ Unreported loss of streaming/other error in read
|
||||
! Errors are getting through stage 1 but corrected in stage2
|
||||
e SCSI/ATAPI transport error (corrected)
|
||||
V Uncorrected error/skip
|
||||
|
||||
SPAN ARGUMENT:
|
||||
The span argument may be a simple track number or a offset/span
|
||||
specification. The syntax of an offset/span takes the rough form:
|
||||
|
||||
1[ww:xx:yy.zz]-2[aa:bb:cc.dd]
|
||||
|
||||
Here, 1 and 2 are track numbers; the numbers in brackets provide a
|
||||
finer grained offset within a particular track. [aa:bb:cc.dd] is in
|
||||
hours/minutes/seconds/sectors format. Zero fields need not be
|
||||
specified: [::20], [:20], [20], [20.], etc, would be interpreted as
|
||||
twenty seconds, [10:] would be ten minutes, [.30] would be thirty
|
||||
sectors (75 sectors per second).
|
||||
|
||||
When only a single offset is supplied, it is interpreted as a starting
|
||||
offset and ripping will continue to the end of he track. If a single
|
||||
offset is preceeded or followed by a hyphen, the implicit missing
|
||||
offset is taken to be the start or end of the disc, respectively. Thus:
|
||||
|
||||
1:[20.35] Specifies ripping from track 1, second 20, sector 35 to
|
||||
the end of track 1.
|
||||
|
||||
1:[20.35]- Specifies ripping from 1[20.35] to the end of the disc
|
||||
|
||||
-2 Specifies ripping from the beginning of the disc up to
|
||||
(and including) track 2
|
||||
|
||||
-2:[30.35] Specifies ripping from the beginning of the disc up to
|
||||
2:[30.35]
|
||||
|
||||
2-4 Specifies ripping from the beginning of track two to the
|
||||
end of track 4.
|
||||
|
||||
Don't forget to protect square brackets and preceeding hyphens from
|
||||
the shell...
|
||||
|
||||
A few examples, protected from the shell:
|
||||
A) query only with exhaustive search for a drive and full reporting
|
||||
of autosense:
|
||||
@CDPARANOIA_NAME@ -vsQ
|
||||
|
||||
B) extract up to and including track 3, putting each track in a separate
|
||||
file:
|
||||
@CDPARANOIA_NAME@ -B -- "-3"
|
||||
|
||||
C) extract from track 1, time 0:30.12 to 1:10.00:
|
||||
@CDPARANOIA_NAME@ "[:30.12]-1[1:10]"
|
||||
|
||||
Submit bug reports to bug-libcdio@gnu.org
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
/*
|
||||
$Id: utils.h,v 1.5 2008/04/11 15:44:00 karl Exp $
|
||||
|
||||
Copyright (C) 2004, 2005, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
Copyright (C) 1998 Monty <xiphmont@mit.edu>
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define copystring(s) (s) ? s : NULL;
|
||||
|
||||
static inline char *
|
||||
catstring(char *buff, const char *s)
|
||||
{
|
||||
if(s){
|
||||
if(buff)
|
||||
buff=realloc(buff,strlen(buff)+strlen(s)+1);
|
||||
else
|
||||
buff=calloc(strlen(s)+1,1);
|
||||
strcat(buff,s);
|
||||
}
|
||||
return(buff);
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
/*
|
||||
$Id: version.h,v 1.6 2008/04/11 15:44:00 karl Exp $
|
||||
|
||||
Copyright (C) 2004, 2005, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
Copyright (C) 2001 Monty <xiphmont@mit.edu>
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/******************************************************************
|
||||
* cdda_paranoia generation III release 9.8 libcdio
|
||||
******************************************************************/
|
||||
#include <cdio/version.h>
|
||||
|
||||
#define PARANOIA_VERSION \
|
||||
"cdparanoia III release 9.8 libcdio " CDIO_VERSION "\n" \
|
||||
"(C) 2001 Monty <monty@xiph.org> and Xiphophorus\n" \
|
||||
"(C) 2004, 2005, 2008 Rocky Bernstein <rocky@gnu.org>\n\n" \
|
||||
"Report bugs to bug-libcdio@gnu.org\n"
|
||||
Reference in New Issue
Block a user