Condividi tramite


struttura ACX_STREAM_BRIDGE_CONFIG (acxstreams.h)

La struttura acxStreamBridge viene usata da un circuito per propagare la creazione del flusso, gli stati del flusso e le impostazioni DRM tra i segmenti del flusso di circuito dell'endpoint.

Sintassi

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;

Membri

Size

Lunghezza, in byte, di questa struttura.

Flags

OR bit per bit di ACX_STREAM_BRIDGE_CONFIG_FLAGS enumerazione.

Type

Enumerazione ACX_STREAM_BRIDGE_TYPE che definisce il tipo di bridge.

InModesCount

Numero di AUDIO_SIGNALPROCESSINGMODEs elencato in InModes. Si tratta delle modalità di elaborazione dei segnali accettate come input da ACXSTREAMBRIDGE. Per altre informazioni sulle modalità audio, vedere modalità di elaborazione del segnale audio.

Questo campo può essere zero solo se il campo InModes è impostato su NULL.

InModes

Puntatore a un elenco di puntatori AUDIO_SIGNALPROCESSINGMODE supportati da ACXSTREAMBRIDGE. Questo campo può essere NULL. Un GUID NULL è un valore jolly e corrisponde a qualsiasi AUDIO_SIGNALPROCESSINGMODEs.

Se le modalità di elaborazione del segnale di input non sono definite, ACXSTREAMBRIDGE non corrisponde automaticamente ad alcuna modalità. In questo caso, spetta al driver aggiungere manualmente il flusso di input al bridge di flusso.

OutMode

Puntatore a un AUDIO_SIGNALPROCESSINGMODE che definisce la modalità di elaborazione del segnale audio del flusso di output. Se questo campo è NULL, il AUDIO_SIGNALPROCESSINGMODE_DEFAULT viene usato se supportato dall'ACXPIN associato; in caso contrario, viene usato il AUDIO_SIGNALPROCESSINGMODE_RAW. Se anche quest'ultimo non è supportato, il flusso di output viene creato senza specificare una modalità di elaborazione del segnale audio.

OutStreamVarArguments

E l'oggetto ACXOBJECTBAG usato per fornire argomenti variabili per il flusso di output. Si tratta di impostazioni facoltative e può essere NULL. Per altre informazioni sugli oggetti ACX, vedere ACX - Summary of ACX Objects.

TargetStreamAttributes

Struttura WDF_OBJECT_ATTRIBUTES utilizzata per definire gli attributi dell'oggetto ACXTARGETSTREAM.

Osservazioni

AcxStreamBridge viene usato da un circuito per propagare la creazione del flusso, gli stati del flusso e le impostazioni DRM tra i segmenti del flusso di circuito dell'endpoint. Questo oggetto viene usato solo in uno scenario multi circuito (composito audio).

Un pin può essere associato a zero, uno o più ACXSTREAMBRIDGEs. ACX esegue una ricerca nell'elenco della modalità di elaborazione dei segnali associato nell'elenco della modalità di elaborazione dei segnali di flusso. La ricerca si interrompe alla prima corrispondenza.

ACX crea un'istanza predefinita di ACXSTREAMBRIDGE per un bridge ACXCIRCUIT a ACXCIRCUIT se il driver non ne crea uno e il driver non ha disabilitato la gestione predefinita del bridge di flusso con la funzione AcxCircuitInitDisableDefaultStreamBridgeHandling.

Se ACXPIN associato supporta la modalità di elaborazione del segnale audio specificata, viene usato il formato dati predefinito per la modalità di elaborazione del segnale audio durante la creazione del flusso di output.

Se ACXPIN associato non supporta la modalità di elaborazione del segnale audio specificata, il formato di dati del flusso di input viene usato durante la creazione del flusso di output.

AcXSTREAMBRIDGE deve essere padre di un oggetto con ACXCIRCUIT come predecessore.

Di seguito è riportato un esempio di utilizzo.

        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);

Questo esempio illustra come impostare un flusso BRIDGE per le modalità 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);

Requisiti ACX

versione minima di ACX: 1.0

Per altre informazioni sulle versioni di ACX, vedere panoramica della versione ACX.

Fabbisogno

Requisito Valore
intestazione acxstreams.h

Vedere anche