Visualizzazione Stampabile
-
Citazione:
Originariamente scritto da carlobs
Bè... parte Purevideo in systray con accelerazione hardware attiva, tanto che guardando la pagina delle info in TT come decoder rimane cmq sempre DXVA, anche disabilitandolo, appunto in TT.
ciao
Allora il problema e' come ti avevo detto la DXVA ... io se la disabilito da TT si disabilita dal codec visto che TT agisce direttamente nei registri Nvidia.
Ma meglio che controllo perche' uso Ffdshow , quindi anche se la DXVA la lascio abilitata in TT , poi non puo' essere usata verificabile chiaramente anche dal systray.
Ciao
-
Citazione:
Originariamente scritto da ciuchino
Va be' dai e' un passo avanti.
Se vuoi condividire lo script lo provo anchio e ti dico , anche se il cambio risoluzione/refresh lo potrei gia' fare con i DVD con Anydvd ed il resto a manina ;)
Sto indagando fra i metodi di shell in VB. Quando esaurisco le possibilità poi passo lo script ;)
Cmq mi sembra strano lo stesso... anche il codice originale ha lo stesso problema... non è una questione di renderless (per sicurezza ho avviato TT in windowed). Tutto viene eseguito correttamente poi esci da TT ed il programma, "visivamente" si chiude. Tuttavia, se guardi nel TaskManager c'è ancora il processo. E' come se chiudesse il programma ma automaticamente lasciasse un'istanza hide dello stesso. Questo puoi già verificarlo...
Non è tanto un problema di aver modificato qualcosa tramite script (magari in seguito al lancio di pstrip) in quanto, se commento alcune sue parti in modo che non vengano eseguite, il problema rimane... come se fosse il richiamo dello stesso script, qualunque sia il codice scritto, a presentare il problema.
Se i sorgenti fossero free :rolleyes:
-
Citazione:
Originariamente scritto da stealth82
Sto indagando fra i metodi di shell in VB. Quando esaurisco le possibilità poi passo lo script ;)
Risolto alla grandissima... ora vado via... ma torno fra un'oretta e mezza.
Questo, quindi, è un post inutile, ma ero troppo contento e volevo dirlo a qualcuno :D
Nel mio prossimo (post ovviamente) la soluzione. Ci vediamo fra poco.
-
Citazione:
Originariamente scritto da stealth82
Nel mio prossimo (post ovviamente) la soluzione. Ci vediamo fra poco.
Allora, lo script funziona meglio di prima... ma ad accorgermi bene rimane il problema che TT non viene chiuso completamente. Chi vuole provare e confermarmi.
A parte questo, ho dovuto eseguire delle modifiche, rispetto alle mie prime, in quanto era ffdshow che faceva danni...
Di seguito riporto le modifiche:
- Ho inserito questa nuova funzione per controllare se un processo è attivo (in questo caso PowerStrip):
Codice:
Function IsProcessRunning(strServer, strProcess)
Dim process, strObject
IsProcessRunning = False
strObject = "winmgmts://" & strServer
For Each process in GetObject( strObject ).InstancesOf("win32_process")
If UCase(Process.name) = UCase(strProcess) Then
IsProcessRunning = True
Exit Function
End If
Next
End Function
- Ho spostato il messaggio di debug in una funzione di nome showDebug.
Ho aggiunto il sottostante codice, all'inizio dello script, per evitare il problema con ffdshow.
Codice:
' Workaround if the player runs with ffdshow
WScript.sleep(1000)
- Ho "elegantizzato" (si dice elegantizzato :confused:) il codice relativo ai timings. Prima erano inseriti all'interno dello script, il che obbligava a fare modifiche direttamente sul file e ripetere gli stessi 2 volte, uno per il PCM e l'altro per lo SPDIF. Ora imposto ciò che ho chiamato newRefreshRate con un valore unico e sempre valido.
Codice:
' We will put new timings here if necessary
newRefreshRate = ""
' Obviously we have something to do only if the icon is yellow
If eventName = "YELLOW" Then
If soundMode = "PCM" Then
Select Case mediaType & ":" & currentResolution
Case "CINEMA:1280x720"
If currentRefreshRate <> "48" Then newRefreshRate = "48" ' 71.928 hz
Case "PAL:1280x720"
If currentRefreshRate <> "50" Then newRefreshRate = "50" ' 50 hz
Case "NTSC:1280x720"
If currentRefreshRate <> "60" Then newRefreshRate = "60" ' 59.98 hz
End Select
ElseIf soundMode = "SPDIF" Then
Select Case currentResolution & "x" & originalPlaybackSpeed
Case "1280x720x23976"
If currentRefreshRate <> "48" Then newRefreshRate = "48" ' 71.928 hz
Case "1280x720x25000"
If currentRefreshRate <> "50" Then newRefreshRate = "50" ' 50 hz
Case "1280x720x29970"
If currentRefreshRate <> "60" Then newRefreshRate = "60" ' 59.98 hz
End Select
End if
End If
Chiaramente, nei Select Case, dovrete aggiungere le vostre risoluzioni ma le diciture rimarranno le stesse ;) - Ho cambiato il trap di ripristino refresh di default non sull'evento QUIT ma sullo STOP. Ho fatto delle prove ed il quit viene invocato all'inizio della riproduzione di un media... lo stop solamente alla chiusura del programma. Non ho capito quindi perchè era impostato così.
- All'atto del cambio di refresh ho cambiato i metodi di invocazione. Lo script prevede in automatico di recuperare la posizione della propria cartella programmi (perciò si evita di dover modificare "C:\Program Files" in "C:\Programmi" o viceversa) dando per scontato il fatto che PowerStrip sia installato sotto tale cartella.
La precedente invocazione - per verificare la presenza del processo o meno - implicava collateralemente lo stealing focus dell'applicazione (ecco perciò il problema dello script che kickava fuori dal player quando in modalità renderless).
Tuttavia, se PowerStrip non sarà avviato al momento dell'esecuzione dello script, il lanciare tale programma causerà lo stesso effetto collaterale (strano, considerando il codice, tuttavia mi importa poco: io ho sempre PowerStrip avviato). Se entro 3 secondi PowerStrip non è avviato verrà eseguito il prompt di errore "Unable to launch PowerStrip".
Codice:
If newRefreshRate <> "" Then
' Opening a shell to call an external application
Set wshShell = CreateObject("WScript.Shell")
' Getting the object to get environment variables
Set oProcEnv = wshShell.Environment("PROCESS")
' Get the Program Files directory
sProgramFiles = oProcEnv("ProgramFiles")
' We check for existence of PowerStrip process
If Not IsProcessRunning("localhost", "pstrip.exe") Then
WshShell.Run """" & sProgramFiles & "\PowerStrip\pstrip.exe""", 7, False
retries = 0
Do While Not IsProcessRunning("localhost", "pstrip.exe")
If retries < 3 Then
WScript.Sleep(1000)
retries = retries + 1
Else
MsgBox "Unable to launch PowerStrip", MB_OK, "ReClock Event Notification"
' We have done nothing. Return 1 to indicate ReClock that
' the configuration has not changed
WScript.Quit 1
End If
Loop
End If
- Ma allora dove sono i timings? Ho previsto di creare una sottocartella all'interno della cartella di PowerStrip di nome Timings. Sapete che è possibile creare gli shortcuts dei timings PowerStrip, vero? Come da screenshot sotto, create gli shortcuts e spostateli in questa cartella rinominandoli nel seguente modo: risoluzione orizzontalexrisoluzione verticalexrefresh.
Codice:
' Now run Powerstrip command and wait for it to finish its job
wshShell.Run "%comspec% /C """ & sProgramFiles & "\PowerStrip\Timings\" & _
currentResolution & "x" & newRefreshRate & ".lnk""", 7, False
http://www.webalice.it/volpato.s/htp...ock/tn_rps.jpg
Lo script in allegato, naturalmente, rinominatelo in vbs. L'indirizzo dove scaricarlo qui:
1.5beta8 - rimosso
1.6 - http://www.webalice.it/volpato.s/htp...k/RunEvent.txt
Se avete domande sono qui :)
-
Citazione:
Originariamente scritto da stealth82
Lo script in allegato, naturalmente, rinominatelo in vbs. Se avete domande sono qui :)
Che dire COMPIMENTI funziona ;)
Ti devi far dare il sorgente di reclock ...
L'ho provato al volo e sembra funzionare anche con TT in exclusive.
Naturalmente non potevo esimirmi da provare col TS ad FPS variabile , durante la visione ogni tot secondi mi cambiava il refresh da 48 a 60 ... ma l'ho fatto solo per divertimento.
Domani non ho tempo probabilmente ma Giovedi' lo provo meglio.
Ciao ;)
-
lo script non mi serve purtroppo ma volevo fare i complimenti a stealth82 per l'impegno e la bravura
-
Citazione:
Originariamente scritto da stealth82
Se avete domande sono qui :)
It's wrote in italian language . Can you understand it? Maybe you can submit the page to a web translator engine
Da oggi sei ufficialmente un mio mito ... ;) :p
-
Citazione:
Originariamente scritto da ciuchino
It's wrote in italian language
Beh, qui mi sono accorto di aver fatto un errore grammaticale terribile :D
Dovevo scrivere "it's written" oppure "I wrote it". (ho corretto :p)
Citazione:
Originariamente scritto da ciuchino
Da oggi sei ufficialmente un mio mito ...
D'altra parte, non avevo mica voglia di riscrivere tutto in inglese :p
Che facciano un po' fatica loro ogni tanto :D
-
Stealth82, visto che sei un mito:D , ti tocca dare una mano in questo thread:
http://www.avsforum.com/avs-vb/showt...6&page=3&pp=30
Guarda l'ultimo post.
Michele
-
Citazione:
Originariamente scritto da stealth82
Dovevo scrivere "it's written" oppure "I wrote it". (ho corretto :p)
Quando gli fa' comodo capiscono lo stesso.
Quando non gli fa' comodo fan finta di non capire :) ... non intiendo :p
-
Citazione:
Originariamente scritto da Mike5
Immaginavo fosse un problema comune. Cmq sia, credo ci penserà l'utente al quale ho risposto sul thread di TT:
Citazione:
Originariamente scritto da hdtvrocks
Got it working stealth82... works great so far! Mind if I post it on avsforum? I think there were a few others that were trying to get it working in renderless as well.
Thanks again!
Naturalmente gli ho detto che non c'era nessun problema, figuriamoci :D
Citazione:
Originariamente scritto da ciuchino
Quando gli fa' comodo capiscono lo stesso.
Quando non gli fa' comodo fan finta di non capire :)... non intiendo :p
:D
-
Ottimo lavoro Stealth82... :)
I tuoi contributi al forum continuano ad essere preziosissimi...;)