Re: UDF: buggy? libdvdread vs. udf fs driver

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

 



> ok, at least I managed to get a Dir.Length > 0 using long or short "ad"
> instead of inicb -- whatever that means. "AD" like "allocation descriptor"?
> long or short ADs, or ADs in the INICB? what exactly does that mean?
> 
> so:
> 
>         mkudffs --ad=long --noefe 24M
> or:     mkudffs --ad=short --noefe 24M
> 
> will get me a step further, but UDFFindFile will now fail at some other place.

back again ...

I've made an observation which I think is somewhat strange ...

(1) make udf filesystem on loopbackimage
    bash-2.05# dd if=/dev/zero of=24M bs=1M count=24
    24+0 records in
    24+0 records out
    bash-2.05# mkudffs --vid="The Entropy Movie" --udfrev=0x0102 --ad=short --noefe 24M
    start=0, blocks=16, type=RESERVED 
    start=16, blocks=3, type=VRS 
    start=19, blocks=237, type=USPACE 
    start=256, blocks=1, type=ANCHOR 
    start=257, blocks=16, type=PVDS 
    start=273, blocks=1, type=LVID 
    start=274, blocks=11757, type=PSPACE 
    start=12031, blocks=1, type=ANCHOR 
    start=12032, blocks=239, type=USPACE 
    start=12271, blocks=16, type=RVDS 
    start=12287, blocks=1, type=ANCHOR 
    bash-2.05# mount -o loop 24M /mnt
    bash-2.05# dmesg
    UDF-fs INFO UDF 0.9.8.1 (2004/29/09) Mounting volume 'The Entropy Movie', timestamp 2006/06/05 19:02 (1078)
    bash-2.05# df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/hda3              1011960    700312    260240  73% /
    /dev/hda4            152640480  60730108  84156600  42% /data
    /data/root/src/24M       23514        12     23502   1% /mnt

(2) /mnt contains:
    bash-2.05# find /mnt
    /mnt
    /mnt/lost+found

(3) libdvdread will now ...
    bash-2.05# ogle 24M 
    libdvdread: Using libdvdcss version 1.2.9 for DVD access
    > UDFFindFile filename=/VIDEO_TS/VIDEO_TS.IFO
      UDFFindFile:856
    > UDFMapICB
    > UDFFileEntry
      ad->Length=0
      L_EA=0 L_AD=8
      before switch: ad->Length=0
      flags=0000
      flags=>UDFShortAD
      after switch: ad->Length=92
    < UDFFileEntry, ad->Length=92
    < UDFMapICB:530, return 1(ok)
      887: File.length=92 token=VIDEO_TS
    > UDFScanDir (1) Dir.Length=92 (2) FileName=VIDEO_TS
      UDFScanDir:595
      enter while: Dir.Length=92
      TagID=257 101
      filename=
      TagID=257 101
      filename=lost+found
    X UDFScanDir:638

    .... will now stop after arriving at the lost+found directory.
    please noteice "ad->Length=92".

(4) now, create dvd-files:
    bash-2.05# mount -o loop 24M /mnt
    bash-2.05# dvdauthor -o /mnt -x foo.xml 
    DVDAuthor::dvdauthor, version 0.6.11.
    ...
    INFO: dvdauthor creating table of contents
    INFO: Scanning /mnt/VIDEO_TS/VTS_01_0.IFO

(5) the image now contains:
    bash-2.05# find /mnt
    /mnt
    /mnt/lost+found
    /mnt/VIDEO_TS
    /mnt/VIDEO_TS/VTS_01_1.VOB
    /mnt/VIDEO_TS/VTS_01_0.IFO
    /mnt/VIDEO_TS/VTS_01_0.BUP
    /mnt/VIDEO_TS/VIDEO_TS.IFO
    /mnt/VIDEO_TS/VIDEO_TS.BUP
    /mnt/AUDIO_TS

(6) but this is what libdvdread sees:
    bash-2.05# umount  /mnt
    bash-2.05# ogle 24M 
    libdvdread: Using libdvdcss version 1.2.9 for DVD access
    > UDFFindFile filename=/VIDEO_TS/VIDEO_TS.IFO
      UDFFindFile:856
    > UDFMapICB
    > UDFFileEntry
      ad->Length=0
      L_EA=0 L_AD=8
      before switch: ad->Length=0
      flags=0000
      flags=>UDFShortAD
      after switch: ad->Length=92
    < UDFFileEntry, ad->Length=92
    < UDFMapICB:530, return 1(ok)
      887: File.length=92 token=VIDEO_TS
    > UDFScanDir (1) Dir.Length=92 (2) FileName=VIDEO_TS
      UDFScanDir:595
      enter while: Dir.Length=92
      TagID=257 101
      filename=
      TagID=257 101
      filename=lost+found
    X UDFScanDir:638

    strange - Dir.Length is still 92, same as above in (3), and
    libdvdread will stop after reading "lost+found".

(7) remove lost+found and try again:
    bash-2.05# mount -o loop 24M /mnt
    bash-2.05# rmdir /mnt/lost+found/
    bash-2.05# find /mnt  
    /mnt
    /mnt/VIDEO_TS
    /mnt/VIDEO_TS/VTS_01_1.VOB
    /mnt/VIDEO_TS/VTS_01_0.IFO
    /mnt/VIDEO_TS/VTS_01_0.BUP
    /mnt/VIDEO_TS/VIDEO_TS.IFO
    /mnt/VIDEO_TS/VIDEO_TS.BUP
    /mnt/AUDIO_TS
    bash-2.05# umount /mnt
    bash-2.05# ogle 24M 
    libdvdread: Using libdvdcss version 1.2.9 for DVD access
    > UDFFindFile filename=/VIDEO_TS/VIDEO_TS.IFO
      UDFFindFile:856
    > UDFMapICB
    > UDFFileEntry
      ad->Length=0
      L_EA=0 L_AD=8
      before switch: ad->Length=0
      flags=0000
      flags=>UDFShortAD
      after switch: ad->Length=92
    < UDFFileEntry, ad->Length=92
    < UDFMapICB:530, return 1(ok)
      887: File.length=92 token=VIDEO_TS
    > UDFScanDir (1) Dir.Length=92 (2) FileName=VIDEO_TS
      UDFScanDir:595
      enter while: Dir.Length=92
      TagID=257 101
      filename=
      TagID=257 101
      filename=lost+found
    X UDFScanDir:638

    what? it still stops after "lost+found", which just has been removed?

(8) am I using the wrong image?
    bash-2.05# pwd
    /data/root/src
    bash-2.05# ls -l 24M 
    -rw-r--r--   1 root     root     25165824 Jun  5 19:02 24M
    bash-2.05# df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/hda3              1011960    698656    261896  73% /
    /dev/hda4            152640480  60730116  84156592  42% /data
    bash-2.05# mount -o loop 24M /mnt
    bash-2.05# df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/hda3              1011960    698656    261896  73% /
    /dev/hda4            152640480  60730116  84156592  42% /data
    /data/root/src/24M       23514      1660     21854   8% /mnt

    no. the image libdvd sees is the same that is mounted and that
    dvdauthor is operating upon.

what's wrong here?

kind regards,
h.rosmanith
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux