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

Вниз

Vorbis/OGG   Найти похожие ветки 

 
Goorus ©   (2006-04-04 13:57) [0]

Пытаюсь сделать поддержку ogg  в своей проге, с потоками всё получилось, буферы правильно работают, но столкнулся с проблемой, когда файл имеет малый размер. Есть огг всего 6 килобайт, и вот её не получается проиграть. Проблема возникает ещё при чтении заголовка:

 FStream := TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite);
 res := ov_open_callbacks(FStream, vf, nil, 0, ops_callbacks);

На второй строке программа подвисает (где-то полсекунды), ну а дальше звук не читается

 ...
 repeat
   Change := ov_read(vf, PCM[BytesRead], ASize - BytesRead, 0, 2, 1, nil);
   BytesRead := BytesRead + Change;
 until (Change = 0) or (BytesRead = ASize);

Получается, что Change = 0 и ничего в буфер не загружается.
Видимо, проблема в том, что не правильно загружаются данные vf: OggVorbis_File. Смотрел, что присходит после вызова ov_open_callbacks, так вот там беспрерывно вызывается функция ops_seek_func, причём с параметрами перемиститься относительно начала файла, а offset - отрицательный и всё время уменьшается на 8500. Похоже, такой вызов происохдит до тех пор, пока offset не станет меньше Low(Int64), а потом эти вызовы просто прекращаются, так ничего и не загрузив.

Может кто сталкивался или просто знает как правильно?


 
VEG ©   (2006-05-28 13:41) [1]

Странно. Разве декодер Ogg Vorbis портирован на Delphi? Или вы пользуетесь внешними библиотеками?


 
Rial ©   (2006-05-28 18:52) [2]

Вообщето - то имеется расширение для работы специально с OGG файлами.
Посмотри:

  alGenBuffers(1,@Id);
  alBufferData(Id,AL_FORMAT_VORBIS_EXT,Stream.Memory,Stream.Size,44100);

А, по большому счету, у меня тоже частенько вохникают глюки с этими библиотеками...



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

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

Наверх




Память: 0.47 MB
Время: 0.056 c
2-1167314120
Sn
2006-12-28 16:55
2007.01.21
Подсчет слов совпадающих с данным в текстовом файле


2-1167756911
azl
2007-01-02 19:55
2007.01.21
Изменение цвета от #000000 до #FFFFFF с заданным шагом


15-1165383443
IMHO
2006-12-06 08:37
2007.01.21
Крамник проиграл матч компьютеру


2-1167664055
-John-Doe-
2007-01-01 18:07
2007.01.21
Есть TListView в режиме Raport


15-1167064904
kaZaNoVa
2006-12-25 19:41
2007.01.21
Религия как модель счастливой жизни человека