Форум: "Media";
Текущий архив: 2011.02.13;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Media";
Текущий архив: 2011.02.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c