Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Вниз

перечисление пинов   Найти похожие ветки 

 
DV   (2007-06-25 15:07) [0]

DirectShow фильтр "DV Splitter" имеет три пина (видно в графэдите). Но когда получаем из него интерфейс IEnumPins и в цикле вызываем Next(1,...) для перечисления всех пинов, то возвращается только один входной пин.
Двы выходных пина для видео и аудио просто отсутствуют как класс.
В чем косяк?

PS код не привожу, он в точности повторяет примеры SDK


 
wicked ©   (2007-07-03 21:17) [1]

а просишь какие пины?
там же вроде флажками задается, какие пины отдать в енумератор


 
DV   (2007-07-04 00:15) [2]

Нифига туда не передается

Сначала запрашиваем енумератор
HRESULT EnumPins(
 IEnumPins **ppEnum
);

Потом перечисляем все что есть
HRESULT Next(
 ULONG cPins,
 IPin **ppPins,
 ULONG *pcFetched
);

Тип не задается нигде.


 
WondeRu at work   (2007-07-05 12:46) [3]

Такое подойдет?

function GetPin(pFilter: IBaseFilter; pinDir: PIN_DIRECTION; Index: Integer = 0): IPin;
var
 bFound: Boolean;
 pEnum : IEnumPins;
 pPin  : IPin;
 PinDirThis: PIN_DIRECTION;
 Count : Integer;
begin
 Result := nil;
 bFound := false;
 pFilter.EnumPins(pEnum);
 Count := 0;
 while (pEnum.Next(1, pPin, nil) = S_OK) do
 begin
   pPin.QueryDirection(PinDirThis);
   if (pinDir = PinDirThis) then
     begin
       if Count = Index then
         begin
           bFound := true;
           break;
         end;
       Inc(Count);    
     end;
 end;
 pEnum.Reset;
 if bFound then Result := pPin;
end;


 
DV   (2007-07-05 14:16) [4]

Спасибо конечно, но портировать примеры sdk с си на паскаль я и сам пока еще умею.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.043 c
11-1191573192
Delphuk
2007-10-05 12:33
2008.07.20
чтение/запись в ini файл


2-1213909820
DJ_UZer
2008-06-20 01:10
2008.07.20
Ищем файлы в определенной папке по маске


3-1202888164
Olegus
2008-02-13 10:36
2008.07.20
поле типа блоб


2-1213873717
ciborg
2008-06-19 15:08
2008.07.20
Как скопировать объект


2-1214196947
Гость
2008-06-23 08:55
2008.07.20
Правый нижний угол





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский