Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DirectShow [D5, Win95/98]


miamy ©   (2001-11-04 15:40:00) 

Помогите, пожалуйста, в решении следующего вопроса:

Есть видеокарта ATI Rage 128 Fury Pro (Video In), с которой делаю видеозахват (используется DirectX 8.0). Вручную создаю связку фильтров
Video Capture->AVI Decompressor->Color Space Converter->Sample Grabber->AVI Compressor->AVI Mux->File Writer
(вручную потому, что если рендерить Capture Pin этой карты, потом не подключается Sample Grabber). Все работает, пишется и видеофильм, и отдельные кадры, НО только в виде 256 градаций черного, а мне нужно хотя бы 16 бит (используется глубина цвета монитора 16 или 32 бит).
Sample Grabber инициализирую так:

mt: TAM_Media_Type;
.........
FillChar(mt, sizeof(mt), 0);
mt.majortype:= MEDIATYPE_Video;
mt.formattype:= FORMAT_VideoInfo;
mt.subtype:= MEDIASUBTYPE_aRGB32; //если не использовать Color Space Converter, проходит MEDIASUBTYPE_RGB565
mt.bFixedSizeSamples:=true;
mt.bTemporalCompression:=false;
mt.lSampleSize:=0;
hr:=Grabber.SetMediaType(mt);

Пробовал добавить строки
pmt: PAM_MEDIA_TYPE;
..............
Builder.FindInterface( @PIN_CATEGORY_CAPTURE, @MEDIATYPE_Video,
VidCapt, IID_IAMStreamConfig, VStreamConf);
PVIDEOINFOHEADER(pmt^.pbFormat)^.bmiHeader.biBitCount:=32;
PVIDEOINFOHEADER(pmt^.pbFormat)^.bmiHeader.biPlanes:=1;
PVIDEOINFOHEADER(pmt^.pbFormat)^.bmiHeader.biXPelsPerMeter:=0;
PVIDEOINFOHEADER(pmt^.pbFormat)^.bmiHeader.biYPelsPerMeter:=0;
PVIDEOINFOHEADER(pmt^.pbFormat)^.bmiHeader.biClrUsed:=0;
PVIDEOINFOHEADER(pmt^.pbFormat)^.bmiHeader.biClrImportant:=0;
VStreamConf.SetFormat(pmt^);
но это ничего не дало.
При этом на Preview Pin отличная картинка. При использовании Smart Tee на Capture Pin - те же 256 градаций :(((
Подозреваю, что нужно прописать еще что-то для фильтров Video Capture или AVI Decompressor, но что и где?
Буду благодарен за любую помощь.

С уважением
Вадим


PGM   (2001-11-05 22:08:00) [1]

А пробовал строить граф в GraphEdt с выводом через Video Renderer?
Там то получается?


Наверх

Титульная страница Поиск, карта сайта Написать письмо