Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O ficheiro de cabeçalho Mmreg.h define o valor 0x0164 como a tag de formato de onda para WMA Pro-over-S/PDIF.
#define WAVE_FORMAT_WMASPDIF 0x0164
O GUID do subtipo de formato correspondente pode ser especificado em função da tag wave-format, utilizando a macro DEFINE_WAVEFORMATEX_GUID do ficheiro de cabeçalho Ksmedia.h, da seguinte forma:
#define KSDATAFORMAT_SUBTYPE_WMA_SPDIF \
DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_WMASPDIF)
O exemplo de código a seguir mostra como um driver de miniporta WaveCyclic ou WavePci pode especificar as entradas da tabela KSDATARANGE_AUDIO para um pino que suporta os formatos WMA Pro-over-S/PDIF e AC-3-over-S/PDIF:
static KSDATARANGE_AUDIO PinDataRangesSpdifOut[] =
{
// 48-kHz WMA Pro over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_WMA_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
48000, // Minimum rate
48000 // Maximum rate
},
// 44.1-kHz WMA Pro over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_WMA_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
44100, // Minimum rate
44100 // Maximum rate
},
// 48-kHz AC-3 over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
48000, // Minimum rate
48000 // Maximum rate
},
};
Neste exemplo de código, o primeiro e o segundo intervalos de dados especificam formatos de dados WMA Pro-over-S/PDIF em taxas de amostragem de 48 kHz e 44,1 kHz. Com essas duas opções, um aplicativo de áudio pode reproduzir um fluxo de áudio WMA Pro gravado em qualquer uma dessas duas taxas de amostragem, supondo que o decodificador externo também possa lidar com a taxa de amostragem.
O tamanho do quadro de sincronização do WMA Pro é o mesmo em 48 kHz e 44,1 kHz, e ambos os intervalos de dados usam os mesmos valores de parâmetros PCM - dois canais e 16 bits por canal. Para obter informações sobre o uso de parâmetros PCM para especificar intervalos de dados para os formatos WMA Pro-over-S/PDIF e AC-3-over-S/PDIF, consulte S/PDIF Pass-Through Transmission of Non-PCM Streams.
O terceiro intervalo de dados especifica um formato de dados AC-3 sobre S/PDIF. Para obter mais informações, consulte Especificando intervalos de dados AC-3.
O exemplo anterior não habilita DirectSound para manipular os formatos não-PCM WMA Pro-over-S/PDIF e AC-3-over-S/PDIF no Microsoft Windows 2000 SP2 e Windows 98 SE + hotfix. Para habilitar esse recurso, o código de exemplo precisaria ser modificado para que, para cada um dos três intervalos de dados que usam o especificador KSDATAFORMAT_SPECIFIER_WAVEFORMATEX, um segundo intervalo de dados seja idêntico, exceto que ele usa o especificador KSDATAFORMAT_SPECIFIER_DSOUND em vez disso. Para obter um exemplo, consulte Especificando intervalos de dados AC-3.