Hallo Gast | Kostenlos registrieren | Einloggen

Das Forum hat Dir geholfen? Wir würden uns über eine kleine Spende freuen!  
Gehe zu:  
finalcutprofi.de Foren-Übersicht » FAQ
Neues Thema beginnen | Beitrag beantworten | | Druckansicht

<-- Thema: Forum: Bilder in Beiträge einbinden
Thema -->: IMX und DVD geht nur bedingt!!!
Autor Deine Nachricht
FAQ
Moderator


Anmeldungsdatum: 16.09.2004
Beiträge: 82

Erklärung der DVD-Playlist-Funktion
07.05.2007, 14:17

Vielleicht sieht's auf Anhieb etwas verwirrend aus,
dann versuch ich mal etwas Licht ins Dunkel zu bringen.
Ich bezieh' mich jetzt mal auf das dritte Beispiel, das "Advancede".

Alle Variablen werden beim Start der DVD auf 0 gesetzt.
Das passiert in dem Script "StartUp-ResetAll"

Die Variable "MaxAnzahl" zählt, wieviele Filme in die Playlist aufgenommen sind.
Der Wert wird jedesmal um 1 erhöht, wenn ein Film der Playlist hinzugefügt wird.
Das passiert in den Scriten "Set Filme X".
Wurden z.B. 9 Filme in die Playlist aufgenommen hat sie den Wert 9 und hält diesen
Wert, bis ein neuer Film der Playlist hinzugefügt oder die Playlist gelöscht wird.

Die Variable "BereitsGespielt" zählt, wieviele Filme aus der Playlist bereits
abgespielt wurden. Der Wert wird am Ende jeden Films um 1 erhöht.
Das geschieht in dem Script "von Filme"
Ist "BereitsGespielt" == "MaxAnzahl", kann man sicher sein, das alle Filme der
Playlist gespielt wurden.

Die Variable "EndlosOrNot" kennt nur zwei Werte. 0 oder 1.
Ist der Wert 0 wird die Playlist nur einmal abgespielt.
Ist der Wert 1 wird die Playlist geloopt.
Der Wert von "EndlosOrNot" wird nur in dem Script "von Filme" überprüft und ausgewertet.
Aber nur dann wenn die Playlist einmal komplett abgespielt wurde, also wenn "BereitsGespielt" == "MaxAnzahl".
Angenommen die Playlist ist jetzt einmal komplett abgespielt und soll geloopt werden:
Von Zeile 2 im Script "von Filme" wird zu Zeile 10 gesprungen, weil "BereitsGespielt" == "MaxAnzahl"
Und von dort aus weiter zu Zeile 29, da "EndlosOrNot" den Wert 1 hat.
In Zeile 29 wird die Variable "BereitsGespielt" auf 0 zurückgesetzt.
was soviel bedeutet wie: es wurde noch nix aus der Playlist abgespielt.
Von Zeile 30 geht's dann zurück zu Zeile 2.
Der Befehl in Zeile 2 wird jetzt ignoriert, da der Vergleich nicht mehr zutrifft.
Aber der nächste Befehl in Zeile 4 trifft zu und wird ausgeführt.


Das komplzierteste ist wohl das Zuweisen und Auswerten der Reihenfolge der abzuspielenden Filme.
In einem GPRM wird die Reihenfolge von 4(!) Filmen gespeichert.
In der Variablen "Film 1-4" wird die Abspielreihenfolge vom ersten bis zum vierten abzuspielenden Film gespeichert.
In der Variablen "Film 5-8" wird die Abspielreihenfolge vom fünften bis zum achten abzuspielenden Film gespeichert, usw.

Dazu wird die GPRM (virtuell) in 4 gleichgrosse Abschnitte unterteilt (partitioniert).
Ein GPRM ist 2 Byte gross das sind 16 Bits, die werden nun virtuell aufgeteilt in 4 Abschnitte von je 4 Bits.

Posted Image, might have been reduced in size. Click Image to view fullscreen.

Für einen Abschnitt von 4 Bits gibt es 16 verschiedene Möglichkeiten wie die Bits verteilt werden können.
Von "0000" über "0101" bis "1111" gibt es 16 Kombinationsmöglichkeiten. Die Kombinationsmöglichkeit "0000"
ignorieren wir mal, das würde es noch komplizierter machen, bleiben also 15 Möglichkeiten übrig.

Im Beispiel oben, von Abschnitt 1 sind die Bits 2 und 3 gesetzt. (Zählung der Bits beginnt bei 0)
Bit 2 hat den Dezimalwert von 4, Bit 3 hat den Dezimalwert von 8.
Addiert man die Dezimalwerte ergibt das 12.
Bedeutet: In der Reihenfolge wird als erstes Film 12 abgespielt.

Im zweiten Abschnitt sind die Bits 5 und 6 gesetzt. Addiert man die Dezimalwerte ergibt das 96.
Teilen wir das Ergebnis durch 16 kommen wir auf einen vernüftigen Wert von 6.
Wir tun also so, als würde Bit 4 einen Dezimalwert von 1 haben, Bit 5 den von 2, Bit 6 den von 4 und Bit 7 hätte
den Dezimalwert von 8. Analog dazu verfahren wir mit den Abschnitten 3 und 4


Klickt man im Menü auf einen Button, wird im Script "Set Filme" geguckt, wie viele Filme sich bereits in der Playlist
befinden. Von dort aus wird dann zu einem "Set Film X" Script gesprungen, um in der Reihenfolge den nächsten Film anzufügen.

In dem "Set Film X" Script wird zunächst "MaxAnzahl" um 1 erhöht.
Der "Hilfsvariable" wird der Wert von SPRM 8 zugewiesen, also welcher Button (Film) im Menü gedrückt wurde.
Der Wert der "Hilfvariable" wird durch 1024 geteilt, um auf einen Wert zwischen 1 und 15 zu kommen.
In einer Variable "Film X-XX" wird ja die Reihenfolge von je 4 Filmen abgespeichert.
Handelt es sich um den 1., 5., 9. oder 13. Film in der Reihenfolge wird der Wert der "Hilfsvariable" zu "Film X-XX" addiert.
Also, der Wert wird im ersten Abschnitt der GPRM gespeichert.

Die Reihenfolge 2., 6., 10 oder 14 wird im zweiten Abschnitt von "Film X-XX" gespeichert.
Daher muss der Wert von "Hilfsvariable" vorher mit 16 multipliziert werden und dann zu "Film X-XX" addiert werden.

Die Reihenfolge 3., 7., 11 oder 15 wird im dritten Abschnitt von "Film X-XX" gespeichert.
Daher muss der Wert von "Hilfsvariable" vorher mit 256 multipliziert werden und dann zu "Film X-XX" addiert werden.

Die Reihenfolge 4., 8. oder 12 wird im vierten Abschnitt von "Film X-XX" gespeichert.
Daher muss der Wert von "Hilfsvariable" vorher mit 4096 multipliziert werden und dann zu "Film X-XX" addiert werden.


Welcher Film abgepielt werden soll wird in den Scripten "Spiele Filme X-XX" ausgewertet. Wobei sich die Nummerierung
auf die Reihenfolge bezieht, nicht auf die Track-Nummer. Vielleicht etwas undurchsichtig beschriftet?
Erstmal wird die "Hilfsvariable" dort auf 0 gesetzt.
Dann wird geguckt wieviele Filme bereits gespielt wurden und über einen "Goto" Befehl wird zu der entsprechenden
Zeile in dem Script gesprungen.
Um die richtige Track-Nummer zu ermitteln müssen jeweils die 4 Bits die zu einem Abschnitt der Variable "Film X-XX"
überprüft werden. Das passiert mit dem "&"-Operator. Der guckt ob ein Bit gesetzt ist oder nicht.
Beispiel von oben, angenommen der 4. Film in der Reihenfolge soll ermittelt werden:
Die Reihenfolge ist in den Bits 12-15 gespeichert. Ist ein Bit gesetzt wird zur Hilfsvariable ein Wert addiert,
ist das Bit nicht gesetzt, wird nix addiert.

Bit 12 wird überprüft mit "add Hilfsvariable,1 & 4096" - Das Bit ist gesetzt, 1 wird zu "Hilfsvariable" addiert
Bit 13 wird überprüft mit "add Hilfsvariable,2 & 8192" - Das Bit ist gesetzt, 2 wird zu "Hilfsvariable" addiert
Bit 14 wird überprüft mit "add Hilfsvariable,4 & 16384" - Das Bit ist gesetzt, 4 wird zu "Hilfsvariable" addiert
Bit 15 wird überprüft mit "add Hilfsvariable,8 & 32768" - Das Bit ist nicht gesetzt, nicht wird zu "Hilfsvariable" addiert
"Hilfsvariable" hat jetzt ein Wert von 1 + 2 + 4 = 7

Film 7 soll also jetzt abgespielt werden.
Dazu wir in das Script "Spiele Film Nr" gesprungen, dort wird dann zu dem abzuspielenden Track gelinkt.

[michael s.]
FAQ ist offline Benutzer-Profile anzeigenPrivate Nachricht sendenZu Deiner Ignore-Liste hinzufügen
Beitrag beantworten Antworten mit Zitat
Beiträge vom vorherigen Thema anzeigen:   

<-- Thema: Forum: Bilder in Beiträge einbinden
Thema -->: IMX und DVD geht nur bedingt!!!

Ähnliche Beiträge
Thema Autor Forum Antworten vom
Keine neuen Beiträge Ignore-Funktion bei FCPX Rob Hotz Final Cut Pro X 38 20.01.2019, 02:10 Letzten Beitrag anzeigen
Keine neuen Beiträge Farbräder defekt? Hat jemand eine Erk... AXS Final Cut Pro X 17 02.01.2018, 11:48 Letzten Beitrag anzeigen
Keine neuen Beiträge Funktion zum aktualisieren alter FCP ... ben07 Final Cut Pro X 3 13.01.2017, 17:56 Letzten Beitrag anzeigen
Keine neuen Beiträge Highlight-Funktion als Keyer Rob Hotz Color Correction 2 10.05.2016, 12:34 Letzten Beitrag anzeigen
Keine neuen Beiträge Roter Voice Over Button ohne Funktion bubgum Final Cut Pro X 0 06.12.2014, 22:30 Letzten Beitrag anzeigen
finalcutprofi.de Foren-Übersicht » FAQ Seite 1 von 1

 

Impressum | Datenschutz