Compartilhar via


estrutura ACX_STREAM_BRIDGE_CONFIG (acxstreams.h)

A estrutura AcxStreamBridge é usada por um circuito para propagar a criação de fluxo, as transições de estados do fluxo e as configurações de DRM entre os segmentos de fluxo de circuito do ponto de extremidade.

Sintaxe

typedef struct _ACX_STREAM_BRIDGE_CONFIG {
  ULONG                  Size;
  ULONG                  Flags;
  ACX_STREAM_BRIDGE_TYPE Type;
  ULONG                  InModesCount;
  PCGUID                 *InModes;
  PCGUID                 OutMode;
  ACXOBJECTBAG           OutStreamVarArguments;
  WDF_OBJECT_ATTRIBUTES  TargetStreamAttributes;
} ACX_STREAM_BRIDGE_CONFIG, *PACX_STREAM_BRIDGE_CONFIG;

Membros

Size

O comprimento, em bytes, dessa estrutura.

Flags

OR bit a bit de ACX_STREAM_BRIDGE_CONFIG_FLAGS enumeração.

Type

O ACX_STREAM_BRIDGE_TYPE enumeração que define o tipo de ponte.

InModesCount

O número de AUDIO_SIGNALPROCESSINGMODEs listados em InModes. Esses são os modos de processamento de sinal aceitos como entrada pelo ACXSTREAMBRIDGE. Para obter mais informações sobre modos de áudio, consulte Modos de processamento de sinal de áudio.

Esse campo só poderá ser zero se o campo InModes estiver definido como NULL.

InModes

Um ponteiro para uma lista de ponteiros AUDIO_SIGNALPROCESSINGMODE com suporte pelo ACXSTREAMBRIDGE. Esse campo pode ser NULL. Um GUID NULL é um valor cartão selvagem e corresponde a qualquer AUDIO_SIGNALPROCESSINGMODEs.

Se os modos de processamento de sinal de entrada não forem definidos, o ACXSTREAMBRIDGE não corresponderá automaticamente a nenhum modo. Nesse caso, cabe ao driver adicionar manualmente o fluxo de entrada à ponte de fluxo.

OutMode

Um ponteiro para um AUDIO_SIGNALPROCESSINGMODE que define o modo de processamento de sinal de áudio do fluxo de saída. Se esse campo for NULL, o AUDIO_SIGNALPROCESSINGMODE_DEFAULT será usado se houver suporte do ACXPIN associado, caso contrário, o AUDIO_SIGNALPROCESSINGMODE_RAW será usado. Se também não houver suporte para o último, o fluxo de saída será criado sem especificar um modo de processamento de sinal de áudio.

OutStreamVarArguments

E o objeto ACXOBJECTBAG usado para fornecer argumentos variáveis para o fluxo de saída. Essa é uma configuração opcional e pode ser NULL. Para obter mais informações sobre objetos ACX, consulte ACX – Resumo de objetos ACX.

TargetStreamAttributes

Uma estrutura WDF_OBJECT_ATTRIBUTES usada para definir os atributos de objeto ACXTARGETSTREAM.

Comentários

AcxStreamBridge é usado por um circuito para propagar a criação de fluxo, os estados do fluxo fazem transições e configurações de DRM entre os segmentos de fluxo de circuito do ponto de extremidade. Esse objeto só é usado em um cenário de vários circuitos (composição de áudio).

Um pino pode ser associado a zero, um ou mais ACXSTREAMBRIDGEs. O ACX pesquisa a lista de modos de processamento de sinal do ACXPIN associado para obter uma correspondência do modo de processamento de sinal de fluxo. A pesquisa é interrompida na primeira correspondência.

O ACX cria um ACXSTREAMBRIDGE padrão para uma ponte ACXCIRCUIT para ACXCIRCUIT se o driver não criar uma e o driver não desabilitou a manipulação de ponte de fluxo padrão com a função AcxCircuitInitDisableDefaultStreamBridgeHandling.

Se o ACXPIN associado der suporte ao modo de processamento de sinal de áudio especificado, o formato de dados padrão para esse modo de processamento de sinal de áudio será usado ao criar o fluxo de saída.

Se o ACXPIN associado não der suporte ao modo de processamento de sinal de áudio especificado, o formato de dados do fluxo de entrada será usado ao criar o fluxo de saída.

O ACXSTREAMBRIDGE deve ser pai de um objeto que tenha ACXCIRCUIT como um ancestral.

O uso de exemplo é mostrado abaixo.

        ACXSTREAMBRIDGE             bridge          = NULL;
        ACX_STREAM_BRIDGE_CONFIG    bridgeCfg;
    
        ACX_STREAM_BRIDGE_CONFIG_INIT(&bridgeCfg);
        bridgeCfg.InModesCount = 0;     // no in-modes. this stream-bridge is manually managed.
        bridgeCfg.InModes      = NULL; 
        bridgeCfg.OutMode      = NULL;  // no mode, i.e., default (1st), raw (2nd) or no mode (3rd).
        bridgeCfg.Flags       |= AcxStreamBridgeInvertChangeStateSequence;

        WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
        attributes.ParentObject = pin;

        status = AcxStreamBridgeCreate(Circuit, &attributes, &bridgeCfg, &bridge);

Este exemplo mostra como definir uma PONTE de fluxo para os modos RAW e DEFAULT.

    //
    // Add a stream BRIDGE for RAW and DEFAULT modes.
    //
    PCGUID  inModes[] = 
    {
        &AUDIO_SIGNALPROCESSINGMODE_DEFAULT, 
        &AUDIO_SIGNALPROCESSINGMODE_RAW,
    };

    WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
    attributes.ParentObject = pin;

    ACXSTREAMBRIDGE bridge = NULL;
    ACX_STREAM_BRIDGE_CONFIG bridgeCfg;
 
    ACX_STREAM_BRIDGE_CONFIG_INIT(&bridgeCfg);
    streamCfg.InModesCount = 2;
    streamCfg.InModes      = inModes; 
    streamCfg.OutMode      = &AUDIO_SIGNALPROCESSINGMODE_DEFAULT;

    status = AcxStreamBridgeCreate(circuit, &attributes, &bridgeCfg, &bridge);

Requisitos do ACX

Versão mínima do ACX: 1.0

Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.

Requisitos

Requisito Valor
Cabeçalho acxstreams.h

Confira também