Reclock è morto, lunga vita a Reclock: cosa verrà dopo?

Basta essere fuori dal punto di stutter e sei stutter free ,quindi una via di mezzo per accontentare tutte le risoluzioni/refresh/resize ffdshow al limite si trova.
Poi in DXVA e' automaticamente disabilitata , in NTSC non funziona granche' bene , reclock ogni tanto ne perde il controllo ... almeno cosi' dice Vern ed io ho solo un DVD NTSC e sembra vero .
Se poi ti capica il TS che switcha tra 24 e 30 fps auguri ;)
 
ciuchino ha detto:
Basta essere fuori dal punto di stutter e sei stutter free ,quindi una via di mezzo per accontentare tutte le risoluzioni/refresh/resize ffdshow al limite si trova.
Poi in DXVA e' automaticamente disabilitata , in NTSC non funziona granche' bene , reclock ogni tanto ne perde il controllo ... almeno cosi' dice Vern ed io ho solo un DVD NTSC e sembra vero .
Se poi ti capica il TS che switcha tra 24 e 30 fps auguri ;)
Ah beh :D ... fai più danni che altro...

Per il 24/30 allora lo script potrebbe far comodo... teoricamente lo script vbs viene eseguito ogni tot secondi.
 
stealth82 ha detto:
Per il 24/30 allora lo script potrebbe far comodo... teoricamente lo script vbs viene eseguito ogni tot secondi.

Si soprattutto con TT in exclusive ... ogni tot secondi si chiude TT , powerstrip cambia risoluzione e refresh e poi rilanci TT ;) .
Avevo chiesto sul forum di TT di poter selezionare il renderer audio a secondo se DVD/HD/Media un po' come il video , ma sembra che sia l'unico a volerlo ... sono democratico per cui con alcuni file uso ZP :D
 
ciuchino ha detto:
Veramente questo e' IT ... l'OT erano l'iciap e l'ici :D

Se sei in DXVA reclock non puo' controllare il Vsync.
Molti di questo post usano Ffdshow per cui sono in software.
Se invece sei in software non saprei.

Ciao :)
Antonio

Anche disabilitando DXVA in TT, Purevideo in systray parte ugualmente..e quindi niente vsync

ciao
 
ciuchino ha detto:
Bisogna provare ma e' il problema riportato nel primo post ... io ci ho ricamato sopra ;)

http://www.theatertek.com/Forums/showthread.php?t=8342
OK, ho cambiato lo script, ora è un po' più user friendly e non necessita più di essere modificato per inserire i timings.

Secondo me funziona molto bene... non ho provato quello precedente, ma l'unico problema di steal focus lo da se PowerStrip è spento.
Volete favorire? Potete così confermarmi se avete lo stealing focus o meno :)


EDIT:
come non detto... sembra ci sia qualche problemino in fase di chiusura...
 
Ultima modifica:
stealth82 ha detto:
EDIT:
come non detto... sembra ci sia qualche problemino in fase di chiusura...

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 ;)

@carlobs
Non vedo che connessione ci sia tra il codec Nvidia in systray ed il Vsync di reclock.
 
Ultima modifica:
ciuchino ha detto:
@carlobs
Non vedo che connessione ci sia tra il codec Nvidia in systray ed il Vsync di reclock.

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
 
carlobs ha detto:
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
 
ciuchino ha detto:
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:
 
stealth82 ha detto:
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.
 
stealth82 ha detto:
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:

  1. 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
  2. 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)
  3. 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 ;)
  4. 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ì.
  5. 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
  6. 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

Lo script in allegato, naturalmente, rinominatelo in vbs. L'indirizzo dove scaricarlo qui:

1.5beta8 - rimosso
1.6 - http://www.webalice.it/volpato.s/htpc/reclock/RunEvent.txt

Se avete domande sono qui :)
 
Ultima modifica:
stealth82 ha detto:
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 ;)
 
ciuchino ha detto:
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)

ciuchino ha detto:
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
 
Top