Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1290671015
Jacksotnik
2010-11-25 10:43
2011.02.13
stringgrid


15-1289169116
NailMan
2010-11-08 01:31
2011.02.13
Летающие тряпочки


15-1288373994
Cross
2010-10-29 21:39
2011.02.13
Delphi


15-1288998079
Дмитрий Тимохов
2010-11-06 02:01
2011.02.13
Когда-то надо остановиться - тема Дней Рождений


2-1290266910
izja
2010-11-20 18:28
2011.02.13
DSpack фильтры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский