Переключение медиатипов с VMR9

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


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

СообщениеДобавлено: Чт Авг 16, 2007 1:59 pm    Заголовок сообщения: Переключение медиатипов с VMR9 Ответить с цитатой

Строю граф: source(устройство ввода)->CSConverter->VMR9, устанавливаю MEDIATYPE_RGB24. После сборки графа не получается поменять разрешение, хотя с YUY2 все нормально работало.
Код переключения:
Код:
HRESULT hr;
   IAMStreamConfig *ipConfig = NULL;
    hr = FindInterface(IID_IAMStreamConfig, (void **)&ipConfig);
   if(hr == S_OK)
    {
      AM_MEDIA_TYPE *pmt;
      VIDEO_STREAM_CONFIG_CAPS vCaps;
      int n;
      int size;
      ipConfig->GetNumberOfCapabilities(&n, &size);
      for(int i = 0; i < n; i++)
      {
         ipConfig->GetStreamCaps(i, &pmt, (BYTE*)&vCaps);
         if(pmt->formattype == FORMAT_VideoInfo &&
            pmt->subtype == MEDIASUBTYPE_RGB24)
         {
            VIDEOINFOHEADER *pVih = (VIDEOINFOHEADER*)pmt->pbFormat;
            
            pVih->bmiHeader.biWidth = cx;
            pVih->bmiHeader.biHeight = cy;
            pVih->bmiHeader.biSizeImage = DIBSIZE(pVih->bmiHeader);
            
            hr = ipConfig->SetFormat(pmt);
              DeleteMediaType(pmt);
                     break;
         }
           DeleteMediaType(pmt);
      }
      ipConfig->Release();
   }
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
WondeRu
Главвред :)


Зарегистрирован: 30.10.2006
Сообщения: 188
Откуда: Самара

СообщениеДобавлено: Пн Авг 20, 2007 8:58 am    Заголовок сообщения: Ответить с цитатой

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


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


Рейтинг@Mail.ru