Compare commits

..

15 Commits

Author SHA1 Message Date
583092f7ec Corrected wrong version number of cdrskin 2008-11-12 11:47:45 +00:00
1ac74b6145 Documented changes and release timestamp 2008-11-12 11:23:07 +00:00
287f27ca26 Updated cdrskin tarball generator 2008-11-12 11:22:07 +00:00
36436e3ad4 Made number transition to 0.5.6 2008-11-12 11:19:39 +00:00
bea64f4073 Preparing for libburn-0.5.6 2008-11-12 08:27:54 +00:00
2fb19dd08e Avoiding warning message about implicitely declared burn_fifo_abort() 2008-11-12 07:53:01 +00:00
2ce3199241 Disabling the sigsegv provoking new debug message 2008-11-08 20:25:38 +00:00
6fe53827da Cancelling libburn fifo thread before freeing the fifo object 2008-11-08 14:18:14 +00:00
6053f3a6e3 Clarified behavior of burn_source with pipes 2008-11-08 13:48:59 +00:00
de274ddaff Bug fix: Unsuitable write modes were caught silently and later than desired 2008-11-01 12:13:26 +00:00
92b0e145d5 Fixed incomplete sentence in man cdrskin 2008-10-15 10:35:06 +00:00
4a5083739d A clarification in comment about burn_disc_format() 2008-10-15 10:33:09 +00:00
7a8040fe9f Documented changes and release timestamp 2008-10-05 12:45:10 +00:00
57df15054f Updated cdrskin tarball generator 2008-10-05 12:43:18 +00:00
a57cf121d8 Made number transition to next development cycle 2008-10-05 12:41:44 +00:00
17 changed files with 239 additions and 77 deletions

View File

@ -101,9 +101,9 @@ test_structest_CPPFLAGS = -Ilibburn
test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
test_structest_SOURCES = test/structest.c
## cdrskin construction site - ts A60816 - A80820
## cdrskin construction site - ts A60816 - A81112
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_5_4
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_5_6
# cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking

9
README
View File

@ -313,6 +313,15 @@ Project history as far as known to me:
- 6th Oct 2008 libburn-0.5.4 adjusts the changes of 0.5.2 to the needs of
Linux kernel 2.4 and introduces human readable SCSI error messages.
- 6th Oct 2008 libisofs-0.6.10 fixes two bugs which prevented adding and
manipulation of ISOLINUX boot images.
- 15th Oct 2008 libisoburn/xorriso-0.2.8 can activate and maintain an
ISOLINUX boot image by an EL Torito boot record.
- 12th Nov 2008 libburn-0.5.6 fixes usage of freed memory by the fifo thread
of an aborted burn run.
------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
Integrated sub project of libburnia-project.org but also published via:
http://scdbackup.sourceforge.net/cdrskin_eng.html
http://scdbackup.sourceforge.net/cdrskin-0.5.4.pl00.tar.gz
http://scdbackup.sourceforge.net/cdrskin-0.5.6.pl00.tar.gz
Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2.
------------------------------------------------------------------------------
@ -20,10 +20,10 @@ By using this software you agree to the disclaimer at the end of this text
Compilation, First Glimpse, Installation
Obtain cdrskin-0.5.4.pl00.tar.gz, take it to a directory of your choice and do:
Obtain cdrskin-0.5.6.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf cdrskin-0.5.4.pl00.tar.gz
cd cdrskin-0.5.4
tar xzf cdrskin-0.5.6.pl00.tar.gz
cd cdrskin-0.5.6
Within that directory execute:

View File

@ -38,7 +38,7 @@ original="./libburn_svn_release.tgz"
# My changes are in $changes , mainly in $changes/cdrskin
changes="./libburn-release"
skin_release="0.5.4"
skin_release="0.5.6"
patch_level=".pl00"
skin_rev="$skin_release""$patch_level"

View File

@ -38,7 +38,7 @@ original="./libburn_svn.tgz"
# My changes are in $changes , mainly in $changes/cdrskin
changes="./libburn-develop"
skin_release="0.5.5"
skin_release="0.5.7"
patch_level=""
skin_rev="$skin_release""$patch_level"

View File

@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH CDRSKIN 1 "Aug 05, 2008"
.TH CDRSKIN 1 "Oct 15, 2008"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -161,7 +161,8 @@ round of overwriting. Usually
is the appropriate option.
Blanking damages the previous content but does not
make it completely unreadable. It is no effective privacy precaution.
Multiple cycles of blanking and overwriting with random numbers might be.
Multiple cycles of blanking and overwriting with random numbers might be
needed.
.SS
.B Sequentially Recordable DVD Media:
.br

View File

@ -88,7 +88,7 @@ or
/** The official program version */
#ifndef Cdrskin_prog_versioN
#define Cdrskin_prog_versioN "0.5.4"
#define Cdrskin_prog_versioN "0.5.6"
#endif
/** The official libburn interface revision to use.
@ -101,7 +101,7 @@ or
#define Cdrskin_libburn_minoR 5
#endif
#ifndef Cdrskin_libburn_micrO
#define Cdrskin_libburn_micrO 4
#define Cdrskin_libburn_micrO 6
#endif
@ -135,38 +135,38 @@ or
#endif /* Cdrskin_libburn_cvs_A60220_tS */
#ifdef Cdrskin_libburn_0_5_4
#define Cdrskin_libburn_versioN "0.5.4"
#ifdef Cdrskin_libburn_0_5_6
#define Cdrskin_libburn_versioN "0.5.6"
#define Cdrskin_libburn_from_pykix_svN 1
#endif /* Cdrskin_libburn_0_5_4 */
#endif /* Cdrskin_libburn_0_5_6 */
#ifdef Cdrskin_libburn_0_5_5
#define Cdrskin_libburn_versioN "0.5.5"
#ifdef Cdrskin_libburn_0_5_7
#define Cdrskin_libburn_versioN "0.5.7"
#define Cdrskin_libburn_from_pykix_svN 1
/* Place novelty switch macros here.
Move them down to Cdrskin_libburn_from_pykix_svN on version leap
*/
/* there are no libburn novelties in 0.5.5 yet */
/* there are no libburn novelties in 0.5.7 yet */
#endif /* Cdrskin_libburn_0_5_5 */
#endif /* Cdrskin_libburn_0_5_7 */
#ifndef Cdrskin_libburn_versioN
#define Cdrskin_libburn_0_5_4
#define Cdrskin_libburn_versioN "0.5.4"
#define Cdrskin_libburn_0_5_6
#define Cdrskin_libburn_versioN "0.5.6"
#define Cdrskin_libburn_from_pykix_svN 1
#endif
#ifdef Cdrskin_libburn_0_5_4
#ifdef Cdrskin_libburn_0_5_6
#undef Cdrskin_libburn_majoR
#undef Cdrskin_libburn_minoR
#undef Cdrskin_libburn_micrO
#define Cdrskin_libburn_majoR 0
#define Cdrskin_libburn_minoR 5
#define Cdrskin_libburn_micrO 4
#define Cdrskin_libburn_micrO 6
#endif
#ifdef Cdrskin_libburn_0_5_5
#ifdef Cdrskin_libburn_0_5_7
#undef Cdrskin_libburn_majoR
#undef Cdrskin_libburn_minoR
#undef Cdrskin_libburn_micrO
@ -251,7 +251,7 @@ or
/* 0.4.8 */
/* Bug fix release for write_start_address=... on DVD-RAM and BD-RE */
/* 0.5.0 , 0.5.2 , 0.5.4 */
/* 0.5.0 , 0.5.2 , 0.5.4 , 0.5.6 */
/* novel libburn features are transparent to cdrskin */

View File

@ -57,7 +57,7 @@ and to MMC-5 for DVD or BD).
GPL software included:<BR>
</H2>
<DL>
<DT>libburn-0.5.4</DT>
<DT>libburn-0.5.6</DT>
<DD>(founded by Derek Foreman and Ben Jansens,
furthered since August 2006 by Thomas Schmitt from team of libburnia-project.org)</DD>
<DD>transfers data to CD, DVD, BD-RE</DD>
@ -186,7 +186,7 @@ or to do experiments on BD-R media.
<P>
<DL>
<DT>Download as source code (see README):</DT>
<DD><A HREF="cdrskin-0.5.4.pl00.tar.gz">cdrskin-0.5.4.pl00.tar.gz</A>
<DD><A HREF="cdrskin-0.5.6.pl00.tar.gz">cdrskin-0.5.6.pl00.tar.gz</A>
(740 KB).
</DD>
<DD>
@ -236,18 +236,18 @@ cdrskin_0.4.2.pl00-x86-suse9_0-static.tar.gz</A>, (310 KB), -static compiled,
<HR>
<P>
Enhancements towards previous stable version cdrskin-0.5.2.pl00:
Enhancements towards previous stable version cdrskin-0.5.4.pl00:
<UL>
<LI>Most SCSI errors now get reported with message texts as of MMC-5</LI>
<!--
<LI>none</LI>
<!--
-->
</UL>
Bug fixes towards cdrskin-0.5.2.pl00:
Bug fixes towards cdrskin-0.5.4.pl00:
<UL>
<LI>
dev=/dev/srN or dev=/dev/scdN on Linux 2.4 was not converted into dev=/dev/sgM
libburn fifo thread was not aborted when burn run was aborted which could
lead to use of freed memory
</LI>
<!--
<LI>none</LI>
@ -260,8 +260,8 @@ dev=/dev/srN or dev=/dev/scdN on Linux 2.4 was not converted into dev=/dev/sgM
<P>
<DL>
<DT><H3>Development snapshot, version 0.5.5 :</H3></DT>
<DD>Enhancements towards current stable version 0.5.4.pl00:
<DT><H3>Development snapshot, version 0.5.7 :</H3></DT>
<DD>Enhancements towards current stable version 0.5.6.pl00:
<UL>
<!--
-->
@ -270,10 +270,10 @@ dev=/dev/srN or dev=/dev/scdN on Linux 2.4 was not converted into dev=/dev/sgM
</UL>
</DD>
<DD>&nbsp;</DD>
<DD><A HREF="README_cdrskin_devel">README 0.5.5</A>
<DD><A HREF="cdrskin__help_devel">cdrskin_0.5.5 --help</A></DD>
<DD><A HREF="cdrskin_help_devel">cdrskin_0.5.5 -help</A></DD>
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.5.5)</A></DD>
<DD><A HREF="README_cdrskin_devel">README 0.5.7</A>
<DD><A HREF="cdrskin__help_devel">cdrskin_0.5.7 --help</A></DD>
<DD><A HREF="cdrskin_help_devel">cdrskin_0.5.7 -help</A></DD>
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.5.7)</A></DD>
<DD>&nbsp;</DD>
<DT>Maintainers of cdrskin unstable packages please use SVN of
<A HREF="http://libburnia-project.org"> libburnia-project.org</A></DT>
@ -293,7 +293,7 @@ admins with full system souvereignty.</DT>
<A HREF="README_cdrskin_devel">upcoming README</A> ):
</DD>
<DD>
<A HREF="cdrskin-0.5.5.tar.gz">cdrskin-0.5.5.tar.gz</A>
<A HREF="cdrskin-0.5.7.tar.gz">cdrskin-0.5.7.tar.gz</A>
(740 KB).
</DD>

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2008.10.05.073001"
#define Cdrskin_timestamP "2008.11.12.120001"

View File

@ -5832,14 +5832,12 @@ Incremented LT_CURRENT and LT_AGE to get libburn.so.4.18.0
Makefile.am
configure.ac
README
libburn/libburn.h (burn_header_version_*)
libburn/libburn.h
cdrskin/cdrskin.c
cdrskin/README
cdrskin/compile_cdrskin.sh
cdrskin/cdrskin_timestamp.h
cdrskin/wiki_plain.txt
cdrskin/cdrskin_eng.html
doc/comments
Made number transition
5 Oct 2008 [2103]
@ -5849,7 +5847,7 @@ Made number transition
+ cdrskin/add_ts_changes_to_libburn_0_5_5
Updated cdrskin tarball generator
5 Oct 2008 []
5 Oct 2008 [2104]
cdrskin/changelog.txt
Documented changes and release timestamp
@ -5858,9 +5856,107 @@ Documented changes and release timestamp
* Issueing many SCSI error messages in cleartext now
------------------------------------ cycle - cdrskin-0.5.5 -
------------------------------------ cycle - cdrskin-0.5.5 -
------------------------------------ cycle - cdrskin-0.5.5 -
2008.10.05.123737 [2106]
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 next development cycle
5 Oct 2008 [2107]
- cdrskin/add_ts_changes_to_libburn_0_5_2
- cdrskin/add_ts_changes_to_libburn_0_5_3
+ cdrskin/add_ts_changes_to_libburn_0_5_4
+ cdrskin/add_ts_changes_to_libburn_0_5_5
Updated cdrskin tarball generator
5 Oct 2008 [2108]
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------------ cycle - cdrskin-0.5.5 - 2008.10.05.130109
2008.10.15.103224 [2126]
libburn/libburn.h
A clarification in comment about burn_disc_format()
15 Oct 2008 [2127]
cdrskin/cdrskin.1
Fixed incomplete sentence in man cdrskin
2008.11.01.121240 [2157]
libburn/libburn.h
libburn/async.c
Bug fix: Unsuitable write modes were caught silently and later than desired
------------------------------------ cycle - cdrskin-0.5.5 - 2008.11.01.121445
2008.11.08.134828 [2173]
libburn/libburn.h
Clarified behavior of burn_source with pipes
2008.11.08.141734 [2174]
libburn/file.h
libburn/file.c
libburn/async.c
Cancelling libburn fifo thread before freeing the fifo object
2008.11.08.202456 [2175]
libburn/async.c
Disabling the sigsegv provoking new debug message
2008.11.12.075111 [2180]
libburn/async.h
Avoiding warning message about implicitely declared burn_fifo_abort()
------------------------------------ cycle - cdrskin-0.5.5 - 2008.11.12.075411
* Bug fix: libburn fifo thread was not aborted when burn run was aborted
12 Nov 2008 [2181]
svn copy http://svn.libburnia-project.org/libburn/trunk
http://svn.libburnia-project.org/libburn/branches/ZeroFiveSix
Preparing for libburn-0.5.6
12 Nov 2008 [2182]
svn delete http://svn.libburnia-project.org/libburn/branches/ZeroFourSix
Removing obsolete libburn branch ZeroFourSix
2008.11.12.120001 [2183]
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.5.6
12 Nov 2008 [2184]
- cdrskin/add_ts_changes_to_libburn_0_5_4
- cdrskin/add_ts_changes_to_libburn_0_5_5
+ cdrskin/add_ts_changes_to_libburn_0_5_6
+ cdrskin/add_ts_changes_to_libburn_0_5_7
Updated cdrskin tarball generator
12 Nov 2008 []
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------ release - cdrskin-0.5.6.pl00 - 2008.10.06.073001
* Bug fix: libburn fifo thread was not aborted when burn run was aborted
which could lead to use of freed memory
------------------------------------ cycle - cdrskin-0.5.7 -
------------------------------------ cycle - cdrskin-0.5.7 -
===============================================================================
TODO
@ -5870,7 +5966,10 @@ Documented changes and release timestamp
--------------------------------- bugs -------------------------------------
- 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
pointer in struct burn_drive and let it point to
their private memory.)
- Why are DVD+R tracks labeled "invisible" by dvd+rw-mediainfo ?
Why does the DVD drive only show the first session ?

View File

@ -7,7 +7,7 @@
debug_opts="-O2"
def_opts=
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
libvers="-DCdrskin_libburn_0_5_4"
libvers="-DCdrskin_libburn_0_5_6"
cleanup_src_or_obj="libburn/cleanup.o"
libdax_msgs_o="libburn/libdax_msgs.o"
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
@ -33,15 +33,15 @@ do
libdax_audioxtr_o=
libdax_msgs_o="libburn/message.o"
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
elif test "$i" = "-libburn_0_5_4"
elif test "$i" = "-libburn_0_5_6"
then
libvers="-DCdrskin_libburn_0_5_4"
libvers="-DCdrskin_libburn_0_5_6"
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
libdax_msgs_o="libburn/libdax_msgs.o"
cleanup_src_or_obj="libburn/cleanup.o"
elif test "$i" = "-libburn_svn"
then
libvers="-DCdrskin_libburn_0_5_5"
libvers="-DCdrskin_libburn_0_5_7"
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
libdax_msgs_o="libburn/libdax_msgs.o"
cleanup_src_or_obj="libburn/cleanup.o"
@ -76,7 +76,7 @@ do
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
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_5_4 set macro to match libburn-0.5.4"
echo " -libburn_0_5_6 set macro to match libburn-0.5.6"
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."

View File

@ -1,4 +1,4 @@
AC_INIT([libburn], [0.5.4], [http://libburnia-project.org])
AC_INIT([libburn], [0.5.6], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -7,7 +7,7 @@ AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([subdir-objects])
dnl Notes by ts A71207 - A80126 :
dnl Notes by ts A71207 - A81111 :
dnl
dnl Regrettably the meaning of the various version types was misunderstood
dnl before version 0.4.1.
@ -65,6 +65,7 @@ dnl 0.4.8 = libburn.so.4.13.0
dnl 0.5.0 = libburn.so.4.15.0
dnl 0.5.2 = libburn.so.4.17.0
dnl 0.5.4 = libburn.so.4.19.0
dnl 0.5.6 = libburn.so.4.21.0
dnl
dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here.
dnl SONAME of the emerging library is LT_CURRENT - LT_AGE.
@ -90,7 +91,7 @@ dnl
dnl As said: Only copies. Original in libburn/libburn.h : burn_header_version_*
BURN_MAJOR_VERSION=0
BURN_MINOR_VERSION=5
BURN_MICRO_VERSION=4
BURN_MICRO_VERSION=6
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
AC_SUBST(BURN_MAJOR_VERSION)
@ -101,15 +102,15 @@ AC_SUBST(BURN_VERSION)
dnl Libtool versioning
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
dnl
dnl ts A80820
dnl ### This is the release version libburn-0.5.2 = libburn.so.4.17.0
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 happened meanwhile.
dnl ts A81111
dnl This is the release version libburn-0.5.6 = libburn.so.4.21.0
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 happened meanwhile.
dnl
dnl SONAME = 23 - 19 = 4 . Library name = libburn.so.4.19.0
LT_CURRENT=23
LT_AGE=19
dnl SONAME = 25 - 21 = 4 . Library name = libburn.so.4.21.0
LT_CURRENT=25
LT_AGE=21
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`

View File

@ -25,9 +25,9 @@
#include "drive.h"
#include "write.h"
#include "options.h"
#include "file.h"
#include "async.h"
#include "init.h"
#include "file.h"
#include "back_hacks.h"
#include <pthread.h>
@ -495,7 +495,7 @@ void burn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
*/
strcpy(reasons, "Write job parameters are unsuitable:\n");
if (burn_precheck_write(opts, disc, reasons + strlen(reasons), 1)
== BURN_WRITE_NONE) {
<= 0) {
libdax_msgs_submit(libdax_messenger,
opts->drive->global_index, 0x00020139,
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
@ -518,6 +518,12 @@ void burn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
static void *fifo_worker_func(struct w_list *w)
{
int old;
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old);
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &old);
/* Note: Only burn_fifo_abort() shall cancel the fifo thread */
burn_fifo_source_shoveller(w->u.fifo.source, w->u.fifo.flag);
remove_worker(pthread_self());
return NULL;
@ -547,6 +553,27 @@ int burn_fifo_start(struct burn_source *source, int flag)
}
int burn_fifo_abort(struct burn_source_fifo *fs, int flag)
{
int ret;
pthread_t pt;
if (fs->thread_is_valid <= 0 || fs->thread_handle == NULL)
return(2);
#ifdef NIX
libdax_msgs_submit(libdax_messenger, -1, 0x00000002,
LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_HIGH,
"Aborting running burn_source_fifo thread", 0, 0);
#endif /* NIX */
pt= *((pthread_t *) fs->thread_handle);
remove_worker(pt);
ret = pthread_cancel(pt);
return (ret == 0);
}
#ifdef Libburn_has_burn_async_join_alL
/* ts A71019 : never used */

View File

@ -10,5 +10,9 @@ struct burn_write_opts;
/* To be called when the first read() call comes to a fifo */
int burn_fifo_start(struct burn_source *source, int flag);
/* ts A81108 */
/* To abort a running fifo thread before the fifo object gets deleted */
int burn_fifo_abort(struct burn_source_fifo *fs, int flag);
#endif /* BURN__ASYNC_H */

View File

@ -9,6 +9,8 @@
#include <unistd.h>
#include <fcntl.h>
#include <time.h>
#include <pthread.h>
#include "source.h"
#include "libburn.h"
#include "file.h"
@ -307,6 +309,7 @@ static void fifo_free(struct burn_source *source)
{
struct burn_source_fifo *fs = source->data;
burn_fifo_abort(fs, 0);
if (fs->inp != NULL)
burn_source_free(fs->inp);
if (fs->buf != NULL)
@ -320,9 +323,12 @@ int burn_fifo_source_shoveller(struct burn_source *source, int flag)
struct burn_source_fifo *fs = source->data;
int ret, bufsize, diff, wpos, rpos, trans_end, free_bytes;
char *bufpt;
pthread_t thread_handle_storage;
fs->thread_handle= &thread_handle_storage;
*((pthread_t *) fs->thread_handle)= pthread_self();
fs->thread_pid = getpid();
fs->thread_pid_valid = 1;
fs->thread_is_valid = 1;
bufsize = fs->chunksize * fs->chunks;
while (!fs->end_of_consumption) {
@ -430,6 +436,8 @@ int burn_fifo_source_shoveller(struct burn_source *source, int flag)
free(fs->buf); /* Give up fifo buffer. Next fifo might start soon. */
fs->buf = NULL;
fs->thread_handle= NULL;
fs->thread_is_valid = 0;
return (fs->input_error == 0);
}
@ -465,8 +473,9 @@ struct burn_source *burn_fifo_source_new(struct burn_source *inp,
if (fs == NULL)
return NULL;
fs->is_started = 0;
fs->thread_handle = NULL;
fs->thread_pid = 0;
fs->thread_pid_valid = 0;
fs->thread_is_valid = 0;
fs->inp = NULL; /* set later */
fs->chunksize = chunksize;
fs->chunks = chunks;

View File

@ -29,8 +29,9 @@ struct burn_source_fifo {
*/
int is_started;
void *thread_handle; /* actually a pointer to a thread_t */
int thread_pid;
int thread_pid_valid;
int thread_is_valid;
/* the burn_source for which this fifo is acting as proxy */
struct burn_source *inp;

View File

@ -384,6 +384,13 @@ struct burn_source {
The size of a sector depends on BURN_MODE_*. The known range is
2048 to 2352.
If this call is reading from a pipe then it will learn
about the end of data only when that pipe gets closed on the
feeder side. So if the track size is not fixed or if the pipe
delivers less than the predicted amount or if the size is not
block aligned, then burning will halt until the input process
closes the pipe.
IMPORTANT:
If this function pointer is NULL, then the struct burn_source is of
version >= 1 and the job of .(*read)() is done by .(*read_xt)().
@ -813,7 +820,8 @@ void burn_allow_untested_profiles(int yes);
If the path does not exist in the filesystem yet, it is attempted to create
it as a regular file as soon as write operations are started.
The capabilities of role 3 resemble a blank DVD-R.
The capabilities of role 3 resemble a blank DVD-R. Nevertheless each
burn_disc_write() run may only write a single track.
One may distinguish pseudo-drives from MMC drives by call
burn_drive_get_drive_role().
@ -1212,7 +1220,8 @@ void burn_disc_erase(struct burn_drive *drive, int fast);
/** Format media for use with libburn. This currently applies to DVD-RW
in state "Sequential Recording" (profile 0014h) which get formatted to
state "Restricted Overwrite" (profile 0013h). DVD+RW can be "de-iced"
by setting bit2 of flag. Other media cannot be formatted yet.
by setting bit2 of flag. DVD-RAM and BD-RE may get formatted initially
or re-formatted to adjust their Defect Managment.
This function usually returns while the drive is still in the process
of formatting. The formatting is done, when burn_drive_get_status()
returns BURN_DRIVE_IDLE. This may be immediately after return or may
@ -1236,13 +1245,15 @@ void burn_disc_erase(struct burn_drive *drive, int fast);
bit4= enforce re-format of (partly) formatted media
bit5= try to disable eventual defect management
bit6= try to avoid lengthy media certification
bit7= MMC expert application mode (else libburn tries to
choose a suitable format type):
bit8 to bit15 contain the index of the format to use. See
burn_disc_get_formats(), burn_disc_get_format_descr().
bit7, bit8 to bit15 =
bit7 enables MMC expert application mode (else libburn
tries to choose a suitable format type):
If it is set then bit8 to bit15 contain the index of
the format to use. See burn_disc_get_formats(),
burn_disc_get_format_descr().
Acceptable types are: 0x00, 0x01, 0x10, 0x11, 0x13,
0x15, 0x26, 0x30, 0x31.
If bit7 is set, bit4 is set automatically.
If bit7 is set, then bit4 is set automatically.
@since 0.3.0
*/
void burn_disc_format(struct burn_drive *drive, off_t size, int flag);
@ -2194,7 +2205,7 @@ void burn_version(int *major, int *minor, int *micro);
*/
#define burn_header_version_major 0
#define burn_header_version_minor 5
#define burn_header_version_micro 4
#define burn_header_version_micro 6
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.