XApuDecodeConvertCommand
Define los parámetros de procesamiento de descodificación o descodificación-conversiónSintaxis
Miembros
idTipo: XApuCommandId Especifica los parámetros de comando base que se enviarán al hardware para su procesamiento. El mismo XApuCommandId se establecerá en XApuResult::id pitchRampRate
Tipo: float Es un valor que se sumará o restará del tono actual para cada salida. Este valor no tiene signo y el motor del convertidor de frecuencia de muestreo decidirá automáticamente si sumarlo o restarlo del tono actual en función del valor de tono de destino. De forma predeterminada, este valor debe establecerse en XAPU_DEFAULT_PITCH_RAMP_RATE. targetPitch
Tipo: float El tono de destino de la operación de conversión actual. Para XApuProcessType::DecodeOpus, este valor se omite. firstFrameIndex
Tipo: uint32_t Especifica el índice del primer fotograma que se copiará en el búfer de salida. firstFrameIndex, junto con frameCount, especifica lo que se copia en el búfer de salida. Nuestra implementación no incluye los datos residuales al usar firstFrameIndex. Si hay 100 fotogramas residuales, firstFrameIndex se establece en 50 y frameCount se establece en 200, se agregarán 200 fotogramas a todo el residuo a partir del fotograma número 50 de los datos descodificados. Esto significa que el búfer que entra en el HSRC tendrá los 100 fotogramas originales del residuo seguidos de 200 fotogramas a partir del fotograma número 50 del paquete descodificado actual. Un fotograma de audio en una secuencia PCM es un conjunto de muestras (el conjunto contiene una muestra por cada canal de la secuencia) que se reproducirá o se capturó al mismo tiempo (tic de reloj). Por lo tanto, el tamaño de un fotograma de audio es el tamaño de la muestra multiplicado por el número de canales de la secuencia. Por ejemplo, el tamaño de fotograma de una secuencia estéreo (2 canales) con muestras float de 32 bits es de ocho bytes. Este valor debe estar entre 0 y 960 para secuencias Opus con una duración de paquete de 20 milisegundos. Debe estar entre 0 y 480 para secuencias Opus con una duración de paquete de 10 milisegundos. De forma predeterminada, este valor se establece en cero. Para las entradas de preroll, este valor debe ser mayor que cero. Las entradas de preroll se procesarán, pero no generarán datos de salida. frameCount
Tipo: uint32_t Este parámetro es obligatorio cuando los datos de entrada no están comprimidos en el procesamiento XApuProcessType::ConvertPCM, con las siguientes restricciones:
- Para datos PCM de entrada desentrelazados mono y estéreo, el valor mínimo es 4, el valor máximo es 960 y el valor debe ser múltiplo de 4.
- Para datos PCM de entrada entrelazados estéreo, el valor mínimo es 8, el valor máximo es 960 y el valor debe ser múltiplo de 8.
- Para XApuProcessType::DecodeOpus, este valor se puede usar para truncar el recuento de fotogramas de salida.
- Para XApuProcessType::DecodeConvertOpus, este valor se puede usar para truncar el número de fotogramas descodificados que se pasarán al convertidor.
Tipo: uint32_t Longitud de los datos de entrada en bytes. La longitud debe ser un múltiplo de 16. Para el caso de XApuProcessType::ConvertPCM, este valor debe ser igual a XApuDecodeConvertCommand::frameCount x XApuDecodeConvertActivateCommand::channelCount x sizeof(float) inputData
Tipo: void* Puntero a los datos de entrada para su procesamiento. Este valor debe ser igual o mayor que XApuConnectOutputParameters::data y menor que XApuConnectOutputParameters::data + XApuConnectInputParameters::dataLength devuelto por XApuConnect. Este búfer debe estar alineado a 16 bytes. Para XApuProcessType::DecodeOpus y XApuProcessType::DecodeConvertOpus, los datos de entrada deben ser un único paquete Opus (SILK, CELT o híbrido) Para XApuProcessType::ConvertPCM, los datos de entrada deben ser PCM float (32 bits). Si la marca XApuConnectOptions::DeinterleavedInput está establecida, los datos PCM de entrada deben estar desentrelazados. Para la entrada desentrelazada de XApuProcessType::ConvertPCM, los datos del primer canal comienzan en XApuDecodeConvertCommand::inputData y los datos del segundo canal comienzan en XApuDecodeConvertCommand::inputData + (XApuDecodeConvertCommand::inputDataLength / 2) maxOutputDataLength
Tipo: uint32_t Longitud máxima de los datos de salida en bytes. La longitud debe ser un múltiplo de 16. No debe superar XApuConnectInputParameters::baseDataLength. outputData
Tipo: void* Puntero que contendrá los datos de salida PCM float (32 bits). Este valor debe ser igual o mayor que XApuConnectOutputParameters::data y menor que XApuConnectOutputParameters::data + XApuConnectInputParameters::baseDataLength devuelto por XApuConnect. Este búfer debe estar alineado a 16 bytes. Cuando la marca XapuConnectOptions::DeinterleavedOutput está establecida, los datos se proporcionarán desentrelazados. En cada paquete, el punto medio del desentrelazado se especificará de la siguiente manera: XApuProcessType::DecodeOpus:
- Los fotogramas del canal izquierdo se colocarán de 0 a (XapuResult::outputFrameCount-1); los fotogramas del canal derecho se colocarán desde (XapuResult::outputFrameCount) hasta el final del búfer
- Los fotogramas del canal izquierdo se colocarán de 0 a (XApuConnectInputParameters::maxFrameCountPerOutput - 1)
- Los fotogramas del canal derecho se colocarán desde XApuConnectInputParameters::maxFrameCountPerOutput hasta el final del búfer
- Esto es así incluso si OutputFrameCount es menor que maxFrameCountPerOutput. En este caso, use XApuConnectInputParameters::maxFrameCountPerOutput para determinar el punto medio del búfer y XapuResult::outputFrameCount para calcular el número de fotogramas por canal que se deben copiar.
Comentarios
XApuDecodeConvertCommand lo usa para los parámetros de procesamiento de descodificación y conversión. Para obtener información sobre los miembros de XApuCommandId, consulte XApuCommandId. Para obtener más información sobre XApuPorcessType, consulte XApuProcessType.
El intervalo de la velocidad de rampa de tono va de 2^-18 (0,000003814697265625) a 8,0. Cualquier valor menor que el mínimo hará que la rampa no haga nada: el tono se mantendrá en el valor actual. Siempre que la velocidad de rampa sea mayor que el valor absoluto de la diferencia entre el valor actual y el de destino, la rampa se produce en un período de una muestra.
Requisitos
Encabezado: xapu.h Plataformas compatibles: XBOX Series X|SDocumentación conceptual
Consulte también
XApuEnqueueCommandXApuResult
XAPU
