Nero API 6.0.0.0 DVD burning directory order

vbimport

#1

Hi there,

as some people know I’m writing the ImgTool which uses the NeroAPI to burn DVD Root directories to DVD media. Since version 1.03 of the API it’s possible to burn a (almost) standard conform DVD Video. All previous versions of the API had a bug which creates also a Joliet tree if you only choose ISO/UDF. Now this problem has gone… but a new one exists. It’s not a real problem but I think this should also be fixed:

If I now create a DVD Video using the API I get the right ISO/UDF bridge filesystem but the directory order in the UDF part of the filesystem is wrong. There comes the VIDEO_TS directory first but the AUDIO_TS directory has to be the first one. In the ISO part the directory order is right…

Just in case someone of Ahead have a look at this forum…

Greets, CouJo!


#2

Hello,

UDF Filesystem do not require directories to be sorted alphabetically. You should thus be able to determine the order in which the FIDs are created in the directory by just specifying them in the correct order within the NERO_ISO_ITEM linked list.

Regards,
andyE

Originally posted by CouJo
[B]Hi there,

as some people know I’m writing the ImgTool which uses the NeroAPI to burn DVD Root directories to DVD media. Since version 1.03 of the API it’s possible to burn a (almost) standard conform DVD Video. All previous versions of the API had a bug which creates also a Joliet tree if you only choose ISO/UDF. Now this problem has gone… but a new one exists. It’s not a real problem but I think this should also be fixed:

If I now create a DVD Video using the API I get the right ISO/UDF bridge filesystem but the directory order in the UDF part of the filesystem is wrong. There comes the VIDEO_TS directory first but the AUDIO_TS directory has to be the first one. In the ISO part the directory order is right…

Just in case someone of Ahead have a look at this forum…

Greets, CouJo! [/B]


#3

The first list entry in the ISO item list is the AUDIO_TS directory, that’s the problem.

Greets, CouJo!


#4

Just some code snippets to show that the ISO Tree has the right directory order…


//====================================================================
   // making AUDIO_TS stuff
   //====================================================================
   pStart = new NERO_ISO_ITEM;
   if(pStart != NULL)
   {
      memset((void *)pStart, 0, sizeof(NERO_ISO_ITEM));

      // terminate next pointers
      pStart->nextItem = NULL;
      pStart->subDirFirstItem = NULL;

      strcpy(pStart->fileName, "AUDIO_TS");
      pStart->isDirectory = TRUE;
      pStart->entryTime = *pTimeStruct;
      pStart->isReference = FALSE;
      if(AUDIO_TS_exists)
      {
         CreateISOStructure(Path + (CString)"\\AUDIO_TS", &pStart);
      }
   }
   else
   {
      CleanDVDISOStructure(&pStart);
      AppendString(IDS_ERROR_13);
      return(NULL);
   }

   //====================================================================
   // making VIDEO_TS stuff
   //====================================================================
   NERO_ISO_ITEM *pActual = new NERO_ISO_ITEM;

   if(pActual != NULL)
   {
      memset((void *)pActual, 0, sizeof(NERO_ISO_ITEM));

      // terminate next pointers
      pActual->nextItem = NULL;
      pActual->subDirFirstItem = NULL;

      strcpy(pActual->fileName, "VIDEO_TS");
      pActual->isDirectory = TRUE;
      pActual->entryTime = *pTimeStruct;
      pActual->isReference = FALSE;
      pStart->nextItem = pActual;
   }
   else
   {
      CleanDVDISOStructure(&pStart);
      AppendString(IDS_ERROR_13);
      return(NULL);
   }

As you can see the “pStart” pointer points to the AUDIO_TS folder.

…some lines later:


mycd.nwcdIsoTrack = NeroCreateIsoTrackEx(pStart, VolumeLabel, IsoFlags);

…any suggestions?

Greets, CouJo!