![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как заставить заработать SampleGrabber из DSPack [D7, WinXP]
Valera © (2005-07-25 19:25:00)Из примера SnapShop из DSPack у меня не работает функция:
SampleGrabber.GetBitmap(Image.Picture.Bitmap); Делая трассировку обнаружил, что функция SampleGrabber.GetCurrentBuffer(BufferLen, DIBPtr) постоянно возвращает код ошибки. Может ли кто подсказать, как мне исправить это?
Valera (2005-07-28 12:16:00) [1]Анонимщики ©
Помойму все прекрасно объяснили.
Анонимщики (2005-07-28 11:13:00) [2]Так я не понял, у тебя затруднения остались или уже все ясно?
Ботвин Дмитрий (2005-07-28 08:03:00) [3]А вообще RGB24 и RGB32 - это почти одно и тоже в плане информации, разница тока в структуре. RGB24 - по байту на цвет, т.е 8 бит * 3 = 24 бит, а RGB32 - добавлен ещё один байт для "выравнивания", т.к. процессору удобнее работать с 32-х битными данными. Есть ещё YUV - на два соседних пикселя по
одному Y (яркость) - 8бит*2, и одна общая информация о цветносит
UV (2 байта). Таким образом получается, что RGB32 быстрее
RGB24, в следстви своей "выровненности".
Ботвин Дмитрий (2005-07-28 07:51:00) [4]У меня, к примеру ATI 9200 и она тока 16 и 32 глубину поддерживает, поэтому и у меня походу тока с RGB32 работать будет...
Valera (2005-07-28 07:47:00) [5]Видеокарта у меня гигабайтовская ati 9600pro, а насчет переустановки винды и всего остального уже убедился. Спасибо за вашу помощь.
Valera (2005-07-28 07:44:00) [6]Я же писал, что пример SnapShop который входит в набор компонентов DsPack не работает. Я привык сперва смотреть на примеры перед тем как использовать что нибудь в программе. Хочу в плеере сделать скриншоты под AVI разумеется. (не DVD пока)
Можешь верить можешь нет, но ошибка пропапала когда изменил подтип на RGB32. DSPack был 2.34 сейчас с CVS. Ничего из скаченного не изменял кроме файла DSPack.pas для изминения DSTracBar на свой и нигде пока не использовал функцию GetCurrentBuffer для получения картинки.
Могу только добавить, что интересовался еще как это сделано в AV Player. Так как прорисовка буфера медленновата и приходиться ждать его завершения после изминения позиции в файле.
Надеюсь я ответил на твой вопрос.
Ботвин Дмитрий (2005-07-28 07:39:00) [7]Я так понимаю, что у тебя видеокарта просто не поддерживает
24-битную глубину цвета, поэтому и при Sub Type RGB32 работает,
а при RGB24 нет. Вовсе это не ошибка. Ты повнимательнее прочитай
описание этого свойства. А пробывать разные версии DSPack и
переустанавливать винду - это лишнее...
Анонимщики (2005-07-28 01:38:00) [8]Да ты скажи, что ты делаешь, что работает, а что нет.
Откуда я знаю, где и когда ты вызываешь GetCurrentBuffer? Вот все и опиши.
Valera (2005-07-27 20:04:00) [9]Анонимщики ©
Можно сделать выводы по исчезновению ошибки (добиваясь рабочего кода), да я еще не знаток DirectX но стараюсь разобраться. Выводы делаю как могу вы уж извините, только не понятно чего вы сами добиваетесь? (не вериться, что тебе действительно нужно что-то расказать из твоих посылок)
Анонимщики (2005-07-27 19:10:00) [10]Ну и что, что у тебя подтип RGB24? Что из этого следует? И как ты, интересно, исправил такую "ошибку"? Ты понимаешь вообще, что делаешь? Если понимаешь, то расскажи мне, потому что я просто концов с концами не могу свести, как можно делать такие выводы из таких посылок!?
Анонимщики (2005-07-27 19:09:00) [11]Ну и что, что у тебя подтип RGB24? Что из этого следует? И как ты, интересно, исправил такую "ошибку"? Ты понимаешь вообще, что делаешь? Если понимаешь, то расскажи мне, потому что я просто концов с концами не могу свести, как можно делать такие выводы из таких посылок!?
Valera (2005-07-26 22:51:00) [12]programania © (26.07.05 21:51) [6]
Проверь свойство SampleGrabber mediaType
у меня нормально работает
Major Type video
Sub Type RGB32
Sample Size 1
Format Type VideoInfo
и 2 галочки
Спасибо! Действительно ошибка была в том, что Sub Type был RGB24. Хотя я не менял ничего из примера и в MSDN ничего такого не накопал.
programania (2005-07-26 21:51:00) [13]Проверь свойство SampleGrabber mediaType
у меня нормально работает
Major Type video
Sub Type RGB32
Sample Size 1
Format Type VideoInfo
и 2 галочки
Valera (2005-07-26 18:56:00) [14]Ботвин Дмитрий (26.07.05 10:05) [2]
Драйвера могут быть и не причём. Так же как и переустановка виндус :-))
Что по этому поводу думает SysErrorMessage(GetLastError) - ?
Недостаточно памяти для завершения операции.
Мне понравилась как сделано в AV Player, помойму кто то его делал с этого форума. Может подскажет как у него это реализовано или хотя бы через какой интерфейс?
Valera (2005-07-26 18:12:00) [15]Анонимщики © (26.07.05 11:54) [3]
Держу пари, что Валера не представляет, что делает.
_______________________________________________________
Ну мне кажется, что представляю и согласен с WondeRu ©. Пробовал разные версии DSPack и переустанавливал XP. (Все таки хочется свой плеер доделать!) Только при этом не менял дрова на видюху они у меня ATI версии 5.6, может в них дело.
Анонимщики (2005-07-26 11:54:00) [16]Держу пари, что Валера не представляет, что делает.
Ботвин Дмитрий (2005-07-26 10:05:00) [17]Драйвера могут быть и не причём. Так же как и переустановка виндус :-))
Что по этому поводу думает SysErrorMessage(GetLastError) - ?
WondeRu (2005-07-26 08:06:00) [18]Драйвера платы видеозахвата переставь!