информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медЗа кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Не трогай их и будет тебе счастье :-) 21.10.03 07:49  Число просмотров: 1377
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Создаю wav файл, проблемм с данными нет, проблемма в
> заполнении заголовков. Непонятны некоторые пункты:
> typedef struct {
> char id[4]; - идентификатор файла = "RIFF" =
> 0x46464952
> long len; - длина файла без этого заголовка
> } IDRiff;
> Что есть len? как я понял это = длинна файла -
> sizeof(данная структуры).
Length - длина данных для данного chunk-f. В чанке RIFF содержится весь файл.

> typedef struct {
> char id[4]; - идентификатор = "WAVE" = 0x45564157
> char fmt[4]; - идентификатор = "fmt " = 0x20746D66
> long len; - длина этого куска WAV - файла,
> } IDChuckWave;
> Что есть len здесь? Как я понял это длинна файла без
> предыдущих двух структур.
А в чанке WAVE/fmt - звуковой формат (WAVEFORMAT/WAVEFORMATEX) и его длина будет равна полю cbSize из этой структуры.

> typedef struct {
> int type; - тип звуковых данных, бывает - !!!
> 1 - просто выборка;
> 0x101 - IBM mu-law;
> 0x102 - IBM a-law;
> 0x103 - ADPCM.
> int channels; - число каналов 1/2 - !!!
> long SamplesPerSec; - частота выборки - !!!
> long AvgBytesPerSec; - частота выдачи байтов
> int align; - выравнивание
> int bits; - число бит на выборку - !!!
> } IDWave;
Не смотри сюда смотри в MSDN. На самом деле эта структура WAVEFORMAT как я уже написал. Сохраняется в файл один к одному как была получена из ACM. Как получить нужный формат или смотри пример или догадайся сам (MSDN в помощь).

> Что есть AvgBytesPerSec и откуда берётся, зависит ли она от
> SamplesPerSec?
> Непонятно, что align должен содержать?
Читай MSDN.

> Описание формата взято с
> http://codenet.ru/progr/formt/rawsam.php
А потому как не фиг :-)
Похоже, ты очень невнимательно читал пример, который я тебе дал. Там есть работа с wav файлами.

Вкратце это выглядит так: заходишь в chunk (mmioDescend), делаешь в нем всю необходимую работу (например создаешь другие chunk-и или записываешь данные), выходишь из chunk-а (mmioAscend) - поле Length заполняется автоматически.

И не надо изобретать велосипедов и работать с wav форматом напрямую. Иначе я предложу работать напрямую и с файловой системой или еще ниже - с дисковым контроллером, а также похерить ACM и написать свой кодек mp3.
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach