информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вопрос на отвлечённую тему (про модем) 21.10.03 21:40  Число просмотров: 1232
Автор: CrazyPitbull Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Слушай, ты подкинул мне классный пример для работы со звуковухой, а нет такого же только по работе с модемом? Если есть подкинь линку, буду очень благодарен. Как я понимаю отличеие в них немного, работа с устройством осуществляется подобным образом, только используются TAPI функции(аналоги работы со звуковым устройством).
<programming>
[C++] Обработка сообщений звуковой карты... 19.10.03 18:12  
Автор: CrazyPitbull Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Стоит задача записать в файл звук от микрафона. Я определил ID Devis'a (звуковухи), заполнил все необходимые структуры отвечающие за качество звука, открыл устройство waveInOpen(...) затем его запустил waveInStart(). Теперь нужно считать данные в файл. Как я понимаю это нужно делать посредством сообщения MM_WIM_DATA... Если нет, прошу меня поправить и подсказать как надо потаму, что ничего у меня не получается!!!! Если есть какие исходнячки или где в сети информация, прошу поделитесь...
[C++] Direct to disk recorder 20.10.03 11:12  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Стоит задача записать в файл звук от микрафона. Я
> определил ID Devis'a (звуковухи), заполнил все необходимые
> структуры отвечающие за качество звука, открыл устройство
> waveInOpen(...) затем его запустил waveInStart(). Теперь
> нужно считать данные в файл. Как я понимаю это нужно делать
> посредством сообщения MM_WIM_DATA... Если нет, прошу меня
Все верно :-)

> поправить и подсказать как надо потаму, что ничего у меня
> не получается!!!! Если есть какие исходнячки или где в сети
> информация, прошу поделитесь...
Сабж в KB от микрософты: http://download.microsoft.com/download/platformsdk/sample9/3.1/W31/EN-US/Ddrec.exe

Есть чтение/запись wav файла в/из произвольного звукового устройства с произвольным кодеком.

Если нужно больше инфы, советую посмотреть архивы форума. Здесь пролетало довольно детальное обсуждение этого вопроса. Правда в контексте voice-modem-а, что не меняет сути, т.к. там нужно найти звуковое устройство этого самого модема и работать с ним самым обычным образом.

http://download.microsoft.com/download/platformsdk/sample9/3.1/W31/EN-US/Ddrec.exe
Вопрос по заголовкам wav файла 20.10.03 23:27  
Автор: CrazyPitbull Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Создаю wav файл, проблемм с данными нет, проблемма в заполнении заголовков. Непонятны некоторые пункты:
typedef struct {
char id[4]; - идентификатор файла = "RIFF" = 0x46464952
long len; - длина файла без этого заголовка
} IDRiff;
Что есть len? как я понял это = длинна файла - sizeof(данная структуры).
typedef struct {
char id[4]; - идентификатор = "WAVE" = 0x45564157
char fmt[4]; - идентификатор = "fmt " = 0x20746D66
long len; - длина этого куска WAV - файла,
} IDChuckWave;
Что есть len здесь? Как я понял это длинна файла без предыдущих двух структур.
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;
Что есть AvgBytesPerSec и откуда берётся, зависит ли она от SamplesPerSec?
Непонятно, что align должен содержать?

Описание формата взято с http://codenet.ru/progr/formt/rawsam.php
Не трогай их и будет тебе счастье :-) 21.10.03 07:49  
Автор: 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.
Вопрос на отвлечённую тему (про модем) 21.10.03 21:40  
Автор: CrazyPitbull Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Слушай, ты подкинул мне классный пример для работы со звуковухой, а нет такого же только по работе с модемом? Если есть подкинь линку, буду очень благодарен. Как я понимаю отличеие в них немного, работа с устройством осуществляется подобным образом, только используются TAPI функции(аналоги работы со звуковым устройством).
Нету :-( 21.10.03 22:30  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Слушай, ты подкинул мне классный пример для работы со
> звуковухой, а нет такого же только по работе с модемом?
В свое время долго и нудно разбирался по юзнетовским архивам (groups.google.com). Советую для начала поискать в форуме - там я довольно подробно расписал все. А если будут вопросы - обращайся, может чего и вспомню (было это года два назад).

> Если есть подкинь линку, буду очень благодарен. Как я
> понимаю отличеие в них немного, работа с устройством
> осуществляется подобным образом, только используются TAPI
> функции(аналоги работы со звуковым устройством).
Не совсем. Тапи действительно используется, но только для инициализации войс-режима и получения хендла звукового устройства. А дальше в ход идут совершенно те же методы и функции, что и для обычных звуковых устройств.
ТО, что надо!!! 20.10.03 11:41  
Автор: CrazyPitbull Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1




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


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