Compare commits
15 Commits
ZeroSixTwo
...
ZeroSixFou
Author | SHA1 | Date | |
---|---|---|---|
fc1b93b15c | |||
b3e1136694 | |||
34bb592b60 | |||
34535a9cbf | |||
635405da8f | |||
aafa543391 | |||
8594cd96bc | |||
b07c83ed86 | |||
d74b1a2008 | |||
8c56ca131f | |||
53e4483460 | |||
591c385489 | |||
b0f1f67495 | |||
6139fb32dd | |||
01ed4729bd |
@ -103,9 +103,9 @@ test_structest_CPPFLAGS = -Ilibburn
|
|||||||
test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
|
test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
|
||||||
test_structest_SOURCES = test/structest.c
|
test_structest_SOURCES = test/structest.c
|
||||||
|
|
||||||
## cdrskin construction site - ts A60816 - A90104
|
## cdrskin construction site - ts A60816 - A90313
|
||||||
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
|
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
|
||||||
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_6_1
|
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_6_4
|
||||||
|
|
||||||
# cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
|
# cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
|
||||||
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking
|
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking
|
||||||
|
39
README
39
README
@ -11,7 +11,7 @@ Still containing parts of Libburn. By Derek Foreman <derek@signalmarketing.com>
|
|||||||
and Ben Jansens <xor@orodu.net>
|
and Ben Jansens <xor@orodu.net>
|
||||||
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
|
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
|
||||||
|
|
||||||
http://files.libburnia-project.org/releases/libburn-0.6.0.pl00.tar.gz
|
http://files.libburnia-project.org/releases/libburn-0.6.4.pl00.tar.gz
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -19,10 +19,10 @@ Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
|
|||||||
|
|
||||||
From tarball
|
From tarball
|
||||||
|
|
||||||
Obtain libburn-0.6.0.pl00.tar.gz, take it to a directory of your choice and do:
|
Obtain libburn-0.6.4.pl00.tar.gz, take it to a directory of your choice and do:
|
||||||
|
|
||||||
tar xzf libburn-0.6.0.pl00.tar.gz
|
tar xzf libburn-0.6.4.pl00.tar.gz
|
||||||
cd libburn-0.6.0
|
cd libburn-0.6.4
|
||||||
./configure --prefix=/usr
|
./configure --prefix=/usr
|
||||||
make
|
make
|
||||||
|
|
||||||
@ -47,8 +47,8 @@ Our build system is based on autotools. For preparing the build of a SVN
|
|||||||
snapshot you will need autotools of at least version 1.7.
|
snapshot you will need autotools of at least version 1.7.
|
||||||
Do in a directory of your choice:
|
Do in a directory of your choice:
|
||||||
|
|
||||||
svn co http://svn.libburnia-project.org/libburn/trunk libburn-0.6.1
|
svn co http://svn.libburnia-project.org/libburn/trunk libburn-0.6.3
|
||||||
cd libburn-0.6.1
|
cd libburn-0.6.3
|
||||||
./bootstrap
|
./bootstrap
|
||||||
./configure --prefix=/usr
|
./configure --prefix=/usr
|
||||||
make
|
make
|
||||||
@ -83,8 +83,10 @@ These are libraries, language bindings, and middleware binaries which emulate
|
|||||||
classical (and valuable) Linux tools.
|
classical (and valuable) Linux tools.
|
||||||
Currently it is supported on Linux with kernels >= 2.4 and on FreeBSD versions
|
Currently it is supported on Linux with kernels >= 2.4 and on FreeBSD versions
|
||||||
with ATAPI/CAM support enabled in the kernel, see atapicam(4).
|
with ATAPI/CAM support enabled in the kernel, see atapicam(4).
|
||||||
|
On other X/Open compliant systems there will only be pseudo drives, but no
|
||||||
|
direct MMC operation on real CD/DVD/BD drives.
|
||||||
|
|
||||||
For ports to other systems we would need : login on a development machine
|
For full ports to other systems we would need : login on a development machine
|
||||||
resp. a live OS on CD or DVD, advise from a system person about the equivalent
|
resp. a live OS on CD or DVD, advise from a system person about the equivalent
|
||||||
of Linux sg or FreeBSD CAM, volunteers for testing of realistic use cases.
|
of Linux sg or FreeBSD CAM, volunteers for testing of realistic use cases.
|
||||||
|
|
||||||
@ -363,6 +365,29 @@ Project history as far as known to me:
|
|||||||
- 2nd Jan 2009 libburn-0.6.0 allows to format BD-R and to write to either
|
- 2nd Jan 2009 libburn-0.6.0 allows to format BD-R and to write to either
|
||||||
formatted or unformatted BD-R.
|
formatted or unformatted BD-R.
|
||||||
|
|
||||||
|
- 6th Jan 2009 libisoburn-0.3.2. xorriso can produce and execute commands for
|
||||||
|
mounting older sessions from all kinds of media. Pseudo-drives outside the
|
||||||
|
/dev/ tree can be addressed without prefix "stdio:".
|
||||||
|
|
||||||
|
- 20th Feb 2009 libburn-0.6.2 source release now compiles out of the box
|
||||||
|
on FreeBSD.
|
||||||
|
|
||||||
|
- 28 Feb 2009 libisofs-0.6.14 can record ACLs and Extended Attributes xattr
|
||||||
|
in its ISO images.
|
||||||
|
|
||||||
|
- 01 Mar 2009 libisoburn-0.3.4. xorriso makes use of the ACL and xattr
|
||||||
|
capabilities provided by libisofs for xorriso backup features.
|
||||||
|
|
||||||
|
- 11 Mar 2009 libisofs-0.6.16 of libisofs fixes two bugs which on Solaris
|
||||||
|
prevented to navigate the ISO images by ".." and to recognize the Rock Ridge
|
||||||
|
extensions of ISO images. The ban to build libisofs on operating systems
|
||||||
|
other than Linux and FreeBSD has been lifted.
|
||||||
|
|
||||||
|
- 13 Mar 2009 libburn-0.6.4 got a dummy adapter for SCSI/MMC command transport.
|
||||||
|
It will show no drives and thus libburn will only be able to perform
|
||||||
|
operations on "stdio:" pseudo drives. Nevertheless this allowed to lift the
|
||||||
|
ban to build libburn on operating systems other than Linux and FreeBSD.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -14,7 +14,9 @@ AC_DEFUN([TARGET_SHIZZLE],
|
|||||||
LIBBURN_ARCH_LIBS=-lcam
|
LIBBURN_ARCH_LIBS=-lcam
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
AC_ERROR([You are attempting to compile for an unsupported platform])
|
ARCH=
|
||||||
|
LIBBURN_ARCH_LIBS=
|
||||||
|
# AC_ERROR([You are attempting to compile for an unsupported platform])
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
|
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
|
||||||
Integrated sub project of libburnia-project.org but also published via:
|
Integrated sub project of libburnia-project.org but also published via:
|
||||||
http://scdbackup.sourceforge.net/cdrskin_eng.html
|
http://scdbackup.sourceforge.net/cdrskin_eng.html
|
||||||
http://scdbackup.sourceforge.net/cdrskin-0.6.1.tar.gz
|
http://scdbackup.sourceforge.net/cdrskin-0.6.4.pl00.tar.gz
|
||||||
Copyright (C) 2006-2009 Thomas Schmitt, provided under GPL version 2.
|
Copyright (C) 2006-2009 Thomas Schmitt, provided under GPL version 2.
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -14,6 +14,8 @@ most of the libburn features from the command line.
|
|||||||
|
|
||||||
Currently it is supported on Linux with kernels >= 2.4 and on FreeBSD versions
|
Currently it is supported on Linux with kernels >= 2.4 and on FreeBSD versions
|
||||||
with ATAPI/CAM support enabled in the kernel, see atapicam(4).
|
with ATAPI/CAM support enabled in the kernel, see atapicam(4).
|
||||||
|
On other X/Open compliant systems there will only be pseudo drives, but no
|
||||||
|
direct MMC operation on real CD/DVD/BD drives.
|
||||||
|
|
||||||
By using this software you agree to the disclaimer at the end of this text
|
By using this software you agree to the disclaimer at the end of this text
|
||||||
"This software is provided as is. There is no warranty implied and ..."
|
"This software is provided as is. There is no warranty implied and ..."
|
||||||
@ -21,10 +23,10 @@ By using this software you agree to the disclaimer at the end of this text
|
|||||||
|
|
||||||
Compilation, First Glimpse, Installation
|
Compilation, First Glimpse, Installation
|
||||||
|
|
||||||
Obtain cdrskin-0.6.1.tar.gz, take it to a directory of your choice and do:
|
Obtain cdrskin-0.6.4.pl00.tar.gz, take it to a directory of your choice and do:
|
||||||
|
|
||||||
tar xzf cdrskin-0.6.1.tar.gz
|
tar xzf cdrskin-0.6.4.pl00.tar.gz
|
||||||
cd cdrskin-0.6.1
|
cd cdrskin-0.6.4
|
||||||
|
|
||||||
Within that directory execute:
|
Within that directory execute:
|
||||||
|
|
||||||
@ -286,6 +288,9 @@ nominal speed by option "stream_recording=on".
|
|||||||
In this case bad blocks are not detected during write and not even previously
|
In this case bad blocks are not detected during write and not even previously
|
||||||
known bad blocks are avoided. So you have to make your own readability tests
|
known bad blocks are avoided. So you have to make your own readability tests
|
||||||
and go back to half speed as soon as the first read errors show up.
|
and go back to half speed as soon as the first read errors show up.
|
||||||
|
Instead of "on" one may also set a start address for stream recording.
|
||||||
|
Like "stream_recording=100m". This will write slowly to the first 100 MB of
|
||||||
|
the media and accelerate when writing to higher addresses.
|
||||||
|
|
||||||
Option --grow_overwriteable_iso allows -multi (although unneeded), enables
|
Option --grow_overwriteable_iso allows -multi (although unneeded), enables
|
||||||
-msinfo and -toc, and makes blank=fast an invalidator for ISO filesystems
|
-msinfo and -toc, and makes blank=fast an invalidator for ISO filesystems
|
||||||
@ -423,7 +428,7 @@ are the cause. Any mistake of the burn program is supposed to be caught
|
|||||||
by the drive's firmware and to lead to mere misburns.
|
by the drive's firmware and to lead to mere misburns.
|
||||||
The worst mishaps which hit the author imposed the need to reboot the
|
The worst mishaps which hit the author imposed the need to reboot the
|
||||||
system because of drives gnawing endlessly on ill media. Permanent hardware
|
system because of drives gnawing endlessly on ill media. Permanent hardware
|
||||||
damage did not occur in 2.5 years of development. But one never knows ...
|
damage did not occur in 3.5 years of development. But one never knows ...
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ original="./libburn_svn_release.tgz"
|
|||||||
# My changes are in $changes , mainly in $changes/cdrskin
|
# My changes are in $changes , mainly in $changes/cdrskin
|
||||||
changes="./libburn-release"
|
changes="./libburn-release"
|
||||||
|
|
||||||
skin_release="0.6.0"
|
skin_release="0.6.4"
|
||||||
patch_level=".pl00"
|
patch_level=".pl00"
|
||||||
skin_rev="$skin_release""$patch_level"
|
skin_rev="$skin_release""$patch_level"
|
||||||
|
|
@ -38,7 +38,7 @@ original="./libburn_svn.tgz"
|
|||||||
# My changes are in $changes , mainly in $changes/cdrskin
|
# My changes are in $changes , mainly in $changes/cdrskin
|
||||||
changes="./libburn-develop"
|
changes="./libburn-develop"
|
||||||
|
|
||||||
skin_release="0.6.1"
|
skin_release="0.6.5"
|
||||||
patch_level=""
|
patch_level=""
|
||||||
skin_rev="$skin_release""$patch_level"
|
skin_rev="$skin_release""$patch_level"
|
||||||
|
|
@ -1186,13 +1186,15 @@ Use and report literal Bus,Target,Lun addresses rather than real SCSI and
|
|||||||
pseudo ATA addresses. This method is outdated and was never compatible with
|
pseudo ATA addresses. This method is outdated and was never compatible with
|
||||||
original cdrecord.
|
original cdrecord.
|
||||||
.TP
|
.TP
|
||||||
.BI stream_recording="on"|"off"
|
.BI stream_recording="on"|"off"|number
|
||||||
By setting "on" request that compliance to the desired speed setting is
|
By setting "on" request that compliance to the desired speed setting is
|
||||||
preferred over management of write errors. With DVD-RAM and BD this can
|
preferred over management of write errors. With DVD-RAM and BD this can
|
||||||
bring effective write speed near to the nominal write speed of the media.
|
bring effective write speed near to the nominal write speed of the media.
|
||||||
But it will also disable the automatic use of replacement blocks
|
But it will also disable the automatic use of replacement blocks
|
||||||
if write errors occur. It might as well be disliked or ignored by the drive.
|
if write errors occur. It might as well be disliked or ignored by the drive.
|
||||||
.br
|
.br
|
||||||
|
If a number is given, then error management stays enabled for all byte
|
||||||
|
addresses below that number. Any number below 16s is the same as "off".
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
.SS
|
.SS
|
||||||
.B Get an overview of drives and their addresses:
|
.B Get an overview of drives and their addresses:
|
||||||
|
@ -88,7 +88,7 @@ or
|
|||||||
|
|
||||||
/** The official program version */
|
/** The official program version */
|
||||||
#ifndef Cdrskin_prog_versioN
|
#ifndef Cdrskin_prog_versioN
|
||||||
#define Cdrskin_prog_versioN "0.6.1"
|
#define Cdrskin_prog_versioN "0.6.4"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** The official libburn interface revision to use.
|
/** The official libburn interface revision to use.
|
||||||
@ -101,7 +101,7 @@ or
|
|||||||
#define Cdrskin_libburn_minoR 6
|
#define Cdrskin_libburn_minoR 6
|
||||||
#endif
|
#endif
|
||||||
#ifndef Cdrskin_libburn_micrO
|
#ifndef Cdrskin_libburn_micrO
|
||||||
#define Cdrskin_libburn_micrO 0
|
#define Cdrskin_libburn_micrO 4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -135,44 +135,44 @@ or
|
|||||||
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_6_0
|
#ifdef Cdrskin_libburn_0_6_4
|
||||||
#define Cdrskin_libburn_versioN "0.6.0"
|
#define Cdrskin_libburn_versioN "0.6.4"
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
#define Cdrskin_libburn_from_pykix_svN 1
|
||||||
#endif /* Cdrskin_libburn_0_6_0 */
|
#endif /* Cdrskin_libburn_0_6_4 */
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_6_1
|
#ifdef Cdrskin_libburn_0_6_5
|
||||||
#define Cdrskin_libburn_versioN "0.6.1"
|
#define Cdrskin_libburn_versioN "0.6.5"
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
#define Cdrskin_libburn_from_pykix_svN 1
|
||||||
|
|
||||||
/* Place novelty switch macros here.
|
/* Place novelty switch macros here.
|
||||||
Move them down to Cdrskin_libburn_from_pykix_svN on version leap
|
Move them down to Cdrskin_libburn_from_pykix_svN on version leap
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* there are no libburn novelties in 0.6.1 yet */
|
/* there are no libburn novelties in 0.6.5 yet */
|
||||||
|
|
||||||
#endif /* Cdrskin_libburn_0_6_1 */
|
#endif /* Cdrskin_libburn_0_6_5 */
|
||||||
|
|
||||||
#ifndef Cdrskin_libburn_versioN
|
#ifndef Cdrskin_libburn_versioN
|
||||||
#define Cdrskin_libburn_0_6_0
|
#define Cdrskin_libburn_0_6_4
|
||||||
#define Cdrskin_libburn_versioN "0.6.0"
|
#define Cdrskin_libburn_versioN "0.6.4"
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
#define Cdrskin_libburn_from_pykix_svN 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_6_0
|
#ifdef Cdrskin_libburn_0_6_4
|
||||||
#undef Cdrskin_libburn_majoR
|
#undef Cdrskin_libburn_majoR
|
||||||
#undef Cdrskin_libburn_minoR
|
#undef Cdrskin_libburn_minoR
|
||||||
#undef Cdrskin_libburn_micrO
|
#undef Cdrskin_libburn_micrO
|
||||||
#define Cdrskin_libburn_majoR 0
|
#define Cdrskin_libburn_majoR 0
|
||||||
#define Cdrskin_libburn_minoR 6
|
#define Cdrskin_libburn_minoR 6
|
||||||
#define Cdrskin_libburn_micrO 0
|
#define Cdrskin_libburn_micrO 4
|
||||||
#endif
|
#endif
|
||||||
#ifdef Cdrskin_libburn_0_6_1
|
#ifdef Cdrskin_libburn_0_6_5
|
||||||
#undef Cdrskin_libburn_majoR
|
#undef Cdrskin_libburn_majoR
|
||||||
#undef Cdrskin_libburn_minoR
|
#undef Cdrskin_libburn_minoR
|
||||||
#undef Cdrskin_libburn_micrO
|
#undef Cdrskin_libburn_micrO
|
||||||
#define Cdrskin_libburn_majoR 0
|
#define Cdrskin_libburn_majoR 0
|
||||||
#define Cdrskin_libburn_minoR 6
|
#define Cdrskin_libburn_minoR 6
|
||||||
#define Cdrskin_libburn_micrO 1
|
#define Cdrskin_libburn_micrO 5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -251,9 +251,15 @@ or
|
|||||||
/* 0.4.8 */
|
/* 0.4.8 */
|
||||||
/* Bug fix release for write_start_address=... on DVD-RAM and BD-RE */
|
/* Bug fix release for write_start_address=... on DVD-RAM and BD-RE */
|
||||||
|
|
||||||
/* 0.5.0 , 0.5.2 , 0.5.4 , 0.5.6 , 0.5.8 , 0.6.0 */
|
/* 0.5.0 , 0.5.2 , 0.5.4 , 0.5.6 , 0.5.8 , 0.6.0 , 0.6.2 */
|
||||||
/* novel libburn features are transparent to cdrskin */
|
/* novel libburn features are transparent to cdrskin */
|
||||||
|
|
||||||
|
/* 0.6.4 */
|
||||||
|
/* Ended to mark novelties by macros.
|
||||||
|
libburnia libburn and cdrskin are fixely in sync now.
|
||||||
|
icculus libburn did not move for 30 months.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifdef Cdrskin_new_api_tesT
|
#ifdef Cdrskin_new_api_tesT
|
||||||
|
|
||||||
@ -2692,10 +2698,13 @@ set_dev:;
|
|||||||
" --single_track accept only last argument as source_address\n");
|
" --single_track accept only last argument as source_address\n");
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_has_stream_recordinG
|
#ifdef Cdrskin_libburn_has_stream_recordinG
|
||||||
|
printf(" stream_recording=\"on\"|\"off\"|number\n");
|
||||||
printf(
|
printf(
|
||||||
" stream_recording=\"on\"|\"off\" \"on\" requests to prefer speed\n");
|
" \"on\" requests to prefer speed over write\n");
|
||||||
printf(
|
printf(
|
||||||
" over write error management.\n");
|
" error management. A number prevents this with\n");
|
||||||
|
printf(
|
||||||
|
" byte addresses below that number.\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Cdrskin_allow_libburn_taO
|
#ifdef Cdrskin_allow_libburn_taO
|
||||||
@ -3120,7 +3129,7 @@ struct CdrskiN {
|
|||||||
int gracetime;
|
int gracetime;
|
||||||
int dummy_mode;
|
int dummy_mode;
|
||||||
int force_is_set;
|
int force_is_set;
|
||||||
int stream_recording_is_set;
|
int stream_recording_is_set; /* see burn_write_opts_set_stream_recording() */
|
||||||
int single_track;
|
int single_track;
|
||||||
int prodvd_cli_compatible;
|
int prodvd_cli_compatible;
|
||||||
|
|
||||||
@ -6466,7 +6475,7 @@ burn_failed:;
|
|||||||
burn_write_opts_set_force(o, !!skin->force_is_set);
|
burn_write_opts_set_force(o, !!skin->force_is_set);
|
||||||
#endif
|
#endif
|
||||||
#ifdef Cdrskin_libburn_has_stream_recordinG
|
#ifdef Cdrskin_libburn_has_stream_recordinG
|
||||||
burn_write_opts_set_stream_recording(o, !!skin->stream_recording_is_set);
|
burn_write_opts_set_stream_recording(o, skin->stream_recording_is_set);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(skin->dummy_mode) {
|
if(skin->dummy_mode) {
|
||||||
@ -6988,7 +6997,7 @@ sorry_failed_to_eject:;
|
|||||||
int Cdrskin_setup(struct CdrskiN *skin, int argc, char **argv, int flag)
|
int Cdrskin_setup(struct CdrskiN *skin, int argc, char **argv, int flag)
|
||||||
{
|
{
|
||||||
int i,k,l,ret,source_has_size=0, idx= -1;
|
int i,k,l,ret,source_has_size=0, idx= -1;
|
||||||
double value,grab_and_wait_value= -1.0;
|
double value,grab_and_wait_value= -1.0, num;
|
||||||
char *cpt,*value_pt,adr[Cdrskin_adrleN],*blank_mode= "";
|
char *cpt,*value_pt,adr[Cdrskin_adrleN],*blank_mode= "";
|
||||||
struct stat stbuf;
|
struct stat stbuf;
|
||||||
|
|
||||||
@ -7725,9 +7734,15 @@ set_speed:;
|
|||||||
set_stream_recording:;
|
set_stream_recording:;
|
||||||
if(strcmp(value_pt, "on")==0)
|
if(strcmp(value_pt, "on")==0)
|
||||||
skin->stream_recording_is_set= 1;
|
skin->stream_recording_is_set= 1;
|
||||||
|
else if(value_pt[0] >= '0' && value_pt[0] <= '9') {
|
||||||
|
num= Scanf_io_size(value_pt, 0);
|
||||||
|
num/= 2048.0;
|
||||||
|
if(num >= 16 && num <= 0x7FFFFFFF)
|
||||||
|
skin->stream_recording_is_set= num;
|
||||||
else
|
else
|
||||||
skin->stream_recording_is_set= 0;
|
skin->stream_recording_is_set= 0;
|
||||||
|
} else
|
||||||
|
skin->stream_recording_is_set= 0;
|
||||||
} else if(strcmp(argv[i],"-swab")==0) {
|
} else if(strcmp(argv[i],"-swab")==0) {
|
||||||
skin->swap_audio_bytes= 0;
|
skin->swap_audio_bytes= 0;
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ and to MMC-5 for DVD or BD).
|
|||||||
GPL software included:<BR>
|
GPL software included:<BR>
|
||||||
</H2>
|
</H2>
|
||||||
<DL>
|
<DL>
|
||||||
<DT>libburn-0.6.0</DT>
|
<DT>libburn-0.6.4</DT>
|
||||||
<DD>(founded by Derek Foreman and Ben Jansens,
|
<DD>(founded by Derek Foreman and Ben Jansens,
|
||||||
developed and maintained since August 2006 by
|
developed and maintained since August 2006 by
|
||||||
Thomas Schmitt from team of libburnia-project.org)
|
Thomas Schmitt from team of libburnia-project.org)
|
||||||
@ -148,6 +148,9 @@ as listed by option --devices.</DT>
|
|||||||
<DD><KBD> --tell_media_space 2>/dev/null)</KBD></DD>
|
<DD><KBD> --tell_media_space 2>/dev/null)</KBD></DD>
|
||||||
<DD>$<KBD> echo "Available: $x blocks of 2048 data bytes"</KBD></DD>
|
<DD>$<KBD> echo "Available: $x blocks of 2048 data bytes"</KBD></DD>
|
||||||
|
|
||||||
|
<DT>Accelerate BD-RE writing to full nominal speed after the first 250 MB</DT>
|
||||||
|
<DD>$<KBD> cdrskin ... stream_recording=250m ...</KBD>
|
||||||
|
|
||||||
<DT>Write audio tracks to CD:</DT>
|
<DT>Write audio tracks to CD:</DT>
|
||||||
<DD>$<KBD> cdrskin -v dev=ATA:1,0,0 speed=48 -sao \</KBD></DD>
|
<DD>$<KBD> cdrskin -v dev=ATA:1,0,0 speed=48 -sao \</KBD></DD>
|
||||||
<DD><KBD> track1.wav track2.au -audio -swab track3.raw</KBD></DD>
|
<DD><KBD> track1.wav track2.au -audio -swab track3.raw</KBD></DD>
|
||||||
@ -191,8 +194,8 @@ or to do experiments on BD-R media.
|
|||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT>Download as source code (see README):</DT>
|
<DT>Download as source code (see README):</DT>
|
||||||
<DD><A HREF="cdrskin-0.6.0.pl01.tar.gz">cdrskin-0.6.0.pl01.tar.gz</A>
|
<DD><A HREF="cdrskin-0.6.4.pl00.tar.gz">cdrskin-0.6.4.pl00.tar.gz</A>
|
||||||
(745 KB).
|
(750 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DD>
|
<DD>
|
||||||
The cdrskin tarballs are source code identical with libburn releases
|
The cdrskin tarballs are source code identical with libburn releases
|
||||||
@ -241,37 +244,31 @@ cdrskin_0.4.2.pl00-x86-suse9_0-static.tar.gz</A>, (310 KB), -static compiled,
|
|||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
Enhancements towards previous stable version cdrskin-0.5.8.pl00:
|
Enhancements towards previous stable version cdrskin-0.6.2.pl00:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>Formatting and writing of BD-R media</LI>
|
<LI>New operating system adapter "dummy" for stdio on general X/Open systems
|
||||||
|
</LI>
|
||||||
|
<LI>New stream recording mode with start address</LI>
|
||||||
|
<LI></LI>
|
||||||
<!--
|
<!--
|
||||||
<LI>none</LI>
|
<LI>none</LI>
|
||||||
-->
|
-->
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
Bug fixes towards cdrskin-0.5.8.pl00:
|
Bug fixes towards cdrskin-0.6.2.pl00:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>none</LI>
|
<LI>none</LI>
|
||||||
<!--
|
<!--
|
||||||
|
<LI>none</LI>
|
||||||
-->
|
-->
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
Bug fixes towards cdrskin-0.6.0.pl00:
|
|
||||||
<UL>
|
|
||||||
<LI>BD-R media were not closed properly.
|
|
||||||
The last session staid open and unreadable.</LI>
|
|
||||||
<!--
|
|
||||||
-->
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT><H3>Development snapshot, version 0.6.1 :</H3></DT>
|
<DT><H3>Development snapshot, version 0.6.5 :</H3></DT>
|
||||||
<DD>Enhancements towards current stable version 0.6.0.pl00:
|
<DD>Enhancements towards current stable version 0.6.4.pl00:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>none yet</LI>
|
<LI>none yet</LI>
|
||||||
<!--
|
<!--
|
||||||
@ -280,10 +277,10 @@ Bug fixes towards cdrskin-0.6.0.pl00:
|
|||||||
</UL>
|
</UL>
|
||||||
</DD>
|
</DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DD><A HREF="README_cdrskin_devel">README 0.6.1</A>
|
<DD><A HREF="README_cdrskin_devel">README 0.6.5</A>
|
||||||
<DD><A HREF="cdrskin__help_devel">cdrskin_0.6.1 --help</A></DD>
|
<DD><A HREF="cdrskin__help_devel">cdrskin_0.6.5 --help</A></DD>
|
||||||
<DD><A HREF="cdrskin_help_devel">cdrskin_0.6.1 -help</A></DD>
|
<DD><A HREF="cdrskin_help_devel">cdrskin_0.6.5 -help</A></DD>
|
||||||
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.6.1)</A></DD>
|
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.6.5)</A></DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DT>Maintainers of cdrskin unstable packages please use SVN of
|
<DT>Maintainers of cdrskin unstable packages please use SVN of
|
||||||
<A HREF="http://libburnia-project.org"> libburnia-project.org</A></DT>
|
<A HREF="http://libburnia-project.org"> libburnia-project.org</A></DT>
|
||||||
@ -303,8 +300,8 @@ admins with full system souvereignty.</DT>
|
|||||||
<A HREF="README_cdrskin_devel">upcoming README</A> ):
|
<A HREF="README_cdrskin_devel">upcoming README</A> ):
|
||||||
</DD>
|
</DD>
|
||||||
<DD>
|
<DD>
|
||||||
<A HREF="cdrskin-0.6.1.tar.gz">cdrskin-0.6.1.tar.gz</A>
|
<A HREF="cdrskin-0.6.5.tar.gz">cdrskin-0.6.5.tar.gz</A>
|
||||||
(740 KB).
|
(750 KB).
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<!-- This is not offered any more since spring 2008
|
<!-- This is not offered any more since spring 2008
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2009.02.19.192801"
|
#define Cdrskin_timestamP "2009.03.13.080001"
|
||||||
|
@ -6244,14 +6244,14 @@ Documented changes and release timestamp
|
|||||||
* Formatting and writing of BD-R media
|
* Formatting and writing of BD-R media
|
||||||
* New API function burn_get_read_capacity()
|
* New API function burn_get_read_capacity()
|
||||||
|
|
||||||
03 Jan 2009 []
|
2009.01.04.112716 [2351]
|
||||||
COPYRIGHT
|
COPYRIGHT
|
||||||
libburn/libdax_msgs.c
|
libburn/libdax_msgs.c
|
||||||
libburn/libdax_msgs.h
|
libburn/libdax_msgs.h
|
||||||
test/libburner.c
|
test/libburner.c
|
||||||
Updated copyright claims to year 2009
|
Updated copyright claims to year 2009
|
||||||
|
|
||||||
[]
|
2009.01.04.113401 [2352]
|
||||||
Makefile.am
|
Makefile.am
|
||||||
configure.ac
|
configure.ac
|
||||||
README
|
README
|
||||||
@ -6261,28 +6261,282 @@ cdrskin/README
|
|||||||
cdrskin/compile_cdrskin.sh
|
cdrskin/compile_cdrskin.sh
|
||||||
cdrskin/cdrskin_timestamp.h
|
cdrskin/cdrskin_timestamp.h
|
||||||
cdrskin/cdrskin_eng.html
|
cdrskin/cdrskin_eng.html
|
||||||
Made number transition to 0.6.0
|
Made number transition to 0.6.1
|
||||||
|
|
||||||
03 Jan 2009 []
|
04 Jan 2009 [2353]
|
||||||
- cdrskin/add_ts_changes_to_libburn_0_5_8
|
- cdrskin/add_ts_changes_to_libburn_0_5_8
|
||||||
- cdrskin/add_ts_changes_to_libburn_0_5_9
|
- cdrskin/add_ts_changes_to_libburn_0_5_9
|
||||||
+ cdrskin/add_ts_changes_to_libburn_0_6_0
|
+ cdrskin/add_ts_changes_to_libburn_0_6_0
|
||||||
+ cdrskin/add_ts_changes_to_libburn_0_6_1
|
+ cdrskin/add_ts_changes_to_libburn_0_6_1
|
||||||
Updated cdrskin tarball generator
|
Updated cdrskin tarball generator
|
||||||
|
|
||||||
03 Jan 2009 []
|
03 Jan 2009 [2354]
|
||||||
cdrskin/changelog.txt
|
cdrskin/changelog.txt
|
||||||
Documented changes and release timestamp
|
Documented changes and release timestamp
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.1 - 2009.01.04.113401
|
||||||
|
|
||||||
------------------------------------ cycle - cdrskin-0.6.1 -
|
04 Jan 2009 [2356]
|
||||||
------------------------------------ cycle - cdrskin-0.6.1 -
|
svn move
|
||||||
|
http://svn.libburnia-project.org/libburn/branches/ZeroSixZero
|
||||||
|
http://svn.libburnia-project.org/libburn/tags/ZeroSixZero
|
||||||
|
libburn release 0.6.0 is ready
|
||||||
|
|
||||||
|
2009.01.06.122534 [2366]
|
||||||
[]
|
|
||||||
libburn/spc.c
|
libburn/spc.c
|
||||||
Error texts for ASC 73 : power calibration and program memory
|
Error texts for ASC 73 : power calibration and program memory
|
||||||
|
|
||||||
|
2009.01.06.122808 [2367] [2369]
|
||||||
|
libburn/async.c
|
||||||
|
libburn/libdax_msgs.h
|
||||||
|
Complaining and refusing more early with unformatted BD-RE
|
||||||
|
|
||||||
|
7 Jan 2009 [2370]
|
||||||
|
cdrskin/cdrskin.1
|
||||||
|
Clarification about one-time DVD and BD media
|
||||||
|
|
||||||
|
2009.01.07.154414 [2371]
|
||||||
|
libburn/write.c
|
||||||
|
Bug fix: BD-R were not correctly finalized
|
||||||
|
|
||||||
|
7 Jan 2009 [2372]
|
||||||
|
cdrskin/cdrskin_eng.html
|
||||||
|
Mentioned bug fix and pl01
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.1 - 2009.01.07.154414
|
||||||
|
|
||||||
|
7 Jan 2009 [2373]
|
||||||
|
svn copy -m "Branching for libburn bugfix release 0.6.0.pl01" \
|
||||||
|
http://svn.libburnia-project.org/libburn/ \
|
||||||
|
http://svn.libburnia-project.org/libburn/
|
||||||
|
|
||||||
|
7 Jan 2009 [2374]
|
||||||
|
svn rm -m 'Removing falsly copied tag' \
|
||||||
|
http://svn.libburnia-project.org/libburn/libburn
|
||||||
|
|
||||||
|
7 Jan 2009 [2375]
|
||||||
|
svn copy -m "Branching for libburn bugfix release 0.6.0.pl01" \
|
||||||
|
http://svn.libburnia-project.org/libburn/tags/ZeroSixZero \
|
||||||
|
http://svn.libburnia-project.org/libburn/branches/ZeroSixZeroPl01
|
||||||
|
|
||||||
|
2009.01.07.140001 [branch 2376]
|
||||||
|
README
|
||||||
|
cdrskin/README
|
||||||
|
cdrskin/cdrskin_eng.html
|
||||||
|
cdrskin/cdrskin_timestamp.h
|
||||||
|
Mentioned bug fix and pl01
|
||||||
|
|
||||||
|
2009.01.07.140001 [branch 2377]
|
||||||
|
libburn/write.c
|
||||||
|
Bug fix: BD-R were not correctly finalized
|
||||||
|
|
||||||
|
7 Jan 2009 [2378]
|
||||||
|
svn move -m 'libburn bugfix release 0.6.0.pl01 is ready' \
|
||||||
|
http://svn.libburnia-project.org/libburn/branches/ZeroSixZeroPl01 \
|
||||||
|
http://svn.libburnia-project.org/libburn/tags/ZeroSixZeroPl01
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.1 - 2009.01.07.154414
|
||||||
|
|
||||||
|
2009.01.09.095943 [2381]
|
||||||
|
libburn/transport.h
|
||||||
|
libburn/write.c
|
||||||
|
libburn/mmc.c
|
||||||
|
libburn/libdax_msgs.h
|
||||||
|
Recognizing BD-R media spoiled by the close bug and handling them as appendable
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.1 - 2009.01.09.100210
|
||||||
|
|
||||||
|
2009.01.09.161704 [2383]
|
||||||
|
libburn/write.c
|
||||||
|
Preventing a possible bug with a burn run of more than one session at once
|
||||||
|
|
||||||
|
2009.01.11.102711 [2390]
|
||||||
|
libburn/write.c
|
||||||
|
libburn/libdax_msgs.h
|
||||||
|
Prepared eventual closing of spoiled BD-R media by a pseudo write run
|
||||||
|
|
||||||
|
11 Jan 2009 [2391]
|
||||||
|
doc/cookbook.txt
|
||||||
|
Updated cookbook about BD-R media
|
||||||
|
|
||||||
|
27 Jan 2009 [2431]
|
||||||
|
README
|
||||||
|
libburn/libburn.h
|
||||||
|
Mentioned the need for 64 bit file i/o
|
||||||
|
|
||||||
|
2009.02.04.102822 [2447]
|
||||||
|
Makefile.am
|
||||||
|
Linking with $LIBBURN_ARCH_LIBS to get -lcam on FreeBSD
|
||||||
|
|
||||||
|
4 Feb 2009 [2448]
|
||||||
|
README
|
||||||
|
cdrskin/README
|
||||||
|
Mentioned hald as possibly conflicting service
|
||||||
|
|
||||||
|
2009.02.19.192801 [2479]
|
||||||
|
libburn/spc.c
|
||||||
|
Human readable error messages with asynchronous SCSI errors
|
||||||
|
|
||||||
|
20 Feb 2009 [2482]
|
||||||
|
svn copy http://svn.libburnia-project.org/libburn/trunk
|
||||||
|
http://svn.libburnia-project.org/libburn/branches/ZeroSixZero
|
||||||
|
Preparing for libburn-0.6.0
|
||||||
|
|
||||||
|
2009.02.20.090001 [2483]
|
||||||
|
Makefile.am
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libburn/libburn.h
|
||||||
|
cdrskin/cdrskin.c
|
||||||
|
cdrskin/README
|
||||||
|
cdrskin/compile_cdrskin.sh
|
||||||
|
cdrskin/cdrskin_timestamp.h
|
||||||
|
cdrskin/cdrskin_eng.html
|
||||||
|
Made number transition to 0.6.2
|
||||||
|
|
||||||
|
20 Feb 2009 [2484]
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_0
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_1
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_2
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_3
|
||||||
|
Updated cdrskin tarball generator
|
||||||
|
|
||||||
|
------------------------------ release - cdrskin-0.6.2.pl00 - 2009.02.20.090001
|
||||||
|
* Improvements with build system for FreeBSD
|
||||||
|
|
||||||
|
2009.02.20.124909 [2485]
|
||||||
|
Makefile.am
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libburn/libburn.h
|
||||||
|
cdrskin/cdrskin.c
|
||||||
|
cdrskin/README
|
||||||
|
cdrskin/compile_cdrskin.sh
|
||||||
|
cdrskin/cdrskin_timestamp.h
|
||||||
|
cdrskin/cdrskin_eng.html
|
||||||
|
Made number transition to 0.6.3
|
||||||
|
|
||||||
|
20 Feb 2009 [2486]
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_0
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_1
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_2
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_3
|
||||||
|
Updated cdrskin tarball generator
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.3 - 2009.02.20.132535
|
||||||
|
|
||||||
|
20 Feb 2009 [2489]
|
||||||
|
svn move -m libburn release 0.6.2 is ready
|
||||||
|
http://svn.libburnia-project.org/libburn/branches/ZeroSixTwo
|
||||||
|
http://svn.libburnia-project.org/libburn/tags/ZeroSixTwo
|
||||||
|
|
||||||
|
2009.02.27.143100 [2500]
|
||||||
|
libburn/libburn.h
|
||||||
|
libburn/transport.h
|
||||||
|
libburn/drive.c
|
||||||
|
libburn/options.c
|
||||||
|
libburn/write.c
|
||||||
|
libburn/mmc.c
|
||||||
|
New API function burn_drive_set_stream_recording()
|
||||||
|
|
||||||
|
2009.02.27.211707 [2501]
|
||||||
|
cdrskin/cdrskin.c
|
||||||
|
cdrskin/cdrskin.1
|
||||||
|
New stream_recording mode with start number
|
||||||
|
|
||||||
|
2009.03.02.170126 [2513]
|
||||||
|
libburn/os.h
|
||||||
|
libburn/libdax_msgs.h
|
||||||
|
libburn/sg.c
|
||||||
|
+ libburn/os-dummy.h
|
||||||
|
+ libburn/sg-dummy.c
|
||||||
|
New operating system adapter "dummy" for stdio on POSIX-like systems
|
||||||
|
|
||||||
|
2009.03.02.193353 [2514]
|
||||||
|
libburn/drive.c
|
||||||
|
Fixed a race condition on abort with stdio writing which could cause SIGSEGV
|
||||||
|
|
||||||
|
2009.03.02.200132 [2515]
|
||||||
|
libburn/sg.c
|
||||||
|
Added a dummy function with loud compiler warning to sg.c dummy case
|
||||||
|
|
||||||
|
2009.03.03.092057 [2516]
|
||||||
|
configure.ac
|
||||||
|
libburn/sg-dummy.c
|
||||||
|
Making optional use of statvfs() in sg-dummy
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.3 - 2009.03.03.092057
|
||||||
|
* New API function burn_drive_set_stream_recording()
|
||||||
|
* New stream recording mode with start number
|
||||||
|
|
||||||
|
|
||||||
|
2009.03.05.145309 [2520]
|
||||||
|
acinclude.m4
|
||||||
|
Lifted the ban on operating systems other than Linux and FreeBSD
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.3 - 2009.03.05.145309
|
||||||
|
* New operating system adapter "dummy" for stdio on POSIX-like systems
|
||||||
|
|
||||||
|
|
||||||
|
2009.03.08.140120 [2522]
|
||||||
|
libburn/cleanup.c
|
||||||
|
Reacted on compiler warnings of SchilliX-0.6.7 (based on Solaris 5.11)
|
||||||
|
|
||||||
|
13 Mar 2009 [2529]
|
||||||
|
svn copy -m "Branching for libburn release 0.6.4" \
|
||||||
|
http://svn.libburnia-project.org/libburn/trunk \
|
||||||
|
http://svn.libburnia-project.org/libburn/branches/ZeroSixFour
|
||||||
|
|
||||||
|
2009.03.13.080001 [2530]
|
||||||
|
Makefile.am
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libburn/libburn.h
|
||||||
|
cdrskin/cdrskin.c
|
||||||
|
cdrskin/README
|
||||||
|
cdrskin/compile_cdrskin.sh
|
||||||
|
cdrskin/cdrskin_timestamp.h
|
||||||
|
cdrskin/cdrskin_eng.html
|
||||||
|
Made libburn number transition to 0.6.4
|
||||||
|
|
||||||
|
13 Mar 2009 [2531]
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_2
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_3
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_4
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_5
|
||||||
|
Updated cdrskin tarball generator
|
||||||
|
|
||||||
|
13 Mar 2009 []
|
||||||
|
cdrskin/changelog.txt
|
||||||
|
Documented changes and release timestamp
|
||||||
|
|
||||||
|
------------------------------ release - cdrskin-0.6.4.pl00 - 2009.03.13.080001
|
||||||
|
* New operating system adapter "dummy" for stdio on general X/Open systems
|
||||||
|
* New API function burn_drive_set_stream_recording()
|
||||||
|
* New stream recording mode with start address
|
||||||
|
|
||||||
|
|
||||||
|
2009.03.13.135818 [2532]
|
||||||
|
Makefile.am
|
||||||
|
configure.ac
|
||||||
|
README
|
||||||
|
libburn/libburn.h
|
||||||
|
cdrskin/cdrskin.c
|
||||||
|
cdrskin/README
|
||||||
|
cdrskin/compile_cdrskin.sh
|
||||||
|
cdrskin/cdrskin_timestamp.h
|
||||||
|
cdrskin/cdrskin_eng.html
|
||||||
|
Made libburn number transition to 0.6.5
|
||||||
|
|
||||||
|
13 Mar 2009 [2533]
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_2
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_6_3
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_4
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_6_5
|
||||||
|
Updated cdrskin tarball generator
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.5 -
|
||||||
|
------------------------------------ cycle - cdrskin-0.6.5 -
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
TODO
|
TODO
|
||||||
@ -6291,8 +6545,6 @@ Error texts for ASC 73 : power calibration and program memory
|
|||||||
|
|
||||||
--------------------------------- bugs -------------------------------------
|
--------------------------------- bugs -------------------------------------
|
||||||
|
|
||||||
- Needed is a system dependend facility: dev_t <-> major, minor
|
|
||||||
|
|
||||||
- Do something about drive->buffer asynchronous race conditions
|
- Do something about drive->buffer asynchronous race conditions
|
||||||
and dangerous use of local heap memory.
|
and dangerous use of local heap memory.
|
||||||
(The various asynchronous operations use the same buffer
|
(The various asynchronous operations use the same buffer
|
||||||
@ -6329,9 +6581,6 @@ problem with telltoc: double descriptor list from before load and after load
|
|||||||
|
|
||||||
What about cdrskin rc files ? Forward with fallback runs ?
|
What about cdrskin rc files ? Forward with fallback runs ?
|
||||||
|
|
||||||
cdrskin/README
|
|
||||||
Thin out
|
|
||||||
|
|
||||||
|
|
||||||
[]
|
[]
|
||||||
Emulate -dummy on overwriteables ?
|
Emulate -dummy on overwriteables ?
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
debug_opts="-O2"
|
debug_opts="-O2"
|
||||||
def_opts=
|
def_opts=
|
||||||
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
||||||
libvers="-DCdrskin_libburn_0_6_1"
|
libvers="-DCdrskin_libburn_0_6_4"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
@ -33,15 +33,15 @@ do
|
|||||||
libdax_audioxtr_o=
|
libdax_audioxtr_o=
|
||||||
libdax_msgs_o="libburn/message.o"
|
libdax_msgs_o="libburn/message.o"
|
||||||
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
||||||
elif test "$i" = "-libburn_0_6_0"
|
elif test "$i" = "-libburn_0_6_4"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_6_0"
|
libvers="-DCdrskin_libburn_0_6_4"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
elif test "$i" = "-libburn_svn"
|
elif test "$i" = "-libburn_svn"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_6_1"
|
libvers="-DCdrskin_libburn_0_6_5"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
@ -75,10 +75,8 @@ do
|
|||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
|
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
|
||||||
echo " -compile_dewav compile program test/dewav without libburn."
|
echo " -compile_dewav compile program test/dewav without libburn."
|
||||||
echo " -cvs_A60220 set macro to match libburn-CVS of 20 Feb 2006."
|
echo " -libburn_0_6_4 set macro to match libburn-0.6.4"
|
||||||
echo " -libburn_0_6_0 set macro to match libburn-0.6.0"
|
|
||||||
echo " -libburn_svn set macro to match current libburn-SVN."
|
echo " -libburn_svn set macro to match current libburn-SVN."
|
||||||
echo " -no_largefile do not use 64 bit off_t (must match libburn)."
|
|
||||||
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."
|
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."
|
||||||
echo " -experimental use newly introduced libburn features."
|
echo " -experimental use newly introduced libburn features."
|
||||||
echo " -oldfashioned use pre-0.2.2 libburn features only."
|
echo " -oldfashioned use pre-0.2.2 libburn features only."
|
||||||
|
31
configure.ac
31
configure.ac
@ -1,4 +1,4 @@
|
|||||||
AC_INIT([libburn], [0.6.1], [http://libburnia-project.org])
|
AC_INIT([libburn], [0.6.4], [http://libburnia-project.org])
|
||||||
AC_PREREQ([2.50])
|
AC_PREREQ([2.50])
|
||||||
dnl AC_CONFIG_HEADER([config.h])
|
dnl AC_CONFIG_HEADER([config.h])
|
||||||
|
|
||||||
@ -42,7 +42,8 @@ dnl So this is a superspace of the SONAME version space. To avoid
|
|||||||
dnl ill SONAME, the value of CURRENT must be larger than AGE.
|
dnl ill SONAME, the value of CURRENT must be larger than AGE.
|
||||||
dnl See also http://www.gnu.org/software/libtool/manual.html#Interfaces
|
dnl See also http://www.gnu.org/software/libtool/manual.html#Interfaces
|
||||||
dnl
|
dnl
|
||||||
dnl The name of the dynamic library will be libburn.so.$SONAME.$AGE.$REV .
|
dnl On Linux the name of the dynamic library will be
|
||||||
|
dnl libburn.so.$SONAME.$AGE.$REV
|
||||||
dnl In the terminology of this file:
|
dnl In the terminology of this file:
|
||||||
dnl CURRENT = LT_CURRENT
|
dnl CURRENT = LT_CURRENT
|
||||||
dnl AGE = LT_AGE
|
dnl AGE = LT_AGE
|
||||||
@ -68,6 +69,8 @@ dnl 0.5.4 = libburn.so.4.19.0
|
|||||||
dnl 0.5.6 = libburn.so.4.21.0
|
dnl 0.5.6 = libburn.so.4.21.0
|
||||||
dnl 0.5.8 = libburn.so.4.23.0
|
dnl 0.5.8 = libburn.so.4.23.0
|
||||||
dnl 0.6.0 = libburn.so.4.25.0
|
dnl 0.6.0 = libburn.so.4.25.0
|
||||||
|
dnl 0.6.2 = libburn.so.4.27.0
|
||||||
|
dnl 0.6.4 = libburn.so.4.29.0
|
||||||
dnl
|
dnl
|
||||||
dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here.
|
dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here.
|
||||||
dnl SONAME of the emerging library is LT_CURRENT - LT_AGE.
|
dnl SONAME of the emerging library is LT_CURRENT - LT_AGE.
|
||||||
@ -93,7 +96,7 @@ dnl
|
|||||||
dnl As said: Only copies. Original in libburn/libburn.h : burn_header_version_*
|
dnl As said: Only copies. Original in libburn/libburn.h : burn_header_version_*
|
||||||
BURN_MAJOR_VERSION=0
|
BURN_MAJOR_VERSION=0
|
||||||
BURN_MINOR_VERSION=6
|
BURN_MINOR_VERSION=6
|
||||||
BURN_MICRO_VERSION=1
|
BURN_MICRO_VERSION=4
|
||||||
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||||
|
|
||||||
AC_SUBST(BURN_MAJOR_VERSION)
|
AC_SUBST(BURN_MAJOR_VERSION)
|
||||||
@ -104,15 +107,15 @@ AC_SUBST(BURN_VERSION)
|
|||||||
dnl Libtool versioning
|
dnl Libtool versioning
|
||||||
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||||
dnl
|
dnl
|
||||||
dnl ts A90102
|
dnl ts A90313
|
||||||
dnl ### This is the release version libburn-0.6.0 = libburn.so.4.25.0
|
dnl This is the release version libburn-0.6.4 = libburn.so.4.29.0
|
||||||
dnl This is the development version after above release version
|
dnl ### This is the development version after above release version
|
||||||
dnl LT_CURRENT++, LT_AGE++ has not yet happened.
|
dnl LT_CURRENT++, LT_AGE++ has not yet happened.
|
||||||
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
|
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
|
||||||
dnl
|
dnl
|
||||||
dnl SONAME = 29 - 25 = 4 . Library name = libburn.so.4.25.0
|
dnl SONAME = 33 - 29 = 4 . Linux library name = libburn.so.4.29.0
|
||||||
LT_CURRENT=29
|
LT_CURRENT=33
|
||||||
LT_AGE=25
|
LT_AGE=29
|
||||||
LT_REVISION=0
|
LT_REVISION=0
|
||||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||||
|
|
||||||
@ -161,6 +164,16 @@ TARGET_SHIZZLE
|
|||||||
AC_SUBST(ARCH)
|
AC_SUBST(ARCH)
|
||||||
AC_SUBST(LIBBURN_ARCH_LIBS)
|
AC_SUBST(LIBBURN_ARCH_LIBS)
|
||||||
|
|
||||||
|
dnl ts A90303
|
||||||
|
dnl Check the preconditions for using statvfs() in sg-dummy
|
||||||
|
dnl (sg-linux and sg-freebsd use statvfs() unconditionally)
|
||||||
|
STATVFS_DEF=-DLibburn_os_has_statvfS
|
||||||
|
AC_CHECK_HEADER(sys/statvfs.h, X=, STATVFS_DEF=)
|
||||||
|
AC_CHECK_FUNC([statvfs], X=, STATVFS_DEF=)
|
||||||
|
dnl If this would be done more specifically in Makefile.am
|
||||||
|
dnl via libburn_libburn_la_CFLAGS then undesired .o file names would emerge
|
||||||
|
CFLAGS="$CFLAGS $STATVFS_DEF"
|
||||||
|
|
||||||
dnl Add compiler-specific flags
|
dnl Add compiler-specific flags
|
||||||
|
|
||||||
dnl See if the user wants aggressive optimizations of the code
|
dnl See if the user wants aggressive optimizations of the code
|
||||||
|
@ -97,8 +97,8 @@ static int Cleanup_handler_exit(int exit_value, int signum, int flag)
|
|||||||
return(2);
|
return(2);
|
||||||
}
|
}
|
||||||
if(cleanup_exiting) {
|
if(cleanup_exiting) {
|
||||||
fprintf(stderr,"cleanup: ABORT : repeat by pid=%d, signum=%d\n",
|
fprintf(stderr,"cleanup: ABORT : repeat by pid=%.f, signum=%d\n",
|
||||||
getpid(),signum);
|
(double) getpid(), signum);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
cleanup_exiting= 1;
|
cleanup_exiting= 1;
|
||||||
|
@ -62,6 +62,7 @@ int burn_setup_drive(struct burn_drive *d, char *fname)
|
|||||||
d->stdio_fd = -1;
|
d->stdio_fd = -1;
|
||||||
d->status = BURN_DISC_UNREADY;
|
d->status = BURN_DISC_UNREADY;
|
||||||
d->do_stream_recording = 0;
|
d->do_stream_recording = 0;
|
||||||
|
d->stream_recording_start= 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -792,6 +793,18 @@ enum burn_drive_status burn_drive_get_status(struct burn_drive *d,
|
|||||||
return d->busy;
|
return d->busy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int burn_drive_set_stream_recording(struct burn_drive *d, int recmode,
|
||||||
|
int start, int flag)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (recmode == 1)
|
||||||
|
d->do_stream_recording = 1;
|
||||||
|
else if (recmode == -1)
|
||||||
|
d->do_stream_recording = 0;
|
||||||
|
d->stream_recording_start = start;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
void burn_drive_cancel(struct burn_drive *d)
|
void burn_drive_cancel(struct burn_drive *d)
|
||||||
{
|
{
|
||||||
pthread_mutex_lock(&d->access_lock);
|
pthread_mutex_lock(&d->access_lock);
|
||||||
@ -1744,10 +1757,18 @@ int burn_abort(int patience,
|
|||||||
occup = burn_drive_is_occupied(&(drive_array[i]));
|
occup = burn_drive_is_occupied(&(drive_array[i]));
|
||||||
if(occup == -2)
|
if(occup == -2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
#ifdef NIX
|
||||||
|
/* <<< this causes a race condition with drive usage
|
||||||
|
and drive disposal
|
||||||
|
*/
|
||||||
if(drive_array[i].drive_role != 1) {
|
if(drive_array[i].drive_role != 1) {
|
||||||
drive_array[i].busy = BURN_DRIVE_IDLE;
|
drive_array[i].busy = BURN_DRIVE_IDLE;
|
||||||
burn_drive_forget(&(drive_array[i]), 1);
|
burn_drive_forget(&(drive_array[i]), 1);
|
||||||
} else if(occup <= 10) {
|
} else
|
||||||
|
#endif /* NIX */
|
||||||
|
|
||||||
|
if(occup <= 10) {
|
||||||
burn_drive_forget(&(drive_array[i]), 1);
|
burn_drive_forget(&(drive_array[i]), 1);
|
||||||
} else if(occup <= 100) {
|
} else if(occup <= 100) {
|
||||||
if(first_round)
|
if(first_round)
|
||||||
|
@ -1388,6 +1388,28 @@ int burn_precheck_write(struct burn_write_opts *o, struct burn_disc *disc,
|
|||||||
*/
|
*/
|
||||||
void burn_disc_write(struct burn_write_opts *o, struct burn_disc *disc);
|
void burn_disc_write(struct burn_write_opts *o, struct burn_disc *disc);
|
||||||
|
|
||||||
|
|
||||||
|
/* ts A90227 */
|
||||||
|
/** Control stream recording during the write run and eventually set the start
|
||||||
|
LBA for stream recording.
|
||||||
|
Stream recording is set from struct burn_write_opts when the write run
|
||||||
|
gets started. See burn_write_opts_set_stream_recording().
|
||||||
|
The call described here can be used later to override this setting and
|
||||||
|
to program automatic switching at a given LBA. It also affects subsequent
|
||||||
|
calls to burn_random_access_write().
|
||||||
|
@param drive The drive which performs the write operation.
|
||||||
|
@param recmode -1= disable stream recording
|
||||||
|
0= leave setting as is
|
||||||
|
1= enable stream recording
|
||||||
|
@param start The LBA where actual stream recording shall start.
|
||||||
|
(0 means unconditional stream recording)
|
||||||
|
@param flag Bitfield for control purposes (unused yet, submit 0).
|
||||||
|
@return 1=success , <=0 failure
|
||||||
|
@since 0.6.4
|
||||||
|
*/
|
||||||
|
int burn_drive_set_stream_recording(struct burn_drive *drive, int recmode,
|
||||||
|
int start, int flag);
|
||||||
|
|
||||||
/** Cancel an operation on a drive.
|
/** Cancel an operation on a drive.
|
||||||
This will only work when the drive's busy state is BURN_DRIVE_READING or
|
This will only work when the drive's busy state is BURN_DRIVE_READING or
|
||||||
BURN_DRIVE_WRITING.
|
BURN_DRIVE_WRITING.
|
||||||
@ -1906,12 +1928,15 @@ void burn_write_opts_set_force(struct burn_write_opts *opts, int use_force);
|
|||||||
|
|
||||||
/* ts A80412 */
|
/* ts A80412 */
|
||||||
/** Eventually makes use of the more modern write command AAh WRITE12 and
|
/** Eventually makes use of the more modern write command AAh WRITE12 and
|
||||||
sets the Streaming bit. With DVD-RAM this can override the traditional
|
sets the Streaming bit. With DVD-RAM and BD this can override the
|
||||||
slowdown to half nominal speed. But if it speeds up writing then it also
|
traditional slowdown to half nominal speed. But if it speeds up writing
|
||||||
disables error management and correction. Weigh your priorities.
|
then it also disables error management and correction. Weigh your
|
||||||
This only affects the write operations of burn_disc_write().
|
priorities. This affects the write operations of burn_disc_write()
|
||||||
|
and subsequent calls of burn_random_access_write().
|
||||||
@param opts The write opts to change
|
@param opts The write opts to change
|
||||||
@param value 0=use 2Ah WRITE10, 1=use AAh WRITE12 with Streaming bit
|
@param value 0=use 2Ah WRITE10, 1=use AAh WRITE12 with Streaming bit
|
||||||
|
@since 0.6.4:
|
||||||
|
>=16 use WRITE12 but not before the LBA given by value
|
||||||
@since 0.4.6
|
@since 0.4.6
|
||||||
*/
|
*/
|
||||||
void burn_write_opts_set_stream_recording(struct burn_write_opts *opts,
|
void burn_write_opts_set_stream_recording(struct burn_write_opts *opts,
|
||||||
@ -2235,7 +2260,7 @@ void burn_version(int *major, int *minor, int *micro);
|
|||||||
*/
|
*/
|
||||||
#define burn_header_version_major 0
|
#define burn_header_version_major 0
|
||||||
#define burn_header_version_minor 6
|
#define burn_header_version_minor 6
|
||||||
#define burn_header_version_micro 1
|
#define burn_header_version_micro 4
|
||||||
/** Note:
|
/** Note:
|
||||||
Above version numbers are also recorded in configure.ac because libtool
|
Above version numbers are also recorded in configure.ac because libtool
|
||||||
wants them as parameters at build time.
|
wants them as parameters at build time.
|
||||||
|
@ -542,9 +542,14 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
|
|||||||
0x00020167 (SORRY,HIGH) = Drive does not support non-default formatting
|
0x00020167 (SORRY,HIGH) = Drive does not support non-default formatting
|
||||||
0x00020168 (FAILURE,HIGH) = Media not properly formatted. Cannot write.
|
0x00020168 (FAILURE,HIGH) = Media not properly formatted. Cannot write.
|
||||||
0x00020169 (WARNING,HIGH) = Last session on media is still open
|
0x00020169 (WARNING,HIGH) = Last session on media is still open
|
||||||
|
0x0002016a (FAILURE,HIGH) = No MMC transport adapter is present
|
||||||
|
0x0002016b (WARNING,HIGH) = No MMC transport adapter is present
|
||||||
|
0x0002016c (DEBUG,HIGH) = No MMC transport adapter is present
|
||||||
|
|
||||||
0x00020170 (NOTE,HIGH) = Closing open session before writing new one
|
0x00020170 (NOTE,HIGH) = Closing open session before writing new one
|
||||||
0x00020171 (NOTE,HIGH) = Closing BD-R with accidently open session
|
0x00020171 (NOTE,HIGH) = Closing BD-R with accidently open session
|
||||||
|
|
||||||
|
|
||||||
libdax_audioxtr:
|
libdax_audioxtr:
|
||||||
0x00020200 (SORRY,HIGH) = Cannot open audio source file
|
0x00020200 (SORRY,HIGH) = Cannot open audio source file
|
||||||
0x00020201 (SORRY,HIGH) = Audio source file has unsuitable format
|
0x00020201 (SORRY,HIGH) = Audio source file has unsuitable format
|
||||||
|
@ -55,10 +55,10 @@ extern struct libdax_msgs *libdax_messenger;
|
|||||||
/* ts A70306 */
|
/* ts A70306 */
|
||||||
#define Libburn_support_dvd_plus_R 1
|
#define Libburn_support_dvd_plus_R 1
|
||||||
|
|
||||||
/* ts A70509 : handling 0x41 and 0x42 as read-only types */
|
/* ts A70509 : handling 0x41 as read-only type */
|
||||||
#define Libburn_support_bd_r_readonlY 1
|
#define Libburn_support_bd_r_readonlY 1
|
||||||
|
|
||||||
/* >>> ts A81208 */
|
/* ts A81208 */
|
||||||
#define Libburn_support_bd_plus_r_srM 1
|
#define Libburn_support_bd_plus_r_srM 1
|
||||||
|
|
||||||
|
|
||||||
@ -124,6 +124,7 @@ extern struct libdax_msgs *libdax_messenger;
|
|||||||
BD-RE is now an officially supported profile.
|
BD-RE is now an officially supported profile.
|
||||||
ts A81209 : The first two sessions have been written to BD-R SRM
|
ts A81209 : The first two sessions have been written to BD-R SRM
|
||||||
(auto formatted without Defect Management).
|
(auto formatted without Defect Management).
|
||||||
|
ts A90107 : BD-R is now supported media type
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ts A70519 : With MMC commands of data direction FROM_DRIVE:
|
/* ts A70519 : With MMC commands of data direction FROM_DRIVE:
|
||||||
@ -744,7 +745,7 @@ int mmc_write(struct burn_drive *d, int start, struct buffer *buf)
|
|||||||
mmc_wait_for_buffer_free(d, buf);
|
mmc_wait_for_buffer_free(d, buf);
|
||||||
|
|
||||||
/* ts A80412 */
|
/* ts A80412 */
|
||||||
if(d->do_stream_recording > 0) {
|
if(d->do_stream_recording > 0 && start >= d->stream_recording_start) {
|
||||||
|
|
||||||
/* >>> ??? is WRITE12 available ? */
|
/* >>> ??? is WRITE12 available ? */
|
||||||
/* >>> ??? inquire feature 107h Stream Writing bit ? */
|
/* >>> ??? inquire feature 107h Stream Writing bit ? */
|
||||||
|
@ -385,7 +385,7 @@ void burn_write_opts_set_force(struct burn_write_opts *opts, int use_force)
|
|||||||
void burn_write_opts_set_stream_recording(struct burn_write_opts *opts,
|
void burn_write_opts_set_stream_recording(struct burn_write_opts *opts,
|
||||||
int value)
|
int value)
|
||||||
{
|
{
|
||||||
opts->do_stream_recording = !!value;
|
opts->do_stream_recording = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
63
libburn/os-dummy.h
Normal file
63
libburn/os-dummy.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
|
||||||
|
/* os-dummy.h
|
||||||
|
Operating system specific libburn definitions and declarations. Included
|
||||||
|
by os.h in case of compilation for
|
||||||
|
Unknown POSIX like systems
|
||||||
|
with the dummy MMC transport adapter sg-dummy.c
|
||||||
|
|
||||||
|
Copyright (C) 2009 Thomas Schmitt <scdbackup@gmx.net>, provided under GPL
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/** List of all signals which shall be caught by signal handlers and trigger
|
||||||
|
a graceful abort of libburn. (See man 7 signal.)
|
||||||
|
*/
|
||||||
|
/* Once as system defined macros */
|
||||||
|
#define BURN_OS_SIGNAL_MACRO_LIST \
|
||||||
|
SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \
|
||||||
|
SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \
|
||||||
|
SIGUSR1, SIGUSR2, SIGXCPU, SIGTSTP, SIGTTIN, \
|
||||||
|
SIGTTOU
|
||||||
|
|
||||||
|
/* Once as text 1:1 list of strings for messages and interpreters */
|
||||||
|
#define BURN_OS_SIGNAL_NAME_LIST \
|
||||||
|
"SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \
|
||||||
|
"SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \
|
||||||
|
"SIGUSR1", "SIGUSR2", "SIGXCPU", "SIGTSTP", "SIGTTIN", \
|
||||||
|
"SIGTTOU"
|
||||||
|
|
||||||
|
/* The number of above list items */
|
||||||
|
#define BURN_OS_SIGNAL_COUNT 16
|
||||||
|
|
||||||
|
/** To list all signals which shall surely not be caught */
|
||||||
|
#define BURN_OS_NON_SIGNAL_MACRO_LIST \
|
||||||
|
SIGKILL, SIGCHLD, SIGSTOP
|
||||||
|
|
||||||
|
/* The number of above list items */
|
||||||
|
#define BURN_OS_NON_SIGNAL_COUNT 3
|
||||||
|
|
||||||
|
|
||||||
|
/* The maximum size for a (SCSI) i/o transaction */
|
||||||
|
/* Important : MUST be at least 32768 ! */
|
||||||
|
#define BURN_OS_TRANSPORT_BUFFER_SIZE 65536
|
||||||
|
|
||||||
|
|
||||||
|
/* To hold the position of the most recently delivered address from
|
||||||
|
device enumeration.
|
||||||
|
*/
|
||||||
|
struct burn_drive_enumerator_struct {
|
||||||
|
int pos;
|
||||||
|
int info_count;
|
||||||
|
char **info_list;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define BURN_OS_DEFINE_DRIVE_ENUMERATOR_T \
|
||||||
|
typedef struct burn_drive_enumerator_struct burn_drive_enumerator_t;
|
||||||
|
|
||||||
|
|
||||||
|
/* The list of operating system dependent elements in struct burn_drive.
|
||||||
|
Usually they are initialized in sg-*.c:enumerate_common().
|
||||||
|
*/
|
||||||
|
#define BURN_OS_TRANSPORT_DRIVE_ELEMENTS \
|
||||||
|
int just_a_dummy;
|
||||||
|
|
15
libburn/os.h
15
libburn/os.h
@ -3,7 +3,7 @@
|
|||||||
Operating system specific libburn definitions and declarations.
|
Operating system specific libburn definitions and declarations.
|
||||||
The macros defined here are used by libburn modules in order to
|
The macros defined here are used by libburn modules in order to
|
||||||
avoid own system dependent case distinctions.
|
avoid own system dependent case distinctions.
|
||||||
Copyright (C) 2006 Thomas Schmitt <scdbackup@gmx.net>, provided under GPL
|
Copyright (C) 2009 Thomas Schmitt <scdbackup@gmx.net>, provided under GPL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BURN_OS_H_INCLUDED
|
#ifndef BURN_OS_H_INCLUDED
|
||||||
@ -20,14 +20,23 @@
|
|||||||
#include "os-freebsd.h"
|
#include "os-freebsd.h"
|
||||||
|
|
||||||
|
|
||||||
#else /* operating system case distinction */
|
#else
|
||||||
|
#ifdef __linux
|
||||||
|
|
||||||
|
|
||||||
/* --------- Linux kernels 2.4 and 2.6 with Linux SCSI Generic (sg) -------- */
|
/* --------- Linux kernels 2.4 and 2.6 with Linux SCSI Generic (sg) -------- */
|
||||||
#include "os-linux.h"
|
#include "os-linux.h"
|
||||||
|
|
||||||
|
|
||||||
#endif /* End of operating system case distinction */
|
#else
|
||||||
|
|
||||||
|
|
||||||
|
/* --------- Any other system. With dummy MMC transport sg-dummy.c --------- */
|
||||||
|
#include "os-dummy.h"
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* ! __linux */
|
||||||
|
#endif /* ! __FreeBSD__ */
|
||||||
|
|
||||||
|
|
||||||
#endif /* ! BURN_OS_H_INCLUDED */
|
#endif /* ! BURN_OS_H_INCLUDED */
|
||||||
|
229
libburn/sg-dummy.c
Normal file
229
libburn/sg-dummy.c
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
This is the main operating system dependent SCSI part of libburn. It implements
|
||||||
|
the transport level aspects of SCSI control and command i/o.
|
||||||
|
|
||||||
|
Present implementation: default dummy which enables libburn only to work
|
||||||
|
with stdio: pseudo drive addresses.
|
||||||
|
For real implementations see sg-linux.c or sg-freebsd.c
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifdef Libburn_os_has_statvfS
|
||||||
|
#include <sys/statvfs.h>
|
||||||
|
#endif /* Libburn_os_has_stavtfS */
|
||||||
|
|
||||||
|
#include "transport.h"
|
||||||
|
#include "drive.h"
|
||||||
|
#include "sg.h"
|
||||||
|
#include "spc.h"
|
||||||
|
#include "mmc.h"
|
||||||
|
#include "sbc.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "toc.h"
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
#include "libdax_msgs.h"
|
||||||
|
extern struct libdax_msgs *libdax_messenger;
|
||||||
|
|
||||||
|
|
||||||
|
/** Returns the next index number and the next enumerated drive address.
|
||||||
|
The enumeration has to cover all available and accessible drives. It is
|
||||||
|
allowed to return addresses of drives which are not available but under
|
||||||
|
some (even exotic) circumstances could be available. It is on the other
|
||||||
|
hand allowed, only to hand out addresses which can really be used right
|
||||||
|
in the moment of this call. (This implementation chooses the former.)
|
||||||
|
@param idx An opaque handle. Make no own theories about it.
|
||||||
|
@param adr Takes the reply
|
||||||
|
@param adr_size Gives maximum size of reply including final 0
|
||||||
|
@param initialize 1 = start new,
|
||||||
|
0 = continue, use no other values for now
|
||||||
|
-1 = finish
|
||||||
|
@return 1 = reply is a valid address , 0 = no further address available
|
||||||
|
-1 = severe error (e.g. adr_size too small)
|
||||||
|
*/
|
||||||
|
int sg_give_next_adr(burn_drive_enumerator_t *idx,
|
||||||
|
char adr[], int adr_size, int initialize)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Brings all available, not-whitelist-banned, and accessible drives into
|
||||||
|
libburn's list of drives.
|
||||||
|
*/
|
||||||
|
/* ts A61115: replacing call to sg-implementation internals from drive.c */
|
||||||
|
int scsi_enumerate_drives(void)
|
||||||
|
{
|
||||||
|
libdax_msgs_submit(libdax_messenger, -1, 0x0002016b,
|
||||||
|
LIBDAX_MSGS_SEV_WARNING, LIBDAX_MSGS_PRIO_HIGH,
|
||||||
|
"No MMC transport adapter is present. Running on sg-dummy.c.",
|
||||||
|
0, 0);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Tells wether libburn has the given drive in use or exclusively reserved.
|
||||||
|
If it is "open" then libburn will eventually call sg_release() on it when
|
||||||
|
it is time to give up usage resp. reservation.
|
||||||
|
*/
|
||||||
|
/** Published as burn_drive.drive_is_open() */
|
||||||
|
int sg_drive_is_open(struct burn_drive * d)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Opens the drive for SCSI commands and - if burn activities are prone
|
||||||
|
to external interference on your system - obtains an exclusive access lock
|
||||||
|
on the drive. (Note: this is not physical tray locking.)
|
||||||
|
A drive that has been opened with sg_grab() will eventually be handed
|
||||||
|
over to sg_release() for closing and unreserving.
|
||||||
|
*/
|
||||||
|
int sg_grab(struct burn_drive *d)
|
||||||
|
{
|
||||||
|
libdax_msgs_submit(libdax_messenger, d->global_index, 0x0002016a,
|
||||||
|
LIBDAX_MSGS_SEV_FAILURE, LIBDAX_MSGS_PRIO_HIGH,
|
||||||
|
"No MMC transport adapter is present. Running on sg-dummy.c.",
|
||||||
|
0, 0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Gives up the drive for SCSI commands and releases eventual access locks.
|
||||||
|
(Note: this is not physical tray locking.)
|
||||||
|
*/
|
||||||
|
int sg_release(struct burn_drive *d)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Sends a SCSI command to the drive, receives reply and evaluates wether
|
||||||
|
the command succeeded or shall be retried or finally failed.
|
||||||
|
Returned SCSI errors shall not lead to a return value indicating failure.
|
||||||
|
The callers get notified by c->error. An SCSI failure which leads not to
|
||||||
|
a retry shall be notified via scsi_notify_error().
|
||||||
|
The Libburn_log_sg_commandS facility might be of help when problems with
|
||||||
|
a drive have to be examined. It shall stay disabled for normal use.
|
||||||
|
@return: 1 success , <=0 failure
|
||||||
|
*/
|
||||||
|
int sg_issue_command(struct burn_drive *d, struct command *c)
|
||||||
|
{
|
||||||
|
libdax_msgs_submit(libdax_messenger, d->global_index, 0x0002016a,
|
||||||
|
LIBDAX_MSGS_SEV_FAILURE, LIBDAX_MSGS_PRIO_HIGH,
|
||||||
|
"No MMC transport adapter is present. Running on sg-dummy.c.",
|
||||||
|
0, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Tries to obtain SCSI address parameters.
|
||||||
|
@return 1 is success , 0 is failure
|
||||||
|
*/
|
||||||
|
int sg_obtain_scsi_adr(char *path, int *bus_no, int *host_no, int *channel_no,
|
||||||
|
int *target_no, int *lun_no)
|
||||||
|
{
|
||||||
|
libdax_msgs_submit(libdax_messenger, -1, 0x0002016c,
|
||||||
|
LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_HIGH,
|
||||||
|
"No MMC transport adapter is present. Running on sg-dummy.c.",
|
||||||
|
0, 0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Tells wether a text is a persistent address as listed by the enumeration
|
||||||
|
functions.
|
||||||
|
*/
|
||||||
|
int sg_is_enumerable_adr(char *adr)
|
||||||
|
{
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Estimate the potential payload capacity of a file address.
|
||||||
|
@param path The address of the file to be examined. If it does not
|
||||||
|
exist yet, then the directory will be inquired.
|
||||||
|
@param bytes The pointed value gets modified, but only if an estimation is
|
||||||
|
possible.
|
||||||
|
@return -2 = cannot perform necessary operations on file object
|
||||||
|
-1 = neither path nor dirname of path exist
|
||||||
|
0 = could not estimate size capacity of file object
|
||||||
|
1 = estimation has been made, bytes was set
|
||||||
|
*/
|
||||||
|
int burn_os_stdio_capacity(char *path, off_t *bytes)
|
||||||
|
{
|
||||||
|
struct stat stbuf;
|
||||||
|
|
||||||
|
#ifdef Libburn_os_has_statvfS
|
||||||
|
struct statvfs vfsbuf;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char testpath[4096], *cpt;
|
||||||
|
long blocks;
|
||||||
|
off_t add_size = 0;
|
||||||
|
|
||||||
|
testpath[0] = 0;
|
||||||
|
blocks = *bytes / 512;
|
||||||
|
if (stat(path, &stbuf) == -1) {
|
||||||
|
strcpy(testpath, path);
|
||||||
|
cpt = strrchr(testpath, '/');
|
||||||
|
if(cpt == NULL)
|
||||||
|
strcpy(testpath, ".");
|
||||||
|
else if(cpt == testpath)
|
||||||
|
testpath[1] = 0;
|
||||||
|
else
|
||||||
|
*cpt = 0;
|
||||||
|
if (stat(testpath, &stbuf) == -1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
#ifdef Libburn_if_this_was_linuX
|
||||||
|
|
||||||
|
} else if(S_ISBLK(stbuf.st_mode)) {
|
||||||
|
fd = open(path, open_mode);
|
||||||
|
if (fd == -1)
|
||||||
|
return -2;
|
||||||
|
ret = ioctl(fd, BLKGETSIZE, &blocks);
|
||||||
|
close(fd);
|
||||||
|
if (ret == -1)
|
||||||
|
return -2;
|
||||||
|
*bytes = ((off_t) blocks) * (off_t) 512;
|
||||||
|
|
||||||
|
#endif /* Libburn_if_this_was_linuX */
|
||||||
|
|
||||||
|
} else if(S_ISREG(stbuf.st_mode)) {
|
||||||
|
add_size = stbuf.st_blocks * (off_t) 512;
|
||||||
|
strcpy(testpath, path);
|
||||||
|
} else
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (testpath[0]) {
|
||||||
|
|
||||||
|
#ifdef Libburn_os_has_statvfS
|
||||||
|
|
||||||
|
if (statvfs(testpath, &vfsbuf) == -1)
|
||||||
|
return -2;
|
||||||
|
*bytes = add_size + ((off_t) vfsbuf.f_bsize) *
|
||||||
|
(off_t) vfsbuf.f_bavail;
|
||||||
|
|
||||||
|
#else /* Libburn_os_has_statvfS */
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
#endif /* ! Libburn_os_has_stavtfS */
|
||||||
|
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
28
libburn/sg.c
28
libburn/sg.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* sg.c
|
/* sg.c
|
||||||
Switcher for operating system dependent transport level modules of libburn.
|
Switcher for operating system dependent transport level modules of libburn.
|
||||||
Copyright (C) 2006 Thomas Schmitt <scdbackup@gmx.net>, provided under GPL
|
Copyright (C) 2009 Thomas Schmitt <scdbackup@gmx.net>, provided under GPL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -10,8 +10,32 @@
|
|||||||
#include "sg-freebsd.c"
|
#include "sg-freebsd.c"
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
#ifdef __linux
|
||||||
|
|
||||||
#include "sg-linux.c"
|
#include "sg-linux.c"
|
||||||
|
|
||||||
#endif
|
#else
|
||||||
|
|
||||||
|
/* The dummy adapter formally fulfills the expectations of libburn towards
|
||||||
|
its SCSI command transport. It will show no drives and perform no SCSI
|
||||||
|
commands.
|
||||||
|
libburn will then be restricted to using its stdio pseudo drives.
|
||||||
|
*/
|
||||||
|
static int intentional_compiler_warning(void)
|
||||||
|
{
|
||||||
|
int INTENTIONAL_COMPILER_WARNING_;
|
||||||
|
int Cannot_recognize_Linux_nor_FreeBSD_;
|
||||||
|
int Have_to_use_dummy_MMC_transport_adapter_;
|
||||||
|
int This_libburn_will_not_be_able_to_operate_on_real_CD_drives;
|
||||||
|
int Have_to_use_dummy_MMC_transport_adapter;
|
||||||
|
int Cannot_recognize_Linux_nor_FreeBSD;
|
||||||
|
int INTENTIONAL_COMPILER_WARNING;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "sg-dummy.c"
|
||||||
|
|
||||||
|
#endif /* ! __linux */
|
||||||
|
#endif /* ! __FreeBSD__ */
|
||||||
|
|
||||||
|
@ -205,6 +205,11 @@ struct burn_drive
|
|||||||
with BD-RE */
|
with BD-RE */
|
||||||
int do_stream_recording;
|
int do_stream_recording;
|
||||||
|
|
||||||
|
/* ts A90227 : the LBA where stream recording shall start.
|
||||||
|
Writing to lower LBA will be done without streaming.
|
||||||
|
*/
|
||||||
|
int stream_recording_start;
|
||||||
|
|
||||||
/* ts A61218 from 51h READ DISC INFORMATION */
|
/* ts A61218 from 51h READ DISC INFORMATION */
|
||||||
int bg_format_status; /* 0=needs format start, 1=needs format restart*/
|
int bg_format_status; /* 0=needs format start, 1=needs format restart*/
|
||||||
|
|
||||||
|
@ -2106,8 +2106,12 @@ void burn_disc_write_sync(struct burn_write_opts *o, struct burn_disc *disc)
|
|||||||
/* ts A61224 */
|
/* ts A61224 */
|
||||||
burn_disc_init_write_status(o, disc); /* must be done very early */
|
burn_disc_init_write_status(o, disc); /* must be done very early */
|
||||||
|
|
||||||
/* ts A80412 */
|
/* ts A80412 , A90227 */
|
||||||
d->do_stream_recording = o->do_stream_recording;
|
d->do_stream_recording = !!o->do_stream_recording;
|
||||||
|
if (o->do_stream_recording >= 16)
|
||||||
|
d->stream_recording_start = o->do_stream_recording;
|
||||||
|
else
|
||||||
|
d->stream_recording_start = 0;
|
||||||
|
|
||||||
d->buffer = &buf;
|
d->buffer = &buf;
|
||||||
memset(d->buffer, 0, sizeof(struct buffer));
|
memset(d->buffer, 0, sizeof(struct buffer));
|
||||||
|
Reference in New Issue
Block a user