bug-xorriso
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-xorriso] Reading contents of fifo/pipe/named-pipe


From: Thomas Schmitt
Subject: Re: [Bug-xorriso] Reading contents of fifo/pipe/named-pipe
Date: Mon, 16 Nov 2015 22:58:28 +0100

Hi,

Steve Kenton wrote:
> Is there a show stopping technical reason that Xorriso could not read file
> contents from named pipes?

A severe problem is with size prediction of the file.
The ISO 9660 directory record with this information gets written
before the data blocks. This is hardcoded quite deeply in libisofs.

A different approach is done by program "flyisofs" from Paul Serice's
  https://www.serice.net/shunt/
I understand it is limited to 4 GiB per file and does no multi-session.


> From a  software perspective, nothing I've found seems to do this, but
> consumer VHS/DVD decks can manage on-the-fly record to disc somehow.

The most simple solution would be with DVD-R, DVD+R, unformatted
DVD-RW, or BD-R which have their own table of content with multiple
tracks. No filesystem would be needed:

  xorriso -as cdrecord -v -tao -multi dev=/dev/sr0 -eject /my/named/pipe

This can record at least 99 tracks (= sessions). DVD-R[W] waste
quite some space between sessions. On the other hand, unformatted
DVD-RW are the only re-usable DVD media with hardware table-of-
content. Blanking must be done in non-fast mode to make them ready
for multi-session.

The table-of-content can be inquired by

  xorriso -outdev /dev/sr0 -toc

Reading would be done by e.g.

  dd if=/dev/sr0 bs=2048 skip=...track.start.from.toc...


> I don't even care if it would need DVD+RW media if necessary to go back and
> write some after-the-video-stops "fix up" information.

DVD+RW, DVD-RAM, formatted DVD-RW, and BD-RE have no such
table-of-content by hardware.

If you do not want to use them with a simple read-write
filesystem like FAT32, you would have to invent your own very simple
filesystem, by e.g a fixely reserved start range of 1000 blocks,
of which each describes start, size, and properties of one recordedi
session.
xorriso or libburn can help with this, but the reading and writing
of the table-of content is probably best done with POSIX means:
open(2), lseek(2), read(2), write(2).
For bulk writing with full speed see man xorrecord options
 write_start_address= and stream_recording=on.


Have a nice day :)

Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]