Condividi tramite


Configurazione del writer ASF WM (QASF)

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stato sostituito dal lettore di origine e dal writer di sink . lettore di origine e sink writer sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente di utilizzare, quando possibile, lettore di origine e scrittore di ricezione invece di Windows Media Format 11 SDK. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Quando viene creato il filtro WM ASF Writer, viene configurato automaticamente con il profilo WMProfile_V80_256Video come predefinito. Poiché questo profilo usa i codec Windows Media Audio e Windows Media Video versione 8, è consigliabile creare un profilo personalizzato che usi i codec della serie Windows Media 9 e quindi passare il relativo puntatore IWMProfile al filtro usando il metodo IConfigAsfWriter::ConfigureFilterUsingProfile. Il filtro deve essere aggiunto al grafico prima di poter configurare il filtro e deve essere configurato prima di poter essere connesso ai filtri upstream. Il filtro usa il profilo per determinare il tipo di file di formato Windows Media da scrivere, il numero di pin di input da configurare e i tipi di supporti che i pin possono accettare.

Il filtro consente di reimpostare i profili mentre i pin di input sono connessi, purché il nuovo profilo non richieda pin di input aggiuntivi. Ad esempio, se si modifica il profilo da un profilo audio di sola input a un profilo audio e video a due input, solo il pin audio verrà riconnessoTutti i dati di input devono essere contrassegnati come timestamp e tutti i pin di input devono essere connessi prima che il filtro possa essere eseguito o sospeso. Ciò significa che se si configura il filtro con un profilo con un flusso audio e un flusso video, il filtro creerà un'audio e un pin di input video e entrambi i pin devono essere connessi prima che il filtro possa essere eseguito.

Estensione delle unità di dati

È possibile configurare un flusso di profilo per le estensioni di unità dati, ad esempio codici di ora SMPTE, prima o dopo la connessione del filtro, purché si segua questo ordine di operazioni:

  1. Aggiungere una o più estensioni di unità dati al flusso usando IWMStreamConfig2::AddDataUnitExtension.
  2. Chiamare WMProfile::ReconfigStream per aggiornare il profilo.
  3. Chiama IConfigAsfWriter::ConfigureFilterUsingProfile con l'oggetto profilo aggiornato.
  4. Trovare il pin di input video e chiamare il metodo IAMWMBufferPass::SetNotify per registrare l'interfaccia IAMWMBufferPassCallback definita dall'applicazione.

Quando viene eseguito il grafo, il metodo IAMWMBufferPassCallback::Notify verrà chiamato per ogni fotogramma, e sarà possibile ottenere e impostare le proprietà sul campione usando i metodi di interfaccia INSSBuffer3.

Nota

In alcuni scenari a elevato utilizzo di processore, ad esempio la telecine inversa, il WM ASF Writer potrebbe richiedere più buffer di output rispetto ad alcuni filtri downstream che possono supportare. Il decodificatore DV, ad esempio, non accetterà più buffer per il pin di output e lo stesso vale per il decompressore AVI in determinate condizioni. Se si verificano problemi durante il tentativo di connessione a questi filtri o eventualmente durante l'esecuzione del grafico, potrebbe essere necessario scrivere un filtro intermedio che accetta un numero qualsiasi di buffer nel relativo pin di output.