Configurazione di estensioni delle unità dati

Gli esempi scritti nei file ASF possono contenere informazioni aggiuntive a parte gli esempi multimediali stessi. Queste informazioni sono incluse usando le estensioni dell'unità dati. Per altre informazioni sulle estensioni dell'unità dati, vedere Estensioni unità dati.

Per usare le estensioni dell'unità dati, è necessario configurare il flusso nel profilo per accettarli. Per configurare un'estensione dell'unità dati per un flusso, seguire questa procedura.

  1. Ottenere un puntatore all'interfaccia IWMStreamConfig2 chiamando il metodo QueryInterface di IWMStreamConfig.
  2. Chiamare IWMStreamConfig2::AddDataUnitExtension per registrare un tipo di estensione dell'unità dati per il flusso.

È possibile esaminare tutti i tipi di estensione dell'unità dati attualmente registrati per un flusso chiamando IWMStreamConfig2::GetDataUnitExtensionCount per recuperare il numero di tipi di estensione dell'unità dati registrati. È quindi possibile eseguire il ciclo di tutti i tipi usando chiamate a IWMStreamConfig2::GetDataUnitExtension per ogni tipo.

Le estensioni dell'unità dati vengono assegnate a una dimensione quando configurata per un flusso. Molti sistemi di estensione unità dati usano i dati che sono una dimensione costante (in genere una struttura). È tuttavia possibile configurare anche le estensioni dell'unità dati in modo che siano di dimensioni variabili impostando le dimensioni su 0xFFFF. Ogni estensione dell'unità dati assegnata al momento della codifica può quindi essere di qualsiasi dimensione compresa tra 1 byte e 65534 byte. Le estensioni dell'unità dati di dimensioni variabili sono anche chiamate estensioni di unità dati dinamiche.

Il vantaggio di usare estensioni di unità dati dinamiche è che è possibile collegare i dati dell'estensione in base alle esigenze. Se si definisce un'estensione di unità dati con dimensioni set, ogni esempio per il flusso deve contenere dati di estensione di tale dimensione, anche se non sono presenti dati per alcuni esempi. Con le estensioni di unità dati dinamiche, è possibile omettere le estensioni dell'unità dati da alcuni esempi, che consentono di risparmiare spazio e ridurre i requisiti di larghezza di banda. Tuttavia, se le estensioni dell'unità dati sono di dimensioni variabili, l'oggetto di lettura non può verificare i dati dell'estensione ricevuti rispetto a una dimensione statica. È necessario verificare che i dati dell'estensione ricevuti siano validi e non distorsioni dannose del flusso di bit.

Le singole estensioni dell'unità dati devono essere impostate sugli esempi usando il metodo INSSBuffer3::SetProperty . Per altre informazioni, vedere Impostazione di estensioni unità dati.

Configurazione dei flussi