MSDV Driver

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture 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 le videocamere DV. Il driver viene visualizzato come filtro DirectShow quando il dispositivo è collegato. Viene enumerato in due categorie di filtro:

  • 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 anziché il 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 offre fotogrammi solo video senza audio. MSDV non può trasmettere 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 Acquisire DV to File.

acquisizione di dati dv dal dispositivo

La maggior parte delle videocamere DV ha una subunit di 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 nastro esterno, avviare e arrestare il nastro, riavvolgere e così via. A questo scopo, MSDV espone le interfacce IAMExtDevice, IAMExtTransport e IAMTimecodeReader. Per altre informazioni sul controllo di una VTR, vedere Controllo di una videocamera DV.

È anche possibile trasmettere DV dal computer alla videocamera. 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 del 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.

trasmissione dei dati dv al dispositivo

Si noti che i pin di input e output non possono essere connessi contemporaneamente, perché il dispositivo non può trasmettere in entrambe le direzioni contemporaneamente.

In molte videocamere, il passaggio tra la modalità VTR e la modalità fotocamera causa l'disattivazione del dispositivo. Di conseguenza, DirectShow potrebbe perdere il dispositivo quando l'utente cambia modalità. Per informazioni sugli eventi di rimozione dei dispositivi, vedere Notifica di rimozione dei dispositivi.

Commenti

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, IAMExtTransport e IAMTimeCodeReader potrebbero restituire codici di errore di Windows anziché valori HRESULT. I codici di errore possibili includono quanto segue.

    Codice di errore Descrizione
    ERROR_TIMEOUT Un comando del dispositivo esterno è stato timeout.
    ERROR_REQ_NOT_ACCEP Il dispositivo non ha accettato questo comando esterno del dispositivo.
    ERROR_NOT_SUPPORTED Il dispositivo non supporta questo comando esterno del dispositivo.
    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 DV filter supporta una proprietà Description oltre alla proprietà FriendlyName . Questa proprietà restituisce una descrizione del dispositivo, presa 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 dei dispositivi, vedere Uso dell'enumeratore dispositivo di sistema.

Tempi di orologio

Il driver MSDV usa l'orologio del bus 1394 contenuto nei pacchetti di dati 1394 per derivare l'orologio. Usa questi valori per timestampare gli esempi di supporti DV. Poiché questo orologio di origine non è l'orologio del sistema del computer, i tempi verranno alla fine derivati dall'orologio del computer. Come indicato sopra, tuttavia, per impostazione predefinita, Filter Graph Manager seleziona MSDV come orologio di riferimento grafico.

L'interfaccia IAMDroppedFrames segnala 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 dei dati supera l'utilizzo dei dati). Ad esempio, il disco rigido dell'utente potrebbe non essere abbastanza veloce per supportare i tassi di acquisizione DV.

Filtri DirectShow

Video digitale in DirectShow