OK, dwie rzeczy. Pierwsza to wielkość
format_wyjscia
. Pisałem, że musi/powinna być większa niż rozmiar struktury WAVEFORAMTEX, a u ciebie jest właśnie równa sizeof(WAVEFORMATEX)
. Jedynie do funkcji dałeś informacje, że jest 100 - to może powodować błędy. Pokaże ci jak ja zrobiłbym to tyle, że w C++ (w delphi nie programuje ;)):
```cpp
char wfx_buff[100]; //<--- buffor 100-bajtowy
WAVEFORMATEX *format_wyjscia; //<--- wskaźnik na WAVEFORMATEX
memset(wfx_buff,0,100); //<--- wyzerowanie wfx_buff
format_wyjscia=(WAVEFORMATEX*)wfx_buff; //<--- przypisanie wskaźnikowi adresu wfx_buff
format_wyjscia->wFormatTag=WAVE_FORMAT_GSM610; //<--- tu wiadomo
mmr=acmFormatSuggest(NULL,&format_zrodla,format_wyjscia,100,ACM_FORMATSUGGESTF_WFORMATTAG);
Druga sprawa to wywołanie
acmStreamOpen
. Nie ustawiłeś flagi fdwOpen
:
```cpp
acmStreamOpen(handle_stream,nil,format_zrodla, format_wyjscia, nil, 0, 0, ACM_STREAMOPENF_NONREALTIME);
A tak poza tym, to sprawdzaj jakie kody błędów zwraca funkcja wtedy będziesz wiedział co jest nie tak (plik msacm.h). Może być też tak, że encoder nie akceptuje formatu wejściowego.