Condividi tramite


Configurazione del writer WM ASF (QASF)

Quando viene creato il filtro WM ASF Writer , viene configurato automaticamente con il profilo WMProfile_V80_256Video come impostazione predefinita. 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 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 windows Media Format da scrivere, il numero di pin di input da configurare e i tipi di supporti che i pin possono accettare.

Il filtro consente la reimpostazione dei profili mentre i relativi 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 un solo 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.

Aggiunta di estensioni unità dati

È possibile configurare un flusso di profilo per le estensioni dell'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. Chiamare 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 grafico, il metodo IAMWMBufferPassCallback::Notify verrà chiamato per ogni fotogramma e sarà possibile ottenere e impostare le proprietà nell'esempio usando i metodi di interfaccia INSSBuffer3 .

Nota

In alcuni scenari a elevato utilizzo di processore, ad esempio la telecine inversa, WM ASF Writer potrebbe richiedere più buffer di output rispetto a alcuni filtri downstream. Il decodificatore DV, ad esempio, non accetterà più di un 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.