structure ACX_STREAM_BRIDGE_CONFIG (acxstreams.h)

La structure AcxStreamBridge est utilisée par un circuit pour propager la création de flux, les transitions d’états du flux et les paramètres DRM entre les segments de flux de circuit du point de terminaison.

Syntaxe

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;

Membres

Size

Longueur, en octets, de cette structure.

Flags

OR au niveau du bit de ACX_STREAM_BRIDGE_CONFIG_FLAGS énumération.

Type

L’énumération ACX_STREAM_BRIDGE_TYPE qui définit le type de pont.

InModesCount

Nombre de AUDIO_SIGNALPROCESSINGMODEs répertoriés dans InModes. Il s’agit des modes de traitement du signal acceptés comme entrée par ACXSTREAMBRIDGE. Pour plus d’informations sur les modes audio, consultez Modes de traitement du signal audio.

Ce champ ne peut être égal à zéro que si le champ InModes est défini sur NULL.

InModes

Pointeur vers une liste de pointeurs AUDIO_SIGNALPROCESSINGMODE pris en charge par ACXSTREAMBRIDGE. Ce champ peut contenir la valeur NULL. Un GUID NULL est une valeur de carte générique qui correspond à n’importe quelle AUDIO_SIGNALPROCESSINGMODEs.

Si les modes de traitement du signal d’entrée ne sont pas définis, ACXSTREAMBRIDGE ne correspond automatiquement à aucun mode. Dans ce cas, il appartient au pilote d’ajouter manuellement le flux d’entrée au pont de flux.

OutMode

Pointeur vers un AUDIO_SIGNALPROCESSINGMODE qui définit le mode de traitement du signal audio du flux de sortie. Si ce champ a la valeur NULL, le AUDIO_SIGNALPROCESSINGMODE_DEFAULT est utilisé s’il est pris en charge par l’ACXPIN associé, sinon le AUDIO_SIGNALPROCESSINGMODE_RAW est utilisé. Si ce dernier n’est pas non plus pris en charge, le flux de sortie est créé sans spécifier de mode de traitement du signal audio.

OutStreamVarArguments

Et l’objet ACXOBJECTBAG utilisé pour fournir des arguments variables pour le flux de sortie. Il s’agit d’un paramètre facultatif qui peut être NULL. Pour plus d’informations sur les objets ACX, consultez ACX - Résumé des objets ACX.

TargetStreamAttributes

Une structure WDF_OBJECT_ATTRIBUTES utilisée pour définir les attributs de l’objet ACXTARGETSTREAM.

Remarques

AcxStreamBridge est utilisé par un circuit pour propager la création de flux, les transitions d’états du flux et les paramètres DRM entre les segments de flux de circuit du point de terminaison. Cet objet est utilisé uniquement dans un scénario multi-circuit (composite audio).

Une broche peut être associée à zéro, un ou plusieurs ACXSTREAMBRIDGEs. ACX recherche dans la liste des modes de traitement du signal ACXPIN associée une correspondance du mode de traitement du signal de flux. La recherche s’arrête à la première correspondance.

ACX crée un pont ACXSTREAMBRIDGE par défaut pour un pont ACXCIRCUIT vers ACXCIRCUIT si le pilote n’en crée pas et que le pilote n’a pas désactivé la gestion du pont de flux par défaut avec la fonction AcxCircuitInitDisableDefaultStreamBridgeHandling.

Si l’ACXPIN associé prend en charge le mode de traitement du signal audio spécifié, le format de données par défaut pour ce mode de traitement du signal audio est utilisé lors de la création du flux de sortie.

Si l’ACXPIN associé ne prend pas en charge le mode de traitement du signal audio spécifié, le format de données du flux d’entrée est utilisé lors de la création du flux de sortie.

ACXSTREAMBRIDGE doit être parenté d’un objet qui a ACXCIRCUIT comme ancêtre.

L’exemple d’utilisation est illustré ci-dessous.

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

Cet exemple montre comment définir un flux BRIDGE pour les modes RAW et 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);

Configuration requise d’ACX

Version minimale d’ACX : 1.0

Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.

Configuration requise

Condition requise Valeur
En-tête acxstreams.h

Voir aussi