![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Есть исходный фильтр получения скринов с экрана.
Никто не знает Как можно задать колличество FPS в этом фильтре? - ![]() т.е. Мне наобходимо чтобы функция FillBuffer вызывалась например 3 раза в секунду (3 FPS) -------------------- Ни цего не понимаю |
|||
|
||||
sandland |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 28.4.2007 Репутация: нет Всего: 1 |
ну по логике как считается FPS...есть счетчик, который прибавляется +1 с каждым обновлением сцены,с каждой пройденной секундой значению FPS присваивается значение счетчика, и счетчик начинает крутиться заного...так вот ты можешь ввести доп. переменную, считающую милисекунды...когда счетчик равен 1/3 секунды - запускаем ф-цию и обнуляем сам счетчик...
я так делаю, скорее всего можно как-то еще проще. |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Можеш показать небольшой примерчик.... Просто не понял что значит "Запускаеш функцию" - ведь функция FillBufer запускается автоматически. Я думал что в исходном фильтре Fps задается иначе - а именно значением параметров для функции:
Но только в таком случаи тоже почемуто не получается - Avi файл записанный например 30секунд - проигрывается всего за 10секунд (видео как будто ускоренное) непойму что происходит??? - судя повсему выпадают кадры когда процессор не успевает Это сообщение отредактировал(а) Teran - 4.12.2007, 18:08 -------------------- Ни цего не понимаю |
|||
|
||||
sandland |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 28.4.2007 Репутация: нет Всего: 1 |
я пишу на OpenGL...к примеру есть ф-ция, которая выполняется у тебя неприрывно с некоторым FPS так сказать, зависит от параметров процессора...
double time=0; void display(void) { time+=0.001; // что-нибудь рисуем на экране..пусть тут даже ф-ции прорисовки всей сцены...к примеру drawScene(); glutSwapBuffers(); } где параметр time - это какой-то счетчик анимации...ты же можешь замедилть или ускорить анимацию...к примеру прибавляя к нему не 0.001 а 0.002 и тогда скорость анимации возрастет...ну само собой предполагается к примеру поворот на n градусов, где n=n(t); я делал так...задал константу real_fps - количество FPS которе мне нужно чтобы было всегда...не зависимо от процессора или размера окна.... считал текущий FPS каждую секнду...и скорость анимации умножал на отношение FPS и real_FPS тем самым ф-ция сама замедляла или ускоряла анимацию в зависимости от текущего FPS...в моем тетрисе меня такой вариант вполне устроил, но с точки зрения правильности, я не думаю, что это лучший вариант, с радостью бы послушал советы более опытных... если надо, могу тетрис скинуть. |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Спасиб за ответ.... Но в DirectShow все подругому.... Интересно на форуме есть люди которые сталкивались и Исходными фильтрами под DirectShow??? -------------------- Ни цего не понимаю |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |