На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> IAMStreamConfig не устанавливает biCompression :-(
    Устанавливаю параметры видеоустройства ч/з IAMStreamConfig - размер и частота кадров устанавливаются, а алгоритм компрессии - нет :o  В каком месте у меня кривые руки или проблемы в дровах?


    hr = m_pCapture->FindInterface(&PIN_CATEGORY_CAPTURE,
           &MEDIATYPE_Interleaved, pSrcFilter, IID_IAMStreamConfig, (void **)&m_pStreamConfing.p);

       if (hr != NOERROR)
         {
           hr = m_pCapture->FindInterface(&PIN_CATEGORY_CAPTURE,
               &MEDIATYPE_Video, m_pBaseFilter,
                     IID_IAMStreamConfig, (void **)&m_pStreamConfing.p);

           if (hr != NOERROR)
               // this means we can't set frame rate (non-DV only)
               ErrorMessage(TEXT("Не найден интерфейс IAMStreamConfig"));
       }

         // восстанавливаем размер изображения и frame rate, который был в прошлый сеанс работы с программой
         if (m_pStreamConfing)
         {
           AM_MEDIA_TYPE *pmt;
           // get format being used NOW
           hr = m_pStreamConfing->GetFormat(&pmt);
           // DV capture does not use a VIDEOINFOHEADER
           if (hr != NOERROR)
                     ErrorMessage(_T("Ошибка получения параметров изображения GetFormat()."));
               else
               {
               if (pmt->formattype == FORMAT_VideoInfo)
                     {
                           VIDEOINFOHEADER* pVih = reinterpret_cast<VIDEOINFOHEADER*>(pmt->pbFormat);
                           pVih->bmiHeader.biWidth = GetDocument()->GetWidth();
                           pVih->bmiHeader.biHeight = GetDocument()->GetHeight();
                           pVih->bmiHeader.biCompression = GetDocument()->GetCompression();
                           pVih->AvgTimePerFrame = static_cast<LONGLONG>(10000000 / GetDocument()->GetFramePerSecond());
                           if (FAILED(m_pStreamConfing->SetFormat(pmt)))
                                 ErrorMessage("\nОшибка вызова IAMStreamConfig::SetFormat() в StartCapture()");
                           
               }
               DeleteMediaType(pmt);
           }
         }
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0182 ]   [ 15 queries used ]   [ Generated: 28.04.24, 16:05 GMT ]