> >> as you might have noticed, there still is a problem in mkisofs:
> >>
> >> OBJ/sparc-sunos5-cc/mkisofs: Implementation botch. Video pad for file 
>VTS_02_1.VOB is -13
> >> OBJ/sparc-sunos5-cc/mkisofs: Either the *.IFO file is bad or you found a mkisofs 
>bug.
> >>
> >> If _you_ have an idea, your thoughts are welcome!
> 
> >.IFO file contains offset to the beginning of menu file (vtsm_vobs) and
> >beginning of video content itself (vtstt_vobs). Now if menu file (such
> >as VTS_02_00.VOB) is empty then vtsm_vobs is apparently assigned at
> >value of zero. Which is kind of logical, because zero-length file has no
> >extents and therefore doesn't so to say start anywhere. Now the point is
> >that mkisofs apparently treats this special case vtsm_vobs==0
> >*incorrectly* effectively assuming that VTS_02_00.VOB coincides with
> >VTS_02_0.IFO and double-booking the space.
> 
> I checked your patch and it seems to work as expected...
> 
> So it seems to be OK to include the patch in 2.0-final.

As mentioned it was a "denoting" patch.

> ... the patch does the trick and mkisofs masters correct
> DVD-Video image, but presumably extra code performing cross-checking is
> required:-)

I have to insist at the very least on the following cross-check. A.

--- ./mkisofs/dvd_file.c.orig   Sun Jul 21 14:53:03 2002
+++ ./mkisofs/dvd_file.c        Mon Dec 23 14:28:10 2002
@@ -539,6 +539,20 @@
 
                        /* Find the actuall right size of VTS_XX_0.VOB */
                        if (vts_menu_file != 0) {
+                               if (vts_ifo->vtsi_mat->vtsm_vobs == 0)  {
+                                       /*
+                                        * Apparently means that VTS_XX_0.VOB
+                                        * is empty after all...
+                                        */
+                                       menu_vob = 0;
+                                       /* Double-check... */
+                                       if (DVDFileSize(vts_menu_file) != 0) {
+                                               
+fprintf(stderr,"%s/VIDEO_TS/VTS_%02i_0.IFO "
+                                                       "appears to be corrupted.\n",
+                                                       mountpoint, counter+1);
+                                               return (0);
+                                       }
+                               } else
                                if ((vts_title_file != 0) && 
                                    (vts_ifo->vtsi_mat->vtstt_vobs - 
                                     vts_ifo->vtsi_mat->vtsm_vobs >


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to