Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
31 / 30 / 19
Регистрация: 18.01.2010
Сообщений: 123
1

callback функция

09.02.2012, 22:41. Просмотров 1151. Ответов 2
Метки нет (Все метки)

Здраствуйте!!!

Занимаюсь разработкой снифера под DVB-карту. Пытаюсь получить MPEG-поток.
Проблема заключается в том, что необходимо фрагментировать поток.

При вызове функции установки сигнала вызывается callback-функция, которая записывает поток в файл.
Как досрочно выйти из callback-функции. Она полностью захватывает поток и его нельзя фрагментировать.

Кто знает, напишите свои соображения. Буду очень благодарен.

небольшой код прдеставлен ниже:

void __stdcall MyDVBCallBack(Byte *buf, int len) //callback-функция
{
DWORD dwBytesWritten = NULL;
dwPos = SetFilePointer(hfile, 0, NULL, FILE_END);
ov.Offset = 0xFFFFFFFF;
ov.OffsetHigh = 0xFFFFFFFF;
WriteFile(hfile, buf, len, &dwBytesWritten, &ov);
}

hfile = CreateFile("123.bin", GENERIC_WRITE, 0, NULL,
CREATE_NEW, FILE_FLAG_OVERLAPPED, NULL); //создание файла для записи

pSetFilter(8192, &MyDVBCallBack, 2, 1, &lpFilter) функция установки сигнала
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2012, 22:41
Ответы с готовыми решениями:

CALLBACK
Здравствуйте, уважаемые форумчане. Передо мной стоит задача записи звука с микрофона в файл. Как...

callback метода класса
Предыстория: нужно последовательно запускать несколько однотипных циклов большой степени...

Callback. Так ли используется на практике?
Доброго времени суток. Сам по большему счету я работаю с Delphi, но тут сложилась надобность в...

Callback функция
Простой вопрос: я правильно понял, сallback-функцией просто называется функция, к которой...

2
Evg
Эксперт CАвтор FAQ
21118 / 8134 / 628
Регистрация: 30.03.2009
Сообщений: 22,448
Записей в блоге: 30
09.02.2012, 23:24 2
Что понимается под
Цитата Сообщение от Oleg462 Посмотреть сообщение
досрочно выйти
?
0
31 / 30 / 19
Регистрация: 18.01.2010
Сообщений: 123
10.02.2012, 15:10  [ТС] 3
void __stdcall MyDVBCallBack(Byte *buf, int len) //callback-функция
{
DWORD dwBytesWritten = NULL;
dwPos = SetFilePointer(hfile, 0, NULL, FILE_END);
ov.Offset = 0xFFFFFFFF;
ov.OffsetHigh = 0xFFFFFFFF;
WriteFile(hfile, buf, len, &dwBytesWritten, &ov);
}

данная функция записывает dvb-поток в файл постоянно, пока не удалишь фильтр.
мне необходимо указать количество байт для записи, таким образом фрагментируя поток.

какое необходимо условие, чтобы допустим записалось 200 mb удалить фильтр(pDelFilter), затем заново его включить(pSetFilter)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2012, 15:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

CALLBACK функция
Вот насчет этих функций хотелось бы узнать следующее: Их НЕЛЬЗЯ вызывать в пользовательском коде,...

Что такое CALLBACK функция......
Что такое CALLBACK функция......

Метод класса не работает как callback-функция
Всем привет! Помогите разобраться с синтаксисом. Есть gui-прога, в которой содержится функция...

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них . В...

CallBack C++
Всем привет! Похожий вопрос. Нужно заюзать колбеки. Если работаю без класов т.е функция не...

Не понимаю CALLBACK
Всем привет! Помогите пожалуйста разобраться: хочу в коснтрукторе объекта передавать указатель...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.