Форум Beholder
http://beholder.ru/bb/

4 PCI (e) (+ USB ?) тюнера.
http://beholder.ru/bb/viewtopic.php?f=2&t=11760
Страница 1 из 1

Автор:  Andrey_GTRK [ 16 ноя 2010, 00:31 ]
Заголовок сообщения:  4 PCI (e) (+ USB ?) тюнера.

Хочется поставить 4 штуки примерно A8 (как самых дешевых) для мониторинга 4 телерадиоканалов (без записи - только показ).

Драйвер подерживает несколько одинаковых плат с возможностью перечисления как DirectShow устройств capture ?

Кроме драйвера с выходами в DirectShow ничего не нужно.

В идеале хочется перечисления всех установленых в системе плат функцией типа

Код:
    // Create the system device enumerator
    CComPtr <ICreateDevEnum> pDevEnum =NULL;

    hr = CoCreateInstance (CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC,
        IID_ICreateDevEnum, (void ** ) &pDevEnum);
    if (FAILED(hr))
    {
        Msg(TEXT("Couldn't create system enumerator!  hr=0x%x"), hr);
        return hr;
    }

    // Create an enumerator for the video capture devices
    CComPtr <IEnumMoniker> pClassEnum = NULL;

    hr = pDevEnum->CreateClassEnumerator (CLSID_VideoInputDeviceCategory, &pClassEnum, 0);
    if (FAILED(hr))
    {
        Msg(TEXT("Couldn't create class enumerator!  hr=0x%x"), hr);
        return hr;
    }
   // First Cap Device
    if (S_OK == (pClassEnum->Next (1, &pMoniker1, &cFetched)))
    {
        // Bind Moniker to a filter object
        hr = pMoniker1->BindToObject(0,0,IID_IBaseFilter, (void**)&pCapture1);
        if (FAILED(hr))
        {
            Msg(TEXT("Couldn't bind moniker to filter object1!  hr=0x%x"), hr);
            return hr;
        }
    }
    else
    {
        Msg(TEXT("Unable to access video capture device 1 !"));   
        return E_FAIL;
    }
   // Second Cap device
    if (S_OK == (pClassEnum->Next (1, &pMoniker2, &cFetched)))
    {
        // Bind Moniker to a filter object
        hr = pMoniker2->BindToObject(0,0,IID_IBaseFilter, (void**)&pCapture2);
        if (FAILED(hr))
        {
            Msg(TEXT("Couldn't bind moniker to filter object2!  hr=0x%x"), hr);
            return hr;
        }
    }
    else
    {
        Msg(TEXT("Unable to access video capture device 2 !"));   
        return E_FAIL;
    }


и т.д. до 4 устройства capture.

Второй вопрос - есть возможности аппаратного деинтерлейса силами самой платы А8 или каких-нить других из самых дешевых ? Если да - то как включается програмно ?

Если 4 PCIe платы так запустить нельзя - может есть варианты иного набора тюнеров от одного производителя (бехолдер) чтобы гарантировано получить 4 video capture устройства в одной win32 nt5.1 ? Типа 2 PCIe + 2 USB ?

Автор:  Support [ 16 ноя 2010, 12:36 ]
Заголовок сообщения:  Re: 4 PCI (e) (+ USB ?) тюнера.

писал(а):
Драйвер подерживает несколько одинаковых плат с возможностью перечисления как DirectShow устройств capture ?

Да, поддерживает. Последние версии драйвера поддерживают до 8 тюнеров в системе.

писал(а):
В идеале хочется перечисления всех установленых в системе плат функцией типа ...

Если кроме тюнеров в компьютере нет других устройств видеозахвата, то можно и так. В противном случае Вы рискуете подключить в граф "левое" устройство видеозахвата (видеовход видеокарты, веб-камеру и пр.). Обычно нужное устройство находят по ключевым словам в FriendlyName или оставляют выбор за пользователем.

http://msdn.microsoft.com/en-us/library ... 92(v=VS.85).aspx

писал(а):
Второй вопрос - есть возможности аппаратного деинтерлейса силами самой платы А8 или каких-нить других из самых дешевых ? Если да - то как включается програмно ?

Аппаратный деинтерлейс не поддерживается чипсетами тюнеров.

Автор:  Andrey_GTRK [ 16 ноя 2010, 14:54 ]
Заголовок сообщения: 

писал(а):
Если кроме тюнеров в компьютере нет других устройств видеозахвата, то можно и так. В противном случае Вы рискуете подключить в граф "левое" устройство видеозахвата (видеовход видеокарты, веб-камеру и пр.).

Благодарю. Система собирается для себя в строго контролируемых промышленых условиях - никто случайный не будет ее трогать и ничего лишнего подключаться не будет.

писал(а):
Аппаратный деинтерлейс не поддерживается чипсетами тюнеров.

Тогда может вместе к комплектом ПО ставится програмный DirectShow фильтр деинтерлейча, который можно использовать в нескольких экземплярах ? Если да - насколько он нагружает систему и какой примерно требуется ЦПУ для нормального функционирования 4 окон 720х576 с програмным деинтерлейсом ?

Может Video Capture драйвер от бехолдера может отдавать какой-нить особо правильный формат VideoInfo2, который правильно понимается Video Mixing Renderer (7 или 9) для автоматического включения аппаратного деинтерлейса силами видеокарт от ATI (или NVIDIA) ? Т.е. чтобы больше одного окна (ну или хотя бы одно) имело аппаратный деинтерлейс силами видеокарты.

Пока никакие попытки принудительно включить аппартный деинтерлейс при приходе медиасемплов формата VideoInfo не получаются. И даже не все варианты VideoInfo2 похоже подходят - возможно важны точные комбинации Interlace флагов.

Автор:  Support [ 17 ноя 2010, 13:38 ]
Заголовок сообщения: 

писал(а):
Тогда может вместе к комплектом ПО ставится програмный DirectShow фильтр деинтерлейча, который можно использовать в нескольких экземплярах ?

ПО не регистрирует DS деинтерлейс-фильтров.

писал(а):
Может Video Capture драйвер от бехолдера может отдавать какой-нить особо правильный формат VideoInfo2, который правильно понимается Video Mixing Renderer (7 или 9) для автоматического включения аппаратного деинтерлейса силами видеокарт от ATI (или NVIDIA) ? Т.е. чтобы больше одного окна (ну или хотя бы одно) имело аппаратный деинтерлейс силами видеокарты.

Аппаратный деинтерлейс вовсе не гарантирует низкую загрузку системы, если, конечно, вы это имеете в виду. В зависимости от производителя видео карты, её поколения, драйвера, видеорендерера и версии ОС загрузка при аппаратном деинтерлейсе может колебаться почти от 0 до 10...15% на каждое ядро. Программные деинтерлейс фильтры, по крайней мере в программе Behold TV, загружают одно ядро любого процессора C2D не более чем на 3%.

писал(а):
Пока никакие попытки принудительно включить аппартный деинтерлейс при приходе медиасемплов формата VideoInfo не получаются. И даже не все варианты VideoInfo2 похоже подходят - возможно важны точные комбинации Interlace флагов.

На Preview пине драйвера формируется заголовок VideoInfo2. Interlace-флаги в нём не установлены, т.е. кадр представлен как прогрессивный - FRAME. Установка Interlace флагов в драйвере приводит к проблемам с совместимостью с некоторыми драйверами и поколениями видео карт. В программе Behold TV для включения аппаратного деинтерлейса и удвоения частоты кадров Interlace флаги устанавливаются вне драйвера.

Страница 1 из 1 Часовой пояс: UTC + 3 часа