From be66006d44e465710ebde65c8d3982ecd82b7067 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 25 Oct 2006 15:23:11 +0000 Subject: [PATCH] Announced full -audio compatibility with cdrecord --- cdrskin/README | 71 ++++++++++++++++++----------------- cdrskin/cdrskin_eng.html | 31 ++++++++++++++-- cdrskin/wiki_plain.txt | 80 ++++++++++++++++------------------------ 3 files changed, 94 insertions(+), 88 deletions(-) diff --git a/cdrskin/README b/cdrskin/README index 309df40..56abac6 100644 --- a/cdrskin/README +++ b/cdrskin/README @@ -46,9 +46,10 @@ protection against possible damages. You use this on your own risk. Don't blame me or other authors of libburn if anything goes wrong. I used it on my own risk with : -SuSE 7.2, kernel 2.4.4, ide-scsi emulation, LITE-ON LTR48125S CD burner -SuSE 9.0, kernel 2.4.21, ide-scsi emulation, LG GSA-4082B CD/DVD burner -RIP-14.4, kernel 2.6.14, no ide-scsi, with both above burners +SuSE 7.2, kernel 2.4.4, ide-scsi emulation, LITE-ON LTR48125S CD burner, 2002 +SuSE 9.0, kernel 2.4.21, ide-scsi emulation, LG GSA-4082B CD/DVD burner, 2004 + NEC ND-4570A CD/DVD burner, 2006 +RIP-14.4, kernel 2.6.14, no ide-scsi, with all above burners It fails to compile or run on SuSE 6.4 (kernel 2.2.14). It does not find the IDE CD burner on SuSE 7.2 without ide-scsi. @@ -124,17 +125,13 @@ On Linux 2.4 this would be some /dev/sgN and on 2.6. some /dev/hdX. The output of cdrskin --devices might look like - 0 dev='/dev/sg0' rwrwr- : 'TEAC' 'CD-ROM CD-532S' - 1 dev='/dev/sg1' rwrw-- : 'LITE-ON' 'LTR-48125S' + 0 dev='/dev/sg0' rwrwr- : '_NEC' 'DVD_RW ND-4570A' + 1 dev='/dev/sg1' rwrw-- : 'HL-DT-ST' 'DVDRAM GSA-4082B' So full and insecure enabling of both for everybody would look like chmod a+rw /dev/sg0 /dev/sg1 -(The CD-ROM is in these examples only for demonstrating the presence of another - SCSI device. This /dev/sg0 may be left as it is and stay invisible for normal - users.) - I strongly discourage to run cdrskin with setuid root or via sudo ! It is not checked for the necessary degree of hacker safety. @@ -147,7 +144,7 @@ Get an overview of cdrecord style addresses of available devices Note: Adresses reported with dev=ATA are to be used with prefix "ATA:". You may well use device file addresses as reported with --devices. Examples: - dev=1,1,0 dev=ATA:1,0,0 dev=/dev/hdc dev=/dev/sg1 + dev=0,1,0 dev=/dev/sg1 dev=ATA:1,0,0 dev=/dev/hdc See also "Drive Addressing". Note: Address numbers have changed since cdrskin-0.2.2 in order to become compatible with cdrecord numbers. To get the old number scheme, use @@ -156,43 +153,44 @@ Note: Address numbers have changed since cdrskin-0.2.2 in order to become Obtain some info about the drive - cdrskin dev=1,1,0 -checkdrive + cdrskin dev=0,1,0 -checkdrive Obtain some info about the drive and the inserted media - cdrskin dev=1,1,0 -atip + cdrskin dev=0,1,0 -atip Thoroughly blank a CD-RW - cdrskin -v dev=1,1,0 blank=all -eject + cdrskin -v dev=0,1,0 blank=all -eject Blank CD-RW sufficiently for making it ready for overwrite - cdrskin -v dev=1,1,0 blank=fast -eject + cdrskin -v dev=0,1,0 blank=fast -eject Burn image file my_image.iso to CD - cdrskin -v dev=1,1,0 speed=12 fs=8m -sao driveropts=burnfree padsize=300k \ + cdrskin -v dev=0,1,0 speed=12 fs=8m -sao driveropts=burnfree padsize=300k \ -eject my_image.iso Burn a compressed afio archive to CD on-the-fly - find . | afio -oZ - | cdrskin -v dev=1,1,0 fs=32m speed=8 -sao \ + find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 -sao \ driveropts=burnfree padsize=300k tsize=650m - Burn 6 audio tracks from files with different formats to CD. -Anything except .wav files has to be converted into raw format first +Anything except .wav or .au files has to be converted into raw format first. +See below "Audio CD" for specifications. ogg123 -d raw -f track01.cd /path/to/track1.ogg oggdec -R -o track02.cd /path/to/track2.ogg lame --decode -t /path/to/track3.mp3 track03.cd madplay -o raw:track04.cd /path/to/track4.mp3 mppdec --raw-le /path/to/track5.mpc track05.cd - cdrskin dev=1,1,0 blank=fast fs=0 -eject \ + cdrskin dev=0,1,0 blank=fast -eject speed=48 \ -audio -swab track0[1-5].cd /path/to/track6.wav Usage example with http://scdbackup.sourceforge.net Address may be a cdrecord-style "scsibus,target,lun" as listed with -cdrskin -scanbus (but not as listed with cdrecord -scanbus) : +cdrskin -scanbus (and hopefully as listed with cdrecord -scanbus) : - export SCDBACKUP_SCSI_ADR="1,1,0" + export SCDBACKUP_SCSI_ADR="0,1,0" or a device file address as listed by --devices with an accessible drive : @@ -214,11 +212,6 @@ Therefore it has to be defaulted to mode SAO which needs to know the track size in advance. non-cdrecord option tao_to_sao_tsize=650m causes each CD to get burned up to 650 MB regardless of the payload size. -Audio features are incomplete in respect to cdrecord. Well prepaired track -files should get burned flawlessly, thanks to Lorenzo Taylor. -Builtin extraction of raw audio data from filetypes .au and .wav is not -implemented yet. See chapter "Audio CD" for details. - No multi session yet ... Please report your wishes. @@ -254,7 +247,6 @@ which are not listed by option --devices but point to the same SCSI addresses as listed device files. This addressing via e.g. /dev/sr0 or /dev/scd1 is compatible with generic read programs like dd and with write program growisofs. - Pseudo-SCSI Adresses cdrecord and cdrskin share the syntax of SCSI addresses but not necessarily @@ -293,6 +285,7 @@ drive accessability. Further busses may emerge as libburn evolves. "prefix" and "lun" may get a meaning. To stay upward compatible, use addresses as printed by -scanbus. + User Defined Device Address Translation Some programs or users have their own ideas about the address of their burner. K3b 0.10 for example derives cdrecord addresses by own examination of the @@ -302,14 +295,14 @@ Standard mode will hopefully be fully compatible with their ideas. Old frontends which do not know dev=ATA or dev=ATAPI and which do ask their "cdrecord" via -scanbus may be well served with option --old_pseudo_scsi_adr . -To direct any stubborn callers to the appropriate drives, cdrskin allows to -define device address aliases. Like +To direct any remaining stubborn callers to the appropriate drives, cdrskin +allows to define device address aliases. Like cdrskin dev_translation=+1,0,0+/dev/sg1 \ dev_translation=+ATA:1,0,0+/dev/sg1 \ - dev_translation=-"cd+dvd"-1,1,0 \ + dev_translation=-"cd+dvd"-0,1,0 \ ... Any of the addresses dev=1,0,0, dev=ATA:1,0,0, dev=cd+dvd will be mapped to -/dev/sg1 resp. to its standard alias 1,1,0. +/dev/sg1 resp. to 0,1,0. The first character after "dev_translation=" defines the character which separates the two parts of the translation pair. (Above: "+" and "-".) @@ -353,17 +346,23 @@ fs=16m Lorenzo Taylor enabled option -audio in cdrskin (thanks !) and reports neat results with audio data files which are : - headerless PCM + headerless PCM (i.e. uncompressed) 44100 Hz sampling rate 16 bits per sample stereo (2 channels) - little-endian byte order with option -swab + little-endian byte order with option -swab, or big-endian without -swab + Files with name extension .wav get examined wether they are in Microsoft WAVE format with above parameters and eventually get extracted by cdrskin itself. -Files with name extension .au get examined wether they are in SUN's audio -format with above parameters. Their big-endianness gets handled properly. -Any other formats are to be extracted by commands like those given above under -"Usage examples". +In the same way files with name extension .au get examined wether they are +in SUN's audio format. For both formats, track format -audio and eventual +endianness option -swab are enabled automatically. + +Any other formats are to be converted to format .wav with above parameters +or to be extracted as raw CD track data by commands like those given above +under "Usage examples". Those raw files need option -audio and in most cases +option -swab to mark them as little-endian/Intel/LSB-first 16-bit data. +Incorrect endianness setting results in random noise on CD. I myself am not into audio. So libburn-hackers@pykix.org might be the best address for suggestions, requests and bug reports. diff --git a/cdrskin/cdrskin_eng.html b/cdrskin/cdrskin_eng.html index 073423c..0970ce1 100644 --- a/cdrskin/cdrskin_eng.html +++ b/cdrskin/cdrskin_eng.html @@ -114,7 +114,7 @@ wishes as well as on the development of libburn. Option -audio is enabled but by default not advertised via option -help, because no beheading of .au or .wav files takes place yet.
Note: In development version 0.2.3 there is automatic extraction of -.wav files but not of .au. +.wav and .au. So -audio is fully supported.
  • Burns only a single closed session. No -multi option yet. @@ -196,12 +196,13 @@ cdrskin_0.2.2-x86-suse9_0-static.tar.gz, (250 KB), -static compiled,
  • cdrecord compatibility with addresses of form [ATA:]Bus,Target,Lun.
  • Drives adressable via links and device siblings (/dev/cdrom , /dev/scd0).
  • +
  • Automatic -audio extraction with .wav files and .au files. +
     $ cdrskin -v dev=1,1,0 track1.wav track2.au -audio -swab track3.raw +
  • Comments and empty lines allowed in startup files.
  • Options -scanbus and --devices print SORRY messages about busy drives.
  • -
  • Track source files with ending .wav are checked for compliance and - extracted automatically.
  • -
  • Drive buffer fill indicator reports are realistic percentage numbers.
  • +
  • Drive buffer fill indicator reports realistic percentage numbers.
  • Option -toc is supported, drive firmware revision gets displayed.
  •  
    @@ -293,6 +294,18 @@ is a GUI frontend which uses cdrecord for CD burning.)
    scsibus2:
        2,2,0    1)  'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM
    $ export SCDBACKUP_SCSI_ADR="2,2,0"
    + + +
    $ export SCDBACKUP_CDRECORD="cdrskin -v -v tao_to_sao_tsize=650m"
    $ scdbackup_home
    @@ -317,6 +330,16 @@ and try again.
        1,0,0    0)  'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM
        2,2,0    1)  'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM
    ------------------- end of SCSI device list
    + + +
    ...
        * Your cdrecord offers -driveropts=burnfree with your recorder.
    ...
    diff --git a/cdrskin/wiki_plain.txt b/cdrskin/wiki_plain.txt index 351395c..656cc10 100644 --- a/cdrskin/wiki_plain.txt +++ b/cdrskin/wiki_plain.txt @@ -2,7 +2,7 @@ cdrskin Wiki - plain text copy -------------------------------------------------------------------------- -cdrskin is the cdrecord compatibility middleware of libburn. +cdrskin-0.2.3 is the cdrecord compatibility middleware of libburn. Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg Schilling's cdrtools. cdrskin strives to be a second source for the services @@ -16,14 +16,8 @@ can be found in cdrskin/README . -------------------------------------------------------------------------- -cdrskin with CD media fails to match its paragon cdrecord on three major -fields: convenient TAO burn mode, multi session, audio features. - -Audio features are the only topic where cdrskin did not yet exploit current -libburn to the maximum. This is due to my own lack of audiophile motivation -and due to the lack of sincere users who provide me with cdrecord use cases, -help me to explore the original cdrecord behavior and serve as dedicated -testers for eventual newly introduced cdrskin audio features. +cdrskin with CD media fails to match its paragon cdrecord on two major +fields: convenient TAO burn mode and multi session. cdrskin does not provide DVD burning yet. See advise to use dvd+rw-tools at the end of this text. @@ -80,45 +74,6 @@ has to offer both, r- and w-permission. -------------------------------------------------------------------------- -eject_device= is needed to work around yet broken tray ejection of -drives. cdrskin makes a bold shell call to program "eject" and regrettably -this program does not like our addresses for SCSI devices. -/dev/hdX work fine and /dev/sg0 is quite safely guess-translated to -/dev/sr0 . /dev/sg1 et.al. need the user's help. must work with eject. - --------------------------------------------------------------------------- - -dev_translation= is needed to foist cdrskin to frontend -programs of cdrecord which do *not* ask cdrecord -scanbus but which make -own assumptions and guesses about cdrecord's device addresses. -cdrskin project - at least for now - refuses to try to provide a similar -guesswork but uses own cdrecord style addresses which have a mere -semi-automatic text mapping to real libburn addresses. See cdrskin/README, -"Pseudo-SCSI Adresses". - -If you need to foist cdrskin under a frontend then you may be lucky and -both ideas of an address coincide. Especially if the frontend has the -decency to ask its "cdrecord" via option -scanbus for a list of drives. -If not, look into the error protocol of the frontend, look at the output -of a run of cdrskin --devices and give cdrskin the necessary hint. - -If your frontend insists in using "0,0,0" and --devices reported -dev='/dev/sg0' resp. cdrskin -scanbus reported "1,0,0" then this -would be the appropriate translation - -dev_translation=+0,0,0+/dev/sg0 - -The "+" character is a separator to be choosen by you. -Currently i am not aware of the need to choose any other than "+" -unless you get playful with custom translations like - -dev_translation=-"cd+dvd"-1,0,0 - -See http://scdbackup.sourceforge.net/k3b_on_cdrskin.html -for an illustrated example with K3b 0.10 . - --------------------------------------------------------------------------- - --fifo_start_empty is a throughput enhancer for unsteady data streams like they are produced by a compressing archiver program when piping to CD on-the-fly. It makes better use of the general property of a FIFO @@ -177,6 +132,35 @@ be a failure in any way. -------------------------------------------------------------------------- +dev_translation= may be needed to foist cdrskin to +frontend programs of cdrecord which do *not* ask cdrecord -scanbus but +which make own assumptions and guesses about cdrecord's device addresses. + +Normally, cdrskin understands all addresses which are suitable for cdrecord +under Linux. See cdrskin/README, "Pseudo-SCSI Adresses". +This option is mainly for (yet unknown) exotic configurations or very +stubborn frontend programs. + +If a frontend refuses to work with cdrskin, look into the error protocol +of that frontend, look at the output of a run of cdrskin --devices and give +cdrskin the necessary hint. +Example: Your frontend insists in using "0,0,0" and --devices reported +dev='/dev/hdc' resp. cdrskin dev=ATA -scanbus reported "1,0,0" then this +would be the appropriate translation: + +dev_translation=+0,0,0+/dev/hdc + +The "+" character is a separator to be choosen by you. +Currently i am not aware of the need to choose any other than "+" +unless you get playful with custom translations like + +dev_translation=-"cd+dvd"-1,0,0 + +See http://scdbackup.sourceforge.net/k3b_on_cdrskin.html +for an illustrated example with K3b 0.10 . + +-------------------------------------------------------------------------- + DVD advise: For burning of DVD media the cdrskin project currently advises to use