проблема при окрытии нескольких преобразующих стримов (acmStreamOpen) из одного потока. первый открываеться нормально, остальные возвращают код ACMERR_NOTPOSSIBLE. При этом перед этим делаю acmStreamOpen с флагом ACM_STREAMOPENF_QUERY для все позжеоткрываемых стримов, код возврата MMSYSERR_NOERROR. Такое чувство что в потоке может быть открыт только один преобразующий стрим... помогите плз кто чем может....
----- инициализация форматов -----------
UCHAR extMP3DataLow_records[12] = {0x01,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x01,0x00,0x71,0x05};
UCHAR extMP3DataMedium_records[12] = {0x01,0x00,0x02,0x00,0x00,0x00,0x68,0x00,0x01,0x00,0x71,0x05};
UCHAR extMP3DataHigh_records[12] = {0x01,0x00,0x02,0x00,0x00,0x00,0x68,0x00,0x01,0x00,0x71,0x05};
//----------------------------------------------------------
// 44100Hz 16bit mono // digitate quality
//----------------------------------------------------------
m_wfx_wav.wFormatTag = WAVE_FORMAT_PCM;
m_wfx_wav.nChannels = 1;
m_wfx_wav.nSamplesPerSec = 44100;
m_wfx_wav.nAvgBytesPerSec = 88200;
m_wfx_wav.nBlockAlign = 2;
m_wfx_wav.wBitsPerSample = 16;
m_wfx_wav.cbSize = 0;
//----------------------------------------------------------
// 8 kBit/s 11025 mono // low quality
//----------------------------------------------------------
m_wfx_mp3_low.wFormatTag = WAVE_FORMAT_MPEGLAYER3;
m_wfx_mp3_low.nChannels = 1;
m_wfx_mp3_low.nSamplesPerSec = 11025;
m_wfx_mp3_low.nAvgBytesPerSec = 1000;
m_wfx_mp3_low.nBlockAlign = 1;
m_wfx_mp3_low.wBitsPerSample = 0;
m_wfx_mp3_low.cbSize = 12;
memcpy(extMP3Data_low, extMP3DataLow_records, 12);
//----------------------------------------------------------
// 16 kBit/s 11025 mono // medium quality
//----------------------------------------------------------
m_wfx_mp3_med.wFormatTag = WAVE_FORMAT_MPEGLAYER3;
m_wfx_mp3_med.nChannels = 1;
m_wfx_mp3_med.nSamplesPerSec = 11025;
m_wfx_mp3_med.nAvgBytesPerSec = 2000;
m_wfx_mp3_med.nBlockAlign = 1;
m_wfx_mp3_med.wBitsPerSample = 0;
m_wfx_mp3_med.cbSize = 12;
memcpy(extMP3Data_med, extMP3DataMedium_records, 12);
//----------------------------------------------------------
// 32 kBit/s 22050 mono // high quality
//----------------------------------------------------------
m_wfx_mp3_high.wFormatTag = WAVE_FORMAT_MPEGLAYER3;
m_wfx_mp3_high.nChannels = 1;
m_wfx_mp3_high.nSamplesPerSec = 22050;
m_wfx_mp3_high.nAvgBytesPerSec = 4000;
m_wfx_mp3_high.nBlockAlign = 1;
m_wfx_mp3_high.wBitsPerSample = 0;
m_wfx_mp3_high.cbSize = 12;
memcpy(extMP3Data_high, extMP3DataHigh_records, 12);
----------------------------------------
----- проверка в потоке ---------------
MMRESULT rez;
rez = acmStreamOpen(&hStream_low , 0, &m_wfx_wav, &m_wfx_mp3_low, 0, 0, 0, ACM_STREAMOPENF_QUERY);
rez = acmStreamOpen(&hStream_med , 0, &m_wfx_wav, &m_wfx_mp3_med, 0, 0, 0, ACM_STREAMOPENF_QUERY);
rez = acmStreamOpen(&hStream_high, 0, &m_wfx_wav, &m_wfx_mp3_high, 0, 0, 0, ACM_STREAMOPENF_QUERY);
----------------------------------------
----- окрытие стримов в потоке ---------
rez = acmStreamOpen(&hStream_low, 0, &m_wfx_wav, &m_wfx_mp3_low, 0, 0, 0, 0);
if( rez != MMSYSERR_NOERROR)
throw "Can not open convert low data stream";
rez = acmStreamOpen(&hStream_med, 0, &m_wfx_wav, &m_wfx_mp3_med, 0, 0, 0, 0);
if( rez != MMSYSERR_NOERROR)
throw "Can not open convert med data stream";
rez = acmStreamOpen(&hStream_high, 0, &m_wfx_wav, &m_wfx_mp3_high, 0, 0, 0, 0);
if( rez != MMSYSERR_NOERROR)
throw "Can not open convert high data stream";
----------------------------------------
мой ICQ : 158 551 487