DirectShow NTSC PAL

 
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
Shest
Новенький


Зарегистрирован: 16.08.2007
Сообщения: 6

СообщениеДобавлено: Чт Авг 16, 2007 8:55 pm    Заголовок сообщения: DirectShow NTSC PAL Ответить с цитатой

Здравствуйте, Форумчане.
Есть проблема следующего характера.
По подсказке многоуважаемого WondeRu (изините не знаю как по имени) запрограммировал переключение входов на плате видеозахвата AverMedia (по умолчанию на у нее основной вход TV а нужен композит). И все бы замечательно, но вот толко картинка с композита идет в градациях серого и со срывом синхронизации. Такая же картина наблюдалась в других программах видеозахвата до тех пор пока я не менял стандарт с NTSC на PAL = так вот суть вопроса - каким образом можно переключить в PAL? Или может в чем другом проблемма? Надеюсь на Вашу помощь. С уважением Владимир.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
feka
Новенький


Зарегистрирован: 16.08.2007
Сообщения: 2

СообщениеДобавлено: Пт Авг 17, 2007 9:31 am    Заголовок сообщения: Re: DirectShow NTSC PAL Ответить с цитатой

Shest писал(а):
так вот суть вопроса - каким образом можно переключить в PAL? .

Это делается с помощью интерфейса IAMAnalogVideoDecoder фильтра источника. Примерно так:
Код:
HRESULT SetTVFormat(LONG format)
{
   if(!m_dxCapture)
      return E_FAIL;
   IAMAnalogVideoDecoder *iDecoder = NULL;
   HRESULT hr;
   hr = m_dxCapture->QueryInterface(IID_IAMAnalogVideoDecoder,(void**)&iDecoder);
   hr = FindInterface(IID_IAMAnalogVideoDecoder,(void**)&iDecoder);
   if(hr == S_OK)
   {
      LONG formats;
      iDecoder->get_AvailableTVFormats(&formats);
      if(format & formats)
         hr = iDecoder->put_TVFormat(format);
      else
         hr = E_FAIL;
      iDecoder->Release();
   }
   return hr;
}


m_dxCapture - указатель на фильтр источника
на счет format посмотри AnalogVideoStandard Enumeration в справке к SDK
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Shest
Новенький


Зарегистрирован: 16.08.2007
Сообщения: 6

СообщениеДобавлено: Пт Авг 17, 2007 5:08 pm    Заголовок сообщения: Re: DirectShow NTSC PAL Ответить с цитатой

За ответ спасибоSmile
У меня в Delphi 2006
//FindInterface(IID_IAMAnalogVideoDecoder,(void**)&iDecoder); требует другие параметры для поска интерфейсаSad
//FindInterface(pCategory, pType: PGUID; pf: IBaseFilter; const riid: TGUID; out ppint): HResult; stdcall;
Может быть я не тот интерфейс беру (ICaptureGraphBuilder2)
пробовал по образу и подобию http://forum.wonderu.com/
topic187.html.
Но у меня (fmain.FilterGraph1 as ICaptureGraphBuilder2).FindInterface(@LOOK_UPSTREAM_ONLY,
// nil,
// Filter1 as IBaseFilter,
// IID_IAMAnalogVideoDecoder,
// IDecoder);
Возвращает IDecoder - nil
Может быть кто-нибудь подскажет как то же самое сделать в Delphi.
Спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Shest
Новенький


Зарегистрирован: 16.08.2007
Сообщения: 6

СообщениеДобавлено: Пн Авг 20, 2007 10:39 am    Заголовок сообщения: Re: DirectShow NTSC PAL Ответить с цитатой

Может кто подскажет неучу как в Delphi получить код интерфейса IAMAnalogVideoDecoder и вызов его PropertyPage - если они у него есть. Со свойствами put_TVFormat я уже разобрался, вот только никак не могу получить этот кодSad
(FilterGraph as ICaptureGraphBuilder2).FindInterface(@LOOK_UPSTREAM_ONLY,
nil,
Filter as IBaseFilter,
IID_IAMAnalogVideoDecoder,
AMAnalogVideoDecoder); -> AMAnalogVideoDecoder = nil Sad((((((
может я чего то не то делаю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Shest
Новенький


Зарегистрирован: 16.08.2007
Сообщения: 6

СообщениеДобавлено: Пт Авг 24, 2007 2:31 pm    Заголовок сообщения: Re: DirectShow NTSC PAL Ответить с цитатой

Всем спасибо, сам разобралсяSmile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Общий Часовой пояс: GMT + 4
Страница 1 из 1
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Рейтинг@Mail.ru