Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Filmy a seriály, streamovací služby
Televize  |  Projektory
Audio a domácí kina
Multimediální centra  |  Ostatní
Svět hardware  |  Digimanie
Svět mobilně

Sonic Scenarist 3.díl - Začínáme s programováním

666dia (476)|30.7.2011 09:13
Každé DVD ke svému správnému chodu potřebuje program, který mu někdo zadá. K tomu slouží commandy (příkazy). A tady musíme, ač chceme nebo nechceme znát trošku teorie. Nebojte, nebudu vás moc zatěžovat.
Každý přehrávač má 16 registrů GPRM – pro vysvětlení si pod pojmem registry GPRM představíme jako chlívky, kam můžeme ukládat prasátka a zase je odtamtud vybírat – kam můžeme uložit číslo od 0 do 65535. Pak jsou tu ještě registry SPRM, což jsou systémové registry a je jich 24. Ty zatím potřebovat nebudeme, takže vás s nimi nebudu zatím zatěžovat.
Máme 4 druhy příkazů a to pre commandy, post commandy, cell commandy a Button commandy.
Na obrázku vidíme jak jsou uspořádány:



Myslím, že je to jasné – přehrávač přečte precommand ještě před přehráváním příslušné PGC postcommand po přehrátí. Cellcommand vykoná příkaz po přehrátí cell. To žluté ouško znamená, že jsou tam obsaženy commandy, bílé je bez commandů. Dál to zatím vysvětlovat nebudeme.
A teď si upravíme projekt, který jsme vytvořili tak, aby se při každém zmáčknutí menu změnila zvuková stopa.
Toto je zápis z PgcEditu. Vypadá to takto:

1. (if gprm1==1) goto 6
2. setSTN set Audio stream = 1, set Sub-picture stream = 1, off
3. set gprm1, 1
4. goto 8
5. break
6. setSTN set Audio stream = 2, set Sub-picture stream = 1, on
7. set gprm1, 0
8. RSM
9. jump to TTN 1 in this VTS

toto je v dummy pgc (root)


před filmem třeba toto:
1. if (gprm1 == gprm14) setSTN set Audio stream = 1, set Sub-picture stream = 1, off
2. set gprm1, 1


Proto by bylo nejlepší si nachystat projekt, aby obsahoval dvě zvukové stopy a jednu titulkovou, ať to máme všichni stejné. První stopa bude česká, druhá anglická (nebo i jiná, podle toho, co máte za film) a jedna titulková – česká.
Jdeme na to. Na záložce Scenario Editor klepneme na PGC, až nám ve všech rozích bude svítit modře:



Otevřeme si okno 5 – Simulation Window a jak vidíme na obrázku v horním kroužku je nápis Pre se šipečkou.



Když na ni klikneme, rozbalí se nám nabídka a uvidíme, že zde můžeme upravovat precommandy, postcommandy a cellcommandy.
My tam teď doplníme toto:
if (gprm1 == gprm14) setSTN set Audio stream = 1, set Sub-picture stream = 1, off
2. set gprm1, 1

Necháme tedy Pre a odstraníme fajfku u No Command. Okamžitě se nám v v okně Command listu objeví první command (1:Nop). Tento command je sice ve specifikaci, ale některé přehrávače jej nemají rády, takže jej nejraději dávám pryč. Znamená nevykonej nic, jen zabírá místo.
Pod No Command se nám taky objevilo nové okýnko s Commandy – teď je tam nápis No Operation. Rozklikneme jej a vložíme příkaz Set Angle/Audio/Sub-picture a nastavíme podle obrázku:



(pokud je gprm 1 rovno gprm 14 nastav audio stopu na 1 zvuk, titulkovou vypni)

Vedle No Command máme dvě tlačítka – Add a Delete. Zmáčkneme Add, tím přidáme další command – Set to GPRM podle dalšího obrázku:



Vlož do gprm (chlívku) hodnotu (prasátko) 1. Tím máme nastavení u filmu hotové.

Teď budeme potřebovat dummy (prázdné) root menu. Klikneme pravým tlačítkem na složku s oranžovým diskem VTS_1, otevře se kontextové menu a klikneme na předposlední položku Add Language (přidat jazyk, ale ve skutečnosti je to přidat manager do VTS, jazyk dávám angličtinu, nemá to praktický význam, kdybyste přidali češtinu), objeví se Select Language, vybereme English a potvrdíme OK. Složku si přetáhneme myší, kam chceme, nejlíp co nejblíž složce VTS_1. Na ni klikneme zase pravým tlačítkem a na poslední položku Add PGC klikneme levým tlačítkem, potvrdíme OK.. Vznikla buňka s názvem PGC_1. Vlevo nad precommandem má ještě jedno ouško s nápisem Root. Takže máme dummy root menu.
Vložíme commandy podle obrázku:



Obrázek jsem upravil, aby se tam vešly všechny commandy, jinak se jich tam vleze jen 7.
Bohužel se mi nechce vysvětlovat vložení každého commandu zvlášť.

A teď vám vysvětlím funkci.
Po prvním spuštění filmu se načtou commandy před filmem (zvuk 1, titulky vypnuté), ale do gprm 1 se vloží číslo 1.
Zmáčkneme menu a v root menu se načtou precommandy. A hned první nás pošle na 6 řádek, protože je v gprm 1 číslo 1. Tam nastaví zvuk 2 a zapne titulky, vzápětí uloží do gprm hodnotu 0. Další command určí, že má skočit na to stejný místo ve filmu. Command 9 tam být nemusí, ale kdyby nějaký command přehrávač nepřečetl, je to pojistka, aby skočil do filmu a nezkolabovalo DVD.
A protože jsme vložili do gprm 1 hodnotu 0 (na 7 řádku) další zmáčknutí menu nevykoná command 1, protože se nerovná gprm 1 jedničce. Proto nastaví ve druhém řádku znovu zvuk 1 a vypne titulky. Vzápětí vloží do gprm zase 1 a 4 řádek ho zase odpálí na řádek 8 – na resume, tedy skoč zase do filmu, kde jsi odešel. 5 řádek je tam zase taková rezerva, nemusí tam být. A tak se to opakuje pořád dokola.
Tím jsme vytvořili první program na DVD.

Konec třetího dílu.
StD (8612)|30.7.2011 09:29
K tomu předposlednímu kroku Select Language ve VTS_1 bych jen dodal, že u jednoduchých filmů není vůbec potřeba - nic se bez něj nestane, jazykové stopy jsou nastavené, jen to při tvorbě struktury DVD po multiplexu zahlásí informaci "No Language found in database"...