| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| FlecK mp3 decoder | 2008-03-31 | ||
| readme.txt | 2026-05-23 | 2.0 kB | |
| bw_tabuleiro_3.3.0 build 00044.7z | 2026-05-23 | 81.7 kB | |
| bw_tabuleiro_3.2.9 build 00043.7z | 2024-12-24 | 18.9 MB | |
| bw_tabuleiro_3.2.7 build 00041.7z | 2024-09-30 | 9.1 MB | |
| bw_tabuleiro_3.2.6 build 00040.zip | 2021-10-29 | 32.5 MB | |
| bw_tabuleiro_3.2.5 build 00039.zip | 2021-10-29 | 32.0 MB | |
| bw_tabuleiro_3.2.2 build 00035.zip | 2021-10-28 | 32.0 MB | |
| bw_tabuleiro_3.2.1 build 00034.zip | 2021-10-28 | 32.0 MB | |
| bw_tabuleiro_3.2.0 build 00033.zip | 2021-10-28 | 31.5 MB | |
| bw_tabuleiro_3.1.8 build 00029.zip | 2021-10-03 | 12.4 MB | |
| bw_tabuleiro_3.1.7 build 00028.zip | 2021-10-03 | 5.2 MB | |
| bw_fleck_3.1.6 build 00027.zip | 2021-04-04 | 11.6 MB | |
| bw_tabuleiro_(fleck)_3.1.5_build_00025.zip | 2020-12-11 | 6.3 MB | |
| rsp_106.rar | 2014-04-16 | 3.0 MB | |
| rsp_105.rar | 2014-04-16 | 1.6 MB | |
| fleck 104.rar | 2014-04-14 | 820.1 kB | |
| rsp_fleck_103_src.zip | 2011-03-10 | 1.6 MB | |
| rsp_fleck_1.0.2_build0005.zip | 2010-04-21 | 271.3 kB | |
| Totals: 19 Items | 230.8 MB | 1 |
# mp32wav — Decodificador MP3 Paralelo Multi-Thread (NUMA-Aware) Conversor de MP3 para WAV utilizando **libmad** com decodificação paralela multi-thread, herdando a arquitetura de hiperescala do **Gzip3** (compartimentos, SMT-aware, NUMA-aware, thermal capping). ## Arquitetura ### Pipeline 1. **Escaneamento de frames**: Varre o arquivo MP3, localiza todos os sync words (`0xFFF`) e calcula tamanho/posição de cada frame via tabela de bitrate 2. **Divisão em ranges contíguos**: Cada thread recebe um bloco sequencial de frames (respeita o *bit reservoir* do Layer 3) 3. **Decodificação paralela**: Cada thread cria seu próprio `mad_stream` + `mad_frame` + `mad_synth` — zero compartilhamento de estado 4. **Reordenação implícita**: Threads escrevem direto no slot global `pcm_output[frame_id]` — sem locks, sem reordenação extra 5. **Escrita WAV**: Cabeçalho PCM 16-bit + dados contíguos ### Herança do Gzip3 - **NUMA-aware**: Alocação de memória nos nós corretos - **SMT-aware**: Núcleos físicos primeiro, virtuais depois - **Thermal capping**: Threads ociosas finalizam cedo (previsto) - **Controladores de barramento**: Semáforos de vazão de RAM (64 controladores) ## Compilação ```bash cd mp32wav make ``` Pré-requisitos: `libmad0-dev`, `libnuma-dev` ```bash sudo apt install libmad0-dev libnuma-dev ``` ## Uso ```bash ./mp32wav <entrada.mp3> <saida.wav> <threads> ``` Exemplo: ```bash ./mp32wav musica.mp3 musica.wav 8 ``` ## Performance A aceleração depende do número de frames MP3 e da quantidade de threads. Para arquivos longos (muitos frames), a escalabilidade é linear até o limite de núcleos físicos disponíveis. ## Estrutura dos Arquivos | Arquivo | Descrição | |---------|-----------| | `mp32wav.c` | Main, scan de frames, distribuição de tarefas, escrita WAV | | `decode.c` | Worker thread com mad_frame_decode + mad_synth | | `mp32wav.h` | Structs, defines, declarações | ## Licença GPLv3 (mesma do Gzip3).