MSDV Driver
[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.
MSDV è il driver WDM (Microsoft Windows Driver Model) per i dv. Il driver viene visualizzato come filtro DirectShow quando il dispositivo è collegato. Viene enumerato in due categorie di filtri:
- CLSID_VideoInputDeviceCategory ("Origini acquisizione video")
- AM_KSCATEGORY_RENDER ("dispositivi di rendering di streaming WDM")
Il nome descrittivo del filtro è Microsoft DV Camera and VCR
o un equivalente localizzato. In alcuni dispositivi, la proprietà Description contiene una descrizione del modello specifico, che può essere usata invece del nome descrittivo generico. Per altre informazioni, vedere Selezione di un dispositivo di acquisizione.
MSDV ha due pin di output. Un pin fornisce fotogrammi DV che contengono dati audio e video interleaved. L'altro pin fornisce fotogrammi solo video senza audio. MSDV non può eseguire lo streaming da entrambi i pin contemporaneamente, quindi è possibile connettere un solo pin di output alla volta. Per altre informazioni sull'acquisizione di video da un dispositivo DV, vedere Capture DV to File.
La maggior parte dei dvd ha una subunit videoregistratore (VTR), che può trasmettere i dati dal nastro al computer. Per l'applicazione, l'acquisizione da nastro funziona come l'acquisizione di video live. L'unica differenza è che l'applicazione deve controllare il trasporto su nastro esterno, avviare e arrestare il nastro, riavvolgere e così via. A questo scopo, MSDV espone le interfacce IAMExtDevice, IAMExtTransporte IAMTimecodeReader. Per altre informazioni sul controllo di una VTR, vedere Controllo di un DV.
È anche possibile trasmettere DV dal computer alcamere. Il video può quindi essere visualizzato nella schermata di onboarding della videocamera o registrato su nastro. Per supportare questa funzionalità, MSDV ha un pin di input che può ricevere un flusso DV interleaved. Quando il pin di input è connesso, MSDV funge da filtro renderer anziché come filtro di acquisizione. MSDV non supporta la ricerca in questa modalità. Per altre informazioni sull'invio di dv al dispositivo, vedere Trasmettere DV da file a nastro.
Si noti che i pin di input e output non possono essere connessi contemporaneamente, perché il dispositivo non può eseguire lo streaming in entrambe le direzioni contemporaneamente.
In molte videocamere, il passaggio tra la modalità VTR e la modalità fotocamera fa sì che il dispositivo si spegne. Di conseguenza, DirectShow potrebbe perdere il dispositivo quando l'utente cambia modalità. Per informazioni sugli eventi di rimozione dei dispositivi, vedere Notifica di rimozione del dispositivo.
Osservazioni
Per informazioni sui formati DV supportati dal driver MSDV, vedere sottotipi video DV.
Alcuni suggerimenti sulla creazione di grafici di filtro con MSDV:
Non è possibile usare IGraphBuilder::Render per eseguire il rendering di un pin di output in MSDV. Filter Graph Manager tenta di connettere il pin di output al pin di input di MSDV, che ha esito negativo. Usare invece IGraphBuilder::Connect o ICaptureGraphBuilder2::RenderStream.
Quando un grafico di filtro contiene MSDV, MSDV deve fornire l'orologio di riferimento per il grafico. A partire da DirectX 8.0, Filter Graph Manager sceglierà automaticamente MSDV come orologio di riferimento. Con le versioni precedenti, è necessario chiamare il metodo IMediaFilter::SetSyncSource in Filter Graph Manager. Per altre informazioni sugli orologi, vedere Time and Clocks in DirectShow.
A seconda del dispositivo, alcuni metodi in IAMExtDevice, IAMExtTransporte IAMTimeCodeReader potrebbero restituire codici di errore di Windows anziché valori di HRESULT. I codici di errore possibili includono quanto segue.
Codice errore Descrizione ERROR_TIMEOUT Timeout di un comando del dispositivo esterno. ERROR_REQ_NOT_ACCEP Il dispositivo non ha accettato questo comando del dispositivo esterno. ERROR_NOT_SUPPORTED Il dispositivo non supporta questo comando del dispositivo esterno. ERROR_REQUEST_ABORTED Un comando del dispositivo esterno è stato interrotto. Probabilmente il dispositivo è stato rimosso o si è verificato un ripristino del bus.
Informazioni sul dispositivo
In Windows Millennium Edition e Windows XP il moniker del dispositivo del filtro DV supporta una proprietà Description oltre alla proprietà friendlyName . Questa proprietà restituisce una descrizione del dispositivo, ricavata dal file INF, che in genere contiene il nome del marchio del dispositivo. Questa proprietà non è supportata per tutti i modelli di dispositivo, tuttavia.
Per altre informazioni sui moniker del dispositivo, vedere Uso dell'enumeratore di dispositivi di sistema.
Clock Times
Il driver MSDV usa l'orologio del bus 1394 contenuto nei pacchetti di dati 1394 per derivare l'orologio. Usa questi valori per timestamp degli esempi di supporti DV. Poiché questo orologio di origine non è l'orologio di sistema del computer, l'ora alla fine deriva dall'orologio del sistema del computer. Come indicato in precedenza, tuttavia, per impostazione predefinita, Filter Graph Manager selezionerà MSDV come orologio di riferimento del grafo.
L'interfacciaIAMDroppedFramessegnala la misura corrente del driver dei fotogrammi eliminati; questo valore potrebbe non essere perfettamente sincronizzato con il numero effettivo di fotogrammi eliminati in un determinato momento. Se i fotogrammi vengono eliminati, indica che il sistema non è bilanciato (la produzione di dati supera il consumo di dati). Ad esempio, il disco rigido dell'utente potrebbe non essere abbastanza veloce per supportare le frequenze di acquisizione DV.
Argomenti correlati