Lo scripting nel dvd

I lettori contengono una virtual machine che può essere programmata.


Ora che abbiamo creato i filmati per i menu dobbiamo spiegare al player cosa fare quando lo spettatore seleziona col telecomando le varie opzioni.

Per fare questo scriveremo del codice in un linguaggio molto simile al C che DvdAuthor tradurrà negli opcodes della virtual machine presente in ogni lettore di dvd (video).

In [13] si trova una descrizione degli opcodes della macchina virtuale, ma a noi tale dettaglio non serve in quanto ci affideremo al compilatore di DvdAuthor. Se proprio qualcuno volesse si può usare Ifoedit per modificare il codice creato.

La documentazione di DvdAuthor è piuttosto scarna a proposito del linguaggio di scripting e in giro si trovano solo esempi banali, un esempio più articolato si trova in [16].

Questi script permettono di gestire una serie di registri e fare dei salti a filmati o menu.

Ci sono due tipi di registri: il primo tipo comprende 16 variabili intere a 16 bit identificate con le sigle da g0 a g15 e sono liberi per gli script utente. DvdAuthor utilizza gli ultimi 3 per scopi interni e quindi ce ne restano 13 (in effetti nelle ultime versioni di DvdAuthor è possibile utilizzare una modalità in cui tutti i registri sono disponibili, ma per i nostri scopi ne servono molti di meno). Sono a tutti gli effetti variabili globali e sono anche le uniche disponibili dato che non esiste la possibilità di definirle o anche solo di rinominarle.

Poi ci sono i registri di sistema elencati nella tabella dell'appendice A. Non tutti questi registri sono scrivibili ed i più utilizzati hanno anche un alias come audio per s0 o subtitle per s2. Anche i registri di sistema sono interi a 16 bit.

Abbiamo detto che c'è la possibilità di fare salti a filmati e menu, ma ci sono alcune limitazioni di cui bisogna tenere conto.

Dal VMGM possiamo saltare a:

  • Qualsiasi menu all'interno del VMGM stesso
  • Qualsiasi filmato del DVD
  • Il primo menu di ogni titleset (in effetti leggendo la documentazione sembra si possa fare qualcosa di più utilizzando un attributo entry nei menu, personalmente non sono mai riuscito a far funzionare la cosa)

Dall'interno di un titleset possiamo saltare a:

  • Qualsiasi menu, filmato o capitolo all'interno del titleset stesso
  • Qualsiasi menu del VMGM

Vedremo in seguito come superare questi limiti posizionando menu e filmati in maniera opportuna e sfruttando alcuni menu fittizi non visualizzati come contenitori per il codice.

Inizio pagina
 
Precedente
Sommario
Successivo