Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Quando VMR combina più flussi di input, posiziona ogni flusso all'interno di un rettangolo normalizzato, denominato "spazio di composizione". All'interno dello spazio di composizione, le coordinate (0,0, 0,0) a (1,0, 1,0) formano il rettangolo video visibile. Tutte le coordinate che rientrano all'esterno di questo rettangolo vengono ritagliate.
Un'applicazione può eseguire effetti speciali con lo spostamento, l'estensione e la compattazione del video da un flusso di input, modificando il rettangolo di destinazione nello spazio di composizione per tale flusso. Se il rettangolo specificato è di dimensioni diverse rispetto al rettangolo video nativo, il video nativo verrà ridotto o esteso per adattarsi. Il rettangolo di destinazione viene specificato chiamando il metodo IVMRMixerControl::SetOutputRect.
Si supponga, ad esempio, che il flusso 0 (che corrisponde al pin 0) contenga il flusso video principale e il flusso 1 (che corrisponde al pin 1) contenga un video secondario. Flusso 1 può essere posizionato completamente fuori schermo specificando un rettangolo normalizzato di { -1.0f, 0.0f, 0.0f, 1.0f }. Il flusso 1 può quindi essere spostato nell'area visibile modificando i lati sinistro e destro del rettangolo nelle chiamate successive a SetOutputRect:
| Etichetta | Valore |
|---|---|
| Ore | Rettangolo |
| t + 0 | { -1.0f, 0.0f, 0.0f, 1.0f } |
| t + 1 | { -0.9f, 0.0f, 0.1f, 1.0f } |
| t + 2 | { -0.8f, 0.0f, 0.2f, 1.0f } |
| ... | ... |
| t + 10 | { 0.0f, 0.0f, 1.0f, 1.0f } |
Al momento t+10, il video del flusso 1 è completamente visibile. In questo esempio le dimensioni native del flusso 1 sono state mantenute durante lo spostamento. È anche possibile estendere o compattare il rettangolo per produrre effetti interessanti. Puoi anche capovolgere il video verticalmente, specificando un valore maggiore per l'alto rispetto al basso o speculare orizzontalmente il video, specificando un valore maggiore per sinistra rispetto a destra.
Argomenti correlati