Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.13;
Скачать: CL | DM;

Вниз

ACM codec   Найти похожие ветки 

 
Zoom ©   (2008-05-07 00:30) [0]

Подскажите пожалуйста если кто сталкивался с
http://homepages.borland.com/torry/vcl/mmedia/audio/acm.zip
там три компонента ACMDialog ACMWaveIn ACMWaveOut
позволяют кодиаровать/декодировать на ходу звук чере ACM codec


почему Delphi7 нормально компилирует этот пакет, не считая сетевых дел, но в процессе выполнения программы происходит ошибка в acmdialog.pas ? процес уходит в  ntdll.DlgBreakPoint :(
вот в этой функции:
res:=acmFormatChoose(fc);  

описанная в msacm.pas ???


 
Zoom ©   (2008-05-07 21:34) [1]

Также в тех компонентах происходит еще ошибка , опят таки у автора скомпилированный пример работает нормально, у меня почему-то нет... правда неизвестно на кокой Delphi (stud_pe показал 4-5) компилировал но неужели 7ая собирает проект как-то иначе?
я попробовал принудительно открыть ACMWaveOut1.Open(pw); со следующими параметрами:


pw.wFormatTag :=$31;   //WAVE_FORMAT_GSM610; set default format to GSM6.10
  pw.nChannels := 1;     //mono
  pw.nSamplesPerSec := 8000;
  pw.nAvgBytesPerSec:= 8000; { for buffer estimation }
  pw.nBlockAlign:=1;      { block size of data }
  pw.wbitspersample := 8;
 // pw.cbSize:= 65535;


ACMWaveOut1.Open(pw);

и все равно WaveOutOpen дает ошибку 32 ???
может кто знает в чем есть существенные отличия в компиляторах напр Delphi3 и Delphi7, особено касаемых типу вызову функции из системных dll ???

/////////////////////////////////////////
 

procedure TACMWaveOut.Open(format:PWaveFormatEx);
var
waveformat:PWaveFormatEx;
maxsizeformat,i:integer;
begin
 if (format<>nil) and (HWaveOut1=nil) then
  begin
    acmMetrics(0, ACM_METRIC_MAX_SIZE_FORMAT,MaxSizeFormat);
    getmem(WaveFormat, MaxSizeFormat);
    move(format^,waveformat^,maxsizeformat);
    HWaveOut1:=new(PHWaveOut);
    //create playing handle with waveformatex structure
    i:=WaveOutOpen(HWaveOut1,0,waveformat,handle,0,CALLBACK_WINDOW or WAVE_MAPPED);
    if i<>0 then
    begin
     showmessage("Problem creating playing handle" + inttostr(i));
     exit;
    end;
    closed:=false;
   end;
end;


 
Zoom ©   (2008-05-08 03:42) [2]

Вроде разобрался !
Прикол в том что функция  acmFormatChoose() в msacm32.dll
почему-то не хочет дружить с дебагером делфи, программа
запускается но только не из IDE, может кто знает в чем глюк
дебагера и как его можно подличить, или этот диагноз не лечится?
с такими приколами и самому не долго в дурке оказаться :)


 
han_malign ©   (2008-05-08 15:01) [3]


> ntdll.DlgBreakPoint

у тебя там случайно Lame MP3 кодек не стоит, с версией 3.93 и ниже?
Он память повреждает при некоторых условиях(хорошо хоть только в своем контектсе - приложение не валится). Отуда и может вылазить точка останова в проверке целостности кучи...

Ну и на другие левые кодеки стоит посмотреть, которые вполне могут быть скомпилированны в отладочной версии.

А отладчик Delphi тут не причем - он все правильно делает - у него в генокоде записанно останавливаться на исключении генерируемом прерыванием asm int 3 которое и дергается в ntdll.DlgBreakPoint...

Неужто название этой функции никаких ассоциаций не навеяло???


 
Zoom ©   (2008-05-08 17:32) [4]

Неужто название этой функции никаких ассоциаций не навеяло???

да я в первый раз полез в дебри мультимедии...

вот он
vct3216.acm
1.6.0.17
Voxware Audio Compression Manager Driver
попался !

Огромнейшее спасибо за совет!



Страницы: 1 вся ветка

Текущий архив: 2011.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
2-1290500657
adigozelov
2010-11-23 11:24
2011.02.13
Lisenziya


11-1230244484
Лотос
2008-12-26 01:34
2011.02.13
Переименовать файл


15-1288709198
Andy BitOff
2010-11-02 17:46
2011.02.13
Photoshop в СССР


15-1287405980
Ires
2010-10-18 16:46
2011.02.13
Исходники


15-1286801210
NailMan
2010-10-11 16:46
2011.02.13
Закрыл сезон FPV