> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ferramenta de codificação XMA2

> Ferramenta de codificação XMA2

A ferramenta de codificação de linha de comando XMA2 (XMA2Encode) converte um conjunto de arquivos PCM (Pulse Code Modulation) para o formato XMA2 ou um arquivo XMA2 para o formato PCM.

Essa ferramenta pode ser usada tanto para XBOX 360 quanto para XBOX One. Para o XBOX 360, você pode usar a saída da ferramenta sem nenhuma alteração. Para o XBOX One, a tabela `seek` pode precisar ter os bytes invertidos. O código para fazer isso está na seção [Formato do XBOX One](#ID4E2DAC) deste tópico.

* [Usando o XMA2Encode](#ID4E1)
* [Formato do XBOX One](#ID4E2DAC)
* [Escrevendo sua própria ferramenta de codificação XMA](#ID4EPEAC)

<a id="ID4E1" />

## Usando o XMA2Encode

O código e a tabela a seguir descrevem como usar o XMA2Encode.

| Coluna 1 |
| - |
| `XMA2Encode file [/TargetFile xmafile][/PCMOutputFile pcmfile][/DecodeToPCM pcmfile][/BlockSize][/Quality value][/FilterHighFrequencies][/LoopWholeFile][/UseLoopPoints][/Speaker pos][/MeasureTime][/Verbose][/Help]` |

| Opção | Descrição |
| - | - |
| `file` | Especifica o nome do arquivo a ser convertido. Você pode especificar vários pares de arquivo/posição de alto-falante: `XMA2ENCODE pcmfile [/Speaker pos ...] [pcmfile [/Speaker pos ...] ...] [options]`. Ao codificar vários arquivos, o XMA2Encode exige que os arquivos de entrada sejam todos de canal único ou todos estéreo, com o último fluxo sendo mono ou estéreo, dependendo do número de canais que estão sendo codificados.<br /><br />**Observação:** o XMA2Encode só oferece suporte a arquivos de áudio no formato PCM ou no formato XMA2 (com `/DecodeToPCM`). |
| `/TargetFile xmafile` | Codifica para `xmafile` (somente um arquivo de destino é permitido). |
| `/PCMOutputFile pcmfile` | Decodifica o arquivo XMA2 gerado de volta para `pcmfile`. Ao usar essa opção, a ferramenta gera dois arquivos de saída: um arquivo de áudio codificado em XMA2 e um arquivo PCM, que é o resultado da decodificação do arquivo XMA2 que acabou de ser criado. O arquivo PCM resultante tem a mesma qualidade de áudio que o novo arquivo XMA2. Você pode visualizar a qualidade do arquivo XMA2 no Windows. |
| `/DecodeToPCM pcmfile` | Decodifica um arquivo XMA2 existente para `pcmfile`. |
| `/BlockSize` | Especifica o tamanho do bloco de compactação XMA2 a ser usado (2 KB a 8.190 KB). O tamanho de bloco padrão é 64 KB. |
| `/Quality value` | Especifica o nível de qualidade de compactação XMA2 a ser usado (1 a 100). O valor padrão de qualidade é 60. |
| `/FilterHighFrequencies` | Filtra as altas frequências do arquivo de origem. |
| `/LoopWholeFile` | Reproduz o arquivo inteiro em loop, mesmo que já existam pontos de loop. `LoopWholeFile` e `UseLoopPoints` são mutuamente exclusivos. Se nem o argumento `LoopWholeFile` nem o argumento `UseLoopPoints` forem especificados, o arquivo não será reproduzido em loop, mesmo que existam pontos de loop. |
| `/UseLoopPoints` | Usa os pontos de loop existentes, se houver; caso contrário, não reproduz em loop. `LoopWholeFile` e `UseLoopPoints` são mutuamente exclusivos. Se nem o argumento `LoopWholeFile` nem o argumento `UseLoopPoints` forem especificados, o arquivo não será reproduzido em loop, mesmo que existam pontos de loop. |
| `/Speaker pos` | Especifica a atribuição de alto-falante para um canal do arquivo de origem. Essa opção deve vir imediatamente após o nome do arquivo. `pos` pode ser `L`, `R`, `C`, `LFE`, `LS`, `RS`, `LB` ou `RB`, em que `L` = Frontal esquerdo, `R` = Frontal direito, `C` = Frontal central, `LFE` = Baixa frequência, `LS` = Surround esquerdo, `RS` = Surround direito, `LB` = Traseiro esquerdo e `RB` = Traseiro direito.<br /><br />**Observação:** se um arquivo de entrada não tiver uma máscara de canal, ou se tiver uma máscara de canal com um número de bits definidos que não corresponda à contagem de canais do arquivo e nenhuma atribuição de alto-falante for especificada com a opção `Speaker`, o arquivo XMA resultante terá uma máscara de canal 0. |
| `/MeasureTime` | Mostra o tempo gasto na codificação. |
| `/Verbose` | Habilita a saída detalhada. |
| `/Help` | Mostra estas informações de uso. |

<a id="remarks" />

### Comentários

Todas as opções podem ser abreviadas para suas primeiras letras.

A tabela a seguir lista os códigos de erro que o XMA2Encode pode exibir para indicar problemas com a codificação.

| Código de erro | Descrição |
| - | - |
| 0x88890001 | Os pontos de loop especificados são inválidos. |
| 0x88890002 | O formato especificado é inválido. |
| 0x88890003 | Um parâmetro está fora do intervalo. |
| 0x88890004 | Falha em uma operação de leitura. |
| 0x88890005 | Havia um quadro XMA inválido. |
| 0x88890006 | Havia um quadro XMA incompleto. |
| 0x88890007 | O bit de preenchimento era zero. |
| 0x88890008 | Falha em uma busca de dados. |

<a id="ID4E2DAC" />

## Formato do XBOX One

A saída do XMA2Encode deve ter os bytes invertidos como `ULONG` para o XBOX One. Se a entrada for um arquivo .wav, a saída poderá ser usada sem alteração.

Para inverter os bytes da tabela `seek`, use as linhas de código a seguir.

```cpp theme={null}
for(UINT32 i = 0;(i < xmaformat->BlockCount);i++)
    {
       rgpXMASeekTable[i] = _byteswap_ulong(rgpXMASeekTable[i]);
    }  
```

Considere adicionar as linhas de código ao seu aplicativo para testar a funcionalidade e, depois, talvez escrever uma ferramenta separada para realizar a inversão, de modo que nenhum pré-processamento seja exigido do seu aplicativo.

<a id="ID4EPEAC" />

## Escrevendo sua própria ferramenta de codificação XMA

É possível escrever sua própria ferramenta de codificação usando os métodos definidos em *xmaencoder.h* e implementados em *xmaencoder.lib*. Por padrão, o arquivo *xmaencoder.h* está localizado na pasta *C:\Program Files (x86)\Microsoft GDK\191100\GXDK\toolKit\include*. Por padrão, o arquivo *xmaencoder.lib* está localizado na pasta *C:\Program Files (x86)\Microsoft GDK\191100\GXDK\toolKit\lib\amd64*.

O único método disponível no cabeçalho e na biblioteca é [XAudio2XMAEncoder](/pt-BR/build/console-features/audio/tools/xma2encoder/methods/xaudio2xmaencoder-xmaencoder-xbox-microsoft-m).

Não use os métodos `XMA2InMemoryEncoder` e `XMAInMemoryEncoder` (herdados) definidos no cabeçalho.

<a id="ID4EDFAC" />

## Nesta seção

[Referência do codificador XMA2](/pt-BR/build/console-features/audio/tools/xma2encoder/atoc-xmaencoder)
Descreve as funções disponíveis em *xmaencoder.lib*.

<a id="ID4EJFAC" />

## Confira também

[Visão geral do XMA2](/pt-BR/build/console-features/audio/overviews/xma2-overview)


## Related topics

- [Visão geral do XMA2](/pt-BR/build/console-features/audio/overviews/xma2-overview.md)
- [XAudio2XMAEncoder](/pt-BR/build/console-features/audio/tools/xma2encoder/methods/xaudio2xmaencoder-xmaencoder-xbox-microsoft-m.md)
- [Biblioteca de codificação XMA2 e ferramenta de linha de comando](/pt-BR/build/console-features/audio/tools/xma2encoder/index.md)
- [Biblioteca de codificação xWMA e ferramenta de linha de comando](/pt-BR/build/console-features/audio/tools/xwmaencoder/index.md)
- [Informações de referência do codificador XMA2](/pt-BR/build/console-features/audio/tools/xma2encoder/atoc-xmaencoder.md)
