Impostazione delle proprietà nel sink di file
Il sink di file ASF è un'implementazione di IMFMediaSink fornita da Media Foundation che un'applicazione può usare per archiviare dati multimediali ASF in un file. Per informazioni sul modello a oggetti dei sink multimediali ASF e sull'utilizzo generale, vedere sink multimediali ASF.
Dopo la creazione del sink del file ASF , il sink deve essere configurato con informazioni sui flussi nel file di output. Questa procedura è descritta in Aggiunta di informazioni sul flusso alla destinazione file ASF. È possibile impostare proprietà aggiuntive nel sink del file a seconda del tipo di codifica; secchi persi; proprietà generali dei file. Queste impostazioni non vengono scritte nell'intestazione dell'oggetto ASF finale. In questo argomento viene descritto il processo di aggiunta di queste proprietà nell'archivio delle proprietà del file sink.
L'oggetto ContentInfo gestisce le proprietà globali dei file e le singole proprietà del flusso per il sink di file. Per informazioni su come ottenere un riferimento all'oggetto ContentInfo ASF del sink di file, vedere Creazione del sink di file ASF.
Per ottenere un riferimento all'archivio delle proprietà del sink del file (IPropertyStore), utilizzare IMFASFContentInfo::GetEncodingConfigurationPropertyStore sul riferimento dell'oggetto ContentInfo del sink del file.
Proprietà di codifica del flusso
Per codificare correttamente il contenuto, il file deve conoscere determinate informazioni di codifica, ad esempio il tipo di codifica e i parametri di codifica correlati. Questi valori vengono impostati sul sink di file come valori delle proprietà in un archivio delle proprietà gestito dall'oggetto ASF ContentInfo. Se si configura il file sink prima di creare un'istanza dei codificatori pertinenti, è possibile usare l'oggetto ContentInfo con tutte le proprietà popolate per creare i codificatori Windows Media. In questo caso, le proprietà vengono impostate automaticamente sui codificatori istanziati. Viceversa, se si creano i codificatori prima del sink, assicurarsi che le proprietà impostate sui codificatori vengano copiate nell'archivio delle proprietà del sink del file.
Per impostare le proprietà di codifica, è necessario accedere all'archivio delle proprietà a livello di flusso del sink di file. Inserire il numero di flusso nel parametro wStreamNumber del metodo IMFASFContentInfo::GetEncodingConfigurationPropertyStore. I numeri di flusso devono corrispondere ai valori impostati durante la configurazione di ogni flusso nel profilo. I valori delle proprietà vengono impostati chiamando IPropertyStore::SetValue. Nella tabella seguente vengono descritte le proprietà supportate.
Le proprietà dipendono dal tipo di codifica. Per informazioni sulle proprietà e sui rispettivi valori da impostare, vedere Proprietà di codifica.
Proprietà del Leaky Bucket
I parametri del leaky bucket determinano la finestra del buffer effettiva usata dal codificatore per il flusso. La proprietà MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET del sink di file contiene i parametri del leaky bucket, la velocità bit, la finestra del buffer e la pienezza iniziale del buffer. Questa proprietà viene impostata nella store delle proprietà a livello di flusso per il sink di file e deve essere impostata dopo la creazione e la configurazione dei codificatori. Questo valore viene impostato in . Durante la negoziazione del tipo di supporto, il codificatore decide la finestra del buffer e la velocità di bit da usare. È possibile ottenere questi valori usando l'interfaccia IWMCodecLeakyBucket, definita in wmcodecifaces.h ed è necessario collegarsi a wmcodecdspuuid.lib per chiamare i relativi metodi.
I valori recuperati possono essere impostati per questa proprietà per ogni flusso nel sink del file ASF.
Proprietà globali del ricevitore di file
Per ottenere l'archivio delle proprietà globali del sink di file, passare 0 nel parametro wStreamNumber del metodo IMFASFContentInfo::GetEncodingConfigurationPropertyStore. I valori delle proprietà vengono impostati chiamando IPropertyStore::SetValue. Nella tabella seguente vengono descritte le proprietà supportate.
Proprietà a livello di file | Descrizione |
---|---|
MFPKEY_ASFMEDIASINK_BASE_SENDTIME | Il tempo di invio indica a che ora verrà rilasciato il payload all'interno del secchio con perdite. Questo valore della proprietà indica la prima ora d'invio. Il multiplexer usa questo valore per calcolare i tempi di invio successivi per i pacchetti generati e garantisce che i dati vengano trasmessi in modo costante attraverso il secchio traforato. |
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE | Questo valore BOOL indica se il multiplexer deve regolare automaticamente il bit rate per garantire che i dati non trabocchino dal bucket che perde. |
MFPKEY_ASFMEDIASINK_DRMACTION | Indica l'azione DRM del sink multimediale ASF per la generazione di file. In questa versione è supportata solo la transcodifica DRM. |
Argomenti correlati