Condividi tramite


ACX_STREAM_BRIDGE_CONFIG struttura (acxstreams.h)

La struttura AcxStreamBridge viene usata da un circuito per propagare la creazione del flusso, le transizioni degli stati del flusso e le impostazioni DRM tra i segmenti di flusso del 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;

Members

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 ponte.

InModesCount

Numero di AUDIO_SIGNALPROCESSINGMODEs elencato in InModes. Queste sono le 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 a nessuna modalità. In questo caso, è necessario 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, viene usato il AUDIO_SIGNALPROCESSINGMODE_DEFAULT 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 un'impostazione facoltativa e può essere NULL. Per altre informazioni sugli oggetti ACX, vedere ACX - Riepilogo degli oggetti ACX.

TargetStreamAttributes

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

Commenti

AcxStreamBridge viene usato da un circuito per propagare la creazione del flusso, le transizioni degli stati del flusso e le impostazioni DRM tra i segmenti di flusso del 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 cerca l'elenco della modalità di elaborazione del segnale associato per una corrispondenza della modalità di elaborazione del segnale di flusso. La ricerca si arresta alla prima corrispondenza.

ACX crea un bridge ACXSTREAMBRIDGE predefinito per un bridge ACXCIRCUIT a ACXCIRCUIT se il driver non crea uno e il driver non disabilita la gestione predefinita del bridge di flusso con la funzione AcxCircuitInitDisableDefaultStreamBridgeHandling.

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

Se ACXPIN associato non supporta la modalità di elaborazione del segnale audio specificato, 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 l'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);

In questo esempio viene illustrato come impostare un bridge di flusso 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 ACX, vedere Panoramica della versione di ACX.

Requisiti

Requisito Valore
Intestazione acxstreams.h

Vedi anche