Condividi tramite


Decodificatore audio Dolby

Il decodificatore audio Dolby è una trasformazione di Media Foundation (MFT) che decodifica i tipi di flusso seguenti:

  • Dolby Digital, chiamato anche Dolby AC-3
  • Dolby Digital Plus, chiamato anche Enhanced AC-3 (E-AC-3)

Importante

Per le versioni di Windows precedenti a Windows 8, l'implementazione Microsoft della tecnologia Dolby Digital è limitata in base alle condizioni del programma di licenza Dolby Digital da usare dalle applicazioni Microsoft.

 

Per altre informazioni su questi formati, vedere il documento Advanced Television Systems Committee (ATSC) Digital Audio Compression Standard (AC-3, E-AC-3) Revisione B.

Il decodificatore può anche convertire un flusso Dolby Digital Plus in formato Dolby Digital per l'output S/PIDF AC-3 o formattare un flusso Dolby Digital Plus per l'output digitale HDMI.

Identificatore di classe

L'identificatore di classe (CLSID) del decodificatore audio Dolby è CLSID_CMSDDPlusDecMFT, definito nel file di intestazione wmcodecdsp.h.

Tipi di input

Il decodificatore audio Dolby supporta i sottotipi di input seguenti.

Subtype Descrizione Intestazione
MEDIASUBTYPE_DOLBY_AC3 Audio Dolby Digital. mfapi.h
MEDIASUBTYPE_DVM Audio Dolby Digital; vedi Sottotipi audio. Questo sottotipo può essere usato in modo intercambiabile con MEDIASUBTYPE_DOLBY_AC3.
wmcodecdsp.h
MFAudioFormat_Dolby_Digital_Plus Audio Dolby Digital Plus. mfapi.h

 

Nella tabella seguente sono elencati gli attributi necessari e facoltativi per il tipo di supporto di input.

Attributo Descrizione Osservazioni
MF_MT_MAJOR_TYPE Tipo principale. Obbligatorio. Deve essere MFMediaType_Audio.
MF_MT_SUBTYPE Sottotipo audio. Obbligatorio. Per informazioni dettagliate, vedere la tabella precedente.
MF_MT_AUDIO_SAMPLES_PER_SECOND Frequenza di campionamento, in campioni al secondo. Facoltativa. I valori validi sono: 48000, 44100, 32000, 24000, 22050 e 16000. Se questo attributo non è impostato, il valore predefinito è 48000.
Nota: I flussi Dolby AC-3 sono limitati ai tre tassi più alti in questo elenco.
MF_MT_AUDIO_NUM_CHANNELS Numero di canali, incluso il canale LFE (Low Frequency), se presente. Facoltativa. I valori validi sono compresi nell'intervallo da 1 (mono) a 8 (configurazione del canale 7,1). Se questo attributo non è impostato, il valore predefinito è 2 (stereo).
MF_MT_AUDIO_CHANNEL_MASK Specifica l'assegnazione dei canali audio alle posizioni dell'altoparlante. Facoltativa. Se specificato, il valore deve essere coerente con il numero di canali audio. Se l'attributo non è impostato, il decodificatore usa una maschera di canale predefinita, in base al numero di canali.

 

Nella tabella seguente sono elencate le configurazioni del canale Dolby supportate.

Configurazione del canale Numero di canali Maschere di canale
1/0 (mono) 1 0x4 (SPEAKER_FRONT_CENTER)
2/0 (stereo) o 1+1 (doppio mono) 2 0x3 (SPEAKER_FRONT_RIGHT SPEAKER_FRONT_LEFT)
3/0 3 0x7 (SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTER)
2/1 3 0x103 (SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHTSPEAKER_BACK_CENTER)
3/1 4 0x107 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHT SPEAKER_FRONT_CENTERSPEAKER_BACK_CENTER)
2/2 4 0x33 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHT SPEAKER_BACK_LEFTSPEAKER_BACK_RIGHT)
oppure
0x603 (SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHTSPEAKER_SIDE_LEFTSPEAKER_SIDE_RIGHT)
3/2 5 0x37 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHT SPEAKER_FRONT_CENTERSPEAKER_BACK_LEFTSPEAKER_BACK_RIGHT)
oppure
0x607 (SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHT SPEAKER_FRONT_CENTERSPEAKER_SIDE_LEFT SPEAKER_SIDE_RIGHT)
3/2 + LFE 6 0x3F (SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_BACK_LEFT SPEAKER_BACK_RIGHT)
oppure
0x60F (SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHT SPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_SIDE_LEFT SPEAKER_SIDE_RIGHT)
2/3/2 + LFE Nota: Solo Dolby Digital Plus.
8 0x63F (SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_BACK_RIGHT SPEAKER_LOW_FREQUENCY SPEAKER_BACK_LEFT SPEAKER_SIDE_LEFT SPEAKER_SIDE_RIGHT)

 

Inoltre, le configurazioni dei canali 1/0, 2/0, 3/0, 2/1, 3/1 e 2/2 possono essere visualizzate anche con un canale LFE.

Tipi di output

Il decodificatore audio Dolby supporta i sottotipi di output seguenti.

Subtype Descrizione Intestazione
MFAudioFormat_Dolby_AC3_SPDIF Audio Dolby AC-3 formattato per l'output digitale S/PDIF. mfapi.h
KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS Audio Dolby Digital Plus formattato per l'output digitale HDMI. ksmedia.h
MFAudioFormat_Float Audio PCM a virgola mobile IEEE a 32 bit
Windows 10: stereo, 5.1, 7.1
Versioni precedenti: stereo, 5.1
mfapi.h
MFAudioFormat_PCM Audio PCM a 16 bit
Windows 10: stereo, 5.1, 7.1
Versioni precedenti: stereo, 5.1
mfapi.h

 

Nella tabella seguente sono elencati gli attributi obbligatori e facoltativi per il tipo di supporto di output.

Attributo Descrizione Osservazioni
MF_MT_MAJOR_TYPE Tipo principale. Obbligatorio. Deve essere MFMediaType_Audio.
MF_MT_SUBTYPE Sottotipo audio. Obbligatorio. Per informazioni dettagliate, vedere la tabella precedente.
MF_MT_AUDIO_SAMPLES_PER_SECOND Frequenza di campionamento, in campioni al secondo. Obbligatorio. I valori validi sono: 48000, 44100, 32000, 24000, 22050 e 16000. La frequenza di campionamento di output deve essere identica alla frequenza di campionamento di input. Il decodificatore non può modificare la frequenza di campionamento del flusso.
MF_MT_AUDIO_NUM_CHANNELS Numero di canali, incluso il canale LFE (Low Frequency), se presente. Obbligatorio per l'output PCM.
Non necessario per l'output digitale.
Se il tipo di input è mono, stereo o dual-mono (tutti senza canale LFE), l'unico valore valido è 2, per l'output stereo. In caso contrario, il valore può essere:
  • 2 per il downmix stereo
  • 6 per le configurazioni del canale 5.1
  • 8 per le configurazioni del canale 7.1
MF_MT_AUDIO_CHANNEL_MASK Specifica l'assegnazione dei canali audio alle posizioni dell'altoparlante. Obbligatorio per l'output PCM se il numero di canali è maggiore di 2. Il valore deve essere:
  • 0x3 per l'output stereo
  • 0x3F per l'output del canale 5.1
  • 0x63F per l'output del canale 7.1
Non necessario per l'output digitale.
MF_MT_AUDIO_BITS_PER_SAMPLE Numero di bit per campione audio. Obbligatorio per l'output PCM. Il valore deve essere 32 per MFAudioFormat_Float e 16 per MFAudioFormat_PCM.
Non necessario per l'output digitale.
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE Numero di bit validi di dati audio in ogni campione audio. Facoltativo per l'output PCM. Se impostato, il valore deve essere identico a MF_MT_AUDIO_BITS_PER_SAMPLE.
Non necessario per i sottotipi di output digitale.
MF_MT_AUDIO_BLOCK_ALIGNMENT Allineamento dei blocchi, in byte. Facoltativo per l'output PCM. Non necessario per l'output digitale.
MF_MT_AUDIO_AVG_BYTES_PER_SECOND Numero medio di byte al secondo. Facoltativo per l'output PCM. Non necessario per l'output digitale.

 

Attributi di trasformazione

Il decodificatore audio Dolby implementa il metodo IMFTransform::GetAttributes . L'applicazione può usare questo metodo per ottenere o impostare gli attributi seguenti.

Attributo Descrizione
CODECAPI_AVDecAudioDualMono Specifica se un flusso audio Dolby a 2 canali è codificato come stereo o dual-mono. Prima che il primo frame Dolby venga decodificato, il valore è eAVDecAudioDualMono_UnSpecified. Dopo l'inizio della decodifica, il valore riflette il frame Dolby più recente.
Di sola lettura.
CODECAPI_AVDecAudioDualMonoReproMode Specifica il modo in cui il decodificatore riproduce l'audio dual-mono. Il valore predefinito è eAVDecAudioDualMonoReproMode_LEFT_MONO. L'applicazione può impostare questa proprietà in qualsiasi momento.
Proprietà di lettura/scrittura.
CODECAPI_AVDecCommonMeanBitRate Per i flussi Dolby Digital (AC-3), specifica la velocità in bit del flusso di input in bit al secondo. Per Dolby Digital Plus (E-AC3), il valore è sempre zero.
Sola lettura.
CODECAPI_AVDecDDDynamicRangeScaleHigh Taglio di alto livello quando il decodificatore esegue il controllo dell'intervallo dinamico.
Proprietà di lettura/scrittura.
CODECAPI_AVDecDDDynamicRangeScaleLow Boost di basso livello quando il decodificatore esegue il controllo dell'intervallo dinamico.
Proprietà di lettura/scrittura.
CODECAPI_AVDecDDOperationalMode Modalità di controllo della compressione.
Proprietà di lettura/scrittura.
CODECAPI_AVDecDDStereoDownMixMode Tipo di downmix stereo. Questa proprietà si applica quando l'input è un flusso multicanale e l'output è un flusso stereo.
Proprietà di lettura/scrittura.
MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE Questo attributo restituisce FALSE, che indica che il decodificatore deve essere svuotato prima che venga impostato un nuovo tipo di input.
Proprietà di lettura/scrittura.

 

Commenti

Il decodificatore accetta solo flussi Dolby non elaborati, come definito da A/52B. I payload, ad esempio Flussi elementari pacchettizzati (PES) non sono supportati. Per Dolby Digital Plus, il decodificatore decodifica fino a 5,1 canali. In Windows 10, i flussi di canale 7.1 vengono decodificati senza downmix. Nelle versioni precedenti del sistema operativo, se il flusso è 7.1 canali, verrà decodificato solo il downmix del canale 5.1. Se il flusso è Dolby Digital Plus con più di un sottostream indipendente, viene decodificato solo il substream indipendente 0. Il decodificatore ignora altri sottostream indipendenti. Inoltre, il decodificatore ignora tutti i sottostream dipendenti. Il decodificatore supporta la decrittografia e la decodifica dei flussi protetti dalla tecnologia DIGITAL Rights Management (DRM).

Se il tipo di supporto di input ha una configurazione del canale diversa da mono, stereo o dual-mono (tutto senza canale LFE), il decodificatore offre due opzioni per le configurazioni del canale di output:

  • Output a 8 canali (configurazione del canale 7.1)
  • Output a 6 canali (configurazione canale 5.1)
  • Stereo downmix

Se è selezionata l'opzione stereo downmix, il tipo di downmix può essere impostato su MFT usando la proprietà CODECAPI_AVDecDDStereoDownMixMode .

Se il tipo di output è MFAudioFormat_Dolby_AC3_SPDIF, ogni buffer di output contiene 6.144 byte. Il buffer inizia con un'intestazione S/PDIF a 8 byte, seguita da un frame AC-3 compresso, seguito da un riempimento zero a 6.144 byte.

Se il tipo di output è KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS, ogni buffer di output contiene 24.576 byte. Il buffer inizia con un'intestazione S/PDIF a 8 byte, seguita da 1-6 fotogrammi Compressi Dolby Digital Plus corrispondenti a 1.536 campioni PCM, seguiti da un riempimento zero a 24.576 byte. Per l'output HDMI, solo il substream indipendente 0 è compresso.

Il decodificatore MFT è registrato con il flag MFT_ENUM_FLAG_FIELDOFUSE, che indica che il MFT che deve essere sbloccato dall'applicazione prima dell'uso. Per altre informazioni, vedere Campo delle restrizioni per l'uso.

Requisiti

Requisito Valore
Client minimo supportato
Windows 8 [app desktop | App UWP]
Server minimo supportato
Nessuno supportato
DLL
Msauddecmft.dll

Vedi anche

Oggetti codec