![]() |
Cytat:
Chodzi o to jak tego typu informacje wpisać do porgramu PGC przed wyświetleniem menu (zakładając, dla uproszczenia, że jest to film w którym nie jest inicjowna ścieżka z napisami i dzwiękiem). Ogólnie dzięki za wskazówki - na pewno się przydadzą. Jednak zadstanawiam się dlaczego twórcy DVDRemake (jednego z moich ulubionych programów) nie dali tego jako opcji..... (tego tzn. domyślną ścieżka audio i napisów, przed wyświetleniem menu). Uf ostatnio jestem mocno zajęty, ale w przyszłości postaram się to rozpracować... jak się uda to rezulaty przedstawie na forum dla potomnych:) Oby tylko potomni nie używali już w tym czasie dysków holograficznych hehe :):):) |
Jeśli kiedykolwiek programowałeś - nie powinno Ci to sprawić problemów. Ważne jest tylko uzmysłowienie sobie kilku rzeczy:
1. Podstawą każdego programu jest korzystanie ze zmiennych w których można przechowywać pewne wartości. W odtwarzaczu DVD zmienne te tworzą rejestry GPRM (od 0 do 15 odczyt/zapis) - czyli mamy do wykorzystania teoretycznie 16 zmiennych. Na tych rejestrach możemy przeprowadzać operacje arytmetyczne, logiczne, możemy porównywać ich zawartość. 2. Odtwarzacz DVD posiada także 24 rejestry SPRM (do odczytu) w których znajdują się interesujące informacje o stanie odtwarzacza takie jak ustawiony język menu, preferowany język audio, podpisów, czy numer wybranego przycisku. W jednym z ków omawiałem znaczenie niektórych SPRM - poszukaj. To najistotniejsze - niektóre z rejestrów SPRM można też zapisać; np. zapis wartości do SPRM(1) powoduje zmianę odtwarzanej ścieżki audio, a zapisując SPRM(2) zmieniamy wyświetlanie podpisów. 3. Nie wszystkie instrukcje możemy wstawiać w każde miejsce - tu ułatwieniem okaże się PGCEdit, który sprawdza poprawność wprowadzonej instrukcji i w przypadku błędu podświetla linię na czerwono. 4. Nie można skakać bezpośrednio pomiędzy VTSami - jeśli chcesz przed filmem puścić jakieś intro znajdujące się w innym VTS niż film, to jego wywołanie (a później powrót) musi się odbywać pośrednio, poprzez video managera (VMG). 5. W danym PGC wykonywane są najpierw instrukcje 'pre commands', później odtwarzany jest materiał, po zakończeniu odtwarzania każdej komórki wykonywane są 'cell commands', po zakończeniu odtwarzania - 'post commands' Idea programowania jest oczywista - chodzi o zapewnienie właściwego odtwarzania przygotowanego materiału. Jeśli mamy tylko film, bez dodatków i menu, całość może ograniczyć się do jednej instrukcji - w First play PGC (którego instrukcje wykonywane są zawsze jako pierwsze po włożeniu płyty) wstawiamy instrukcje skoku do VTS z filmem (Jump to Title 1) i to wystarczy ;) Jeśli chcemy zainicjować odpowiednio audio i subs przed uruchomieniem filmu, to w pre commands VTST z filmem wstawimy np. instrukcje: Set Audio stream = 0 Set Sub-picture stram = 1, on Przy bardziej złożonych strukturach, zawierających menu, musimy już 'obsłużyć' sprawdzanie wybranego przycisku w menu i przekazać w zależności od tego sterowanie w odpowiednie miejsce - program nam się rozrasta, trzeba wykorzystać GPRM do przechowania numeru naciśniętego przycisku: Set GPRM(0) = (mov) SPRM (8:Highlighted button number) a ponieważ SPRM(8) zawiera wartości (numer klawisza * 1024) możemy podzielić zawartość rejestru przez 1024: Set GPRM(0) /= (div) 1024 by w rejestrze GPRM(0) przechowywać numer przycisku. Teraz możemy wykorzystać instrukcję warukową if , by w zależności od wybranego przycisku przekazać sterowanie w odpowiednie miejsce: 10 if ( GPRM(0) != 1) then (GOTO line 12) 11 LinkPGCN 2 12 LinkPGCN 3 I tak dalej, i tym podobnie :D Walcz! |
Dzięki Reetou. Teraz by się przydał jakiś prosty przykład programu programu PGC z omowieniem (choć malutkim) co po kolei robi każda instrukcja (oczywiście najlepiej w j. polskim:) ). [takie łagodne wprowadzenie do DVD Authoring'u ze szczególnym uwzględnieniem tworzenia programu PGC (reszta już mi tak nie interesuje)], muszę chyba jeszcze przejrzeć artykuły w cdrinfo pod tym kątem...
|
|
chris996 -> dzi***281;ki za pomoc, ale to wszystko ju***380; by***322;o wiadome... (jak poczytasz dok***322;adnie ten w***261;tek)
na razie staneli***347;my na tym, jak zainicjowa***263; ***347;cie***380;k***281; dzwi***281;kow***261; np. polsk***261; (ewentualnie napisy) w filmach gdzie nie jest ona inicjowana... cho***263; troszke straci***322;em nadzieje, ***380;e kiedykolwiek b***281;d***281; to potrafi***322;... ps. Nikt nie zna linka gdzie s***261; informacje (w j. polskim) o sk***322;adni PGC? |
To taki sposób jak piszesz to uzyskałem programem ifoedit w tym temacie: http://forum.cdrinfo.pl/dvd-video/44...ed-filmem.html
I teraz wystarczy zamienić komedę "(JumpSS_VMGM) Jump to VideoManager Menu" na "(JumpSS_VTSM) Jump to Titleset Menu" i ustawić root menu. Na PGCedit, wygląda to tak: (JumpSS) Jump to VTSM 1, Root Menu (TTN 1), I już płyta bez problemu wystartuje od menu :) |
Nie ma sensu kombinowa***263;? :>
Tylko po co stosowa***263; t***261; metod***281;... Wystarczy***322;o by wpisa***263; w First Play PGC tylko jedn***261; komend***281;: 1. Start od filmu -> Jump to Title 1 lub 2. Start od menu -> Jump to VTSM 1, Root menu Efekt uzyskasz ten sam, co teraz - jak chcesz, to przetestuj. Tylko nie o to chodzi w metodzie opisanej przez Robs'a... |
Aaa... teraz już wiem o co chodzi. U mnie ze zdjęcia wynika, że nieużywane rejestry są od numeru 1 do 15. A ja wybrałem ten ostatni, czyli 0.
Ale i tak film włącza się od głównego menu, lub jeśli ustawie na start płyty od filmu, więc dla mnie jest ok. Nie ma sensu kombinować :spoko: |
Czemu b***322;***261;d w kroku 2?
Istota metody polega na wykorzystaniu _nieu***380;ywanego_ (unused) rejestru GPRM do realizacji nowego sterowania. A co si***281; dzieje u Ciebie? Na p***322;ycie u***380;ywany jest tylko jeden rejestr GPRM(0) - i w***322;a***347;nie ten rejestr wybra***322;e***347; do nowego sterowania :P |
Mi dokładnie chodziło o krok 6, czyli funkcję wstawić zamiast "break". Tutaj jest różnica w porównaniu moich dwóch zdjęć.
A czemu błąd w kroku 2. Tu wychodzi mi gprm(0), więc jest dobrze. W każdym razie już film się odpala z menu. Włączałem go 3 razy, więc jest ok :) Moje modyfikacje pgcedit: http://img55.imageshack.us/img55/7769/gprm29hn.jpg http://img412.imageshack.us/img412/4897/pgcmenu24tb.jpg http://img412.imageshack.us/img412/8...playpgc8kt.jpg |
B***322;***261;d pope***322;ni***322;e***347; w kroku 2 (i nie pami***281;ta***322;e***347; o nim w kroku 5) i w 6 :P
Ciekawe, czy usun***261;***322;e***347; wszystkie b***322;***281;dy, czy ruszy***322;o Ci przypadkiem ;) |
Ok już wszystko działa :P Świetna metoda :)
Poprostu pojawił się u mnie błąd w kroku 5. I już możemy oglądać film bez reklam :D |
Metoda jest OK.
Je***347;li chcesz, ***380;eby dzia***322;a***322;o u Ciebie, to wykonaj _dok***322;adnie_ wszystkie punkty. W Twoim przypadku naci***347;ni***281;cie klawisza w***322;***261;czaj***261;cego film powoduje ponowne w***322;***261;czenie menu - to si***281; dzieje ;) |
OK metoda "start płyty od filmu" działa, również po przez ifoedit. Ale już metoda "start do menu" nie działa. Menu się włącza, ale po wciśnięciu przycisku start filmu, nic się nie dzieje. Ustawienia PGCEdit:http://img194.imageshack.us/img194/2374/pgc37mn.jpg
|
Znalaz***322;e***347; nieu***380;ywany rejestr?
To skopiuj pomara***324;czowy wpis z pkt. 5 przy numerze tego rejestru i wklej (Paste after) w pre commands. Uzyskasz wpis np. : 1 if ( gprm(0) != 0 ) then { Goto line 4 } 2 Set gprm(0) =(mov) 1 3 Break 4 NOP dla rejestru GPRM(0). |
| Wszystkie czasy w strefie CET. Aktualna godzina: 18:02. |
Powered by vBulletin® Version 3.9.0 LTS
Copyright ©2000 - 2026, vBulletin Solutions Inc.