Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2012, 12:54   #1
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию странное поведение AVIStreamWrite

вроде бы все тривиально. например хочу записать один кадр, вот так:
Код:
AVIStreamWrite(stream, i, 1, reinterpret_cast <void*> (memory), sizeImage, 0, NULL, NULL);
работает.
но если хочу вести запись, например по пять одинаковых кадров вот так:
Код:
AVIStreamWrite(stream, 5*i, 5, reinterpret_cast <void*> (memory), sizeImage, 0, NULL, NULL);
так выдается ошибка. что не так делаю?
Kukurudza вне форума Ответить с цитированием
Старый 07.08.2012, 12:57   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

потому что надо читать что значат параметры и думать прежде чем менять их.

в вашем случае ради 5-ти одинаковых кадров, учитывая что в буфере один, вызывать надо процедуру 5 раз.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.08.2012, 13:02   #3
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

ну если вызывать пять раз подряд, то естественно работает. но это же не айс. производительность падает катастрофически. как-нибудь ускорить возможно?
lSamples же и показывает сколько копий кадра хочу сделать, нэ?
Kukurudza вне форума Ответить с цитированием
Старый 07.08.2012, 16:45   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
lSamples же и показывает сколько копий кадра хочу сделать, нэ?
нет, оно показывает сколько записей вы хотите записать из буфера(и они должны там быть)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.08.2012, 06:37   #5
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

то есть:
если хочу записывать по пять кадров должен писать так:
Код:
AVIStreamWrite(stream, i, 5, reinterpret_cast <void*> (memory), sizeImage, 0, NULL, NULL);
но memory грубо говоря должна быть в пять раз больше, и там должна лежать, 5 раз продублированная информация?
Kukurudza вне форума Ответить с цитированием
Старый 09.08.2012, 06:25   #6
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

проблема решена очередью из фреймов.
Kukurudza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
странное поведение компилятора Kukurudza Общие вопросы C/C++ 10 23.09.2011 08:22
странное поведение COM метода oldDed C# (си шарп) 2 13.09.2011 17:17
странное поведение WNetAddConnection2 sdsfy Работа с сетью в Delphi 0 02.08.2011 23:35
Странное поведение gets alex_alpha Общие вопросы C/C++ 3 27.03.2010 18:21
Странное поведение процедуры Sergey1974 Общие вопросы Delphi 2 11.12.2009 21:41