![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
Greeen |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: нет Всего: 18 |
![]() -------------------- Подпись больше не нужна |
|||
|
||||
vdm |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Во вторник у меня будет возможность опробовать наговореное.
![]() ![]() |
|||
|
||||
Greeen |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: нет Всего: 18 |
На данный момент - пожалуйста
![]() -------------------- Подпись больше не нужна |
|||
|
||||
vdm |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Привет.
Вызвал фильтр. hr = AddFilterByCLSID(m_pGraph, CLSID_VideoMixingRenderer, L"Video Renderer", &pNullRendererFilter); Вызвал интерфейс. hr = pNullRendererFilter->QueryInterface(IID_IVMRFilterConfig, (void**)&pIVMRFilterConfig); Установил значение. pIVMRFilterConfig->SetNumberOfStreams(1); До этого места всё шло хорошо, пока не добрался до сюда. Но pIVMRFilterConfig->SetNumberOfStreams(1); возвращает значение 0 почему? hr = pNullRendererFilter->QueryInterface(IID_IVMRMixerControl, (void**)&pIVMRMixerControl); Здесь pIVMRMixerControl не получает никакого значения... В чём может быть дело? К даполнению, я соединяю pFilter с pNullRendererFilter через KGTee фильтр. Это сообщение отредактировал(а) vdm - 19.2.2008, 10:14 |
|||
|
||||
Greeen |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: нет Всего: 18 |
QueryInterface что возвращает? -------------------- Подпись больше не нужна |
||||||
|
|||||||
vdm |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
hr = pNullRendererFilter->QueryInterface(IID_IVMRFilterConfig, (void**)&pIVMRFilterConfig);
if(FAILED(hr)) { return hr; } Возвращает: S_OK hr = pIVMRFilterConfig->SetNumberOfStreams(1); Возвращает: -2147220877 hr = pNullRendererFilter->QueryInterface(IID_IVMRMixerControl, (void**)&pIVMRMixerControl); if(FAILED(hr)) { return hr; } Пишит, что FAILED.... E_NOINTERFACE но как такое может быть, если VMR поддерживает IVMRMixerControl? Что может на это влиять? Надеюсь видео карта здесь не при чём... Это сообщение отредактировал(а) vdm - 19.2.2008, 13:54 |
|||
|
||||
Greeen |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: нет Всего: 18 |
Попробуй вместо
вот так
-------------------- Подпись больше не нужна |
||||
|
|||||
vdm |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Эфект тот-же... Есть идеи почему? |
||||||
|
|||||||
Greeen |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: нет Всего: 18 |
vdm, хм... уже хз пахнет
![]() -------------------- Подпись больше не нужна |
|||
|
||||
vdm |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Ты прав, запах уже неочень ![]() ![]() |
|||
|
||||
Greeen |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: нет Всего: 18 |
Так, давай по пунктам:
1. Создаешь фильтр VMR. В результате у тебя IBaseFilter * на фильтр рендерера. 2. Добавляешь его в граф. 3. Запрашиваешь интерфейс IVMRFilterConfig и вызываешь SetNumberOfStreams(1). Освобождаешь интерфейс. 4. Коннектишь пины. Запускаешь граф. 5. Запрашиваешь интерфейс IVMRMixerControl и делаешь что там тебе нужно. Освобождаешь интерфейс. -------------------- Подпись больше не нужна |
|||
|
||||
vdm |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Вот это прикол. Дома создаёт hr = pIVMRFilterConfig->SetNumberOfStreams(1);. Дальше проверить не могу. Завтро всё заново испробую на месте. Дома нету железа... Утричком напишу. ![]() ![]() |
|||
|
||||
vdm |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Да ты прав, по ходу рендер у меня используется, потому и не могу присвоить
hr = pIVMRFilterConfig->SetNumberOfStreams(1); Как его сбросить? ![]() |
|||
|
||||
Greeen |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: нет Всего: 18 |
Не понял ![]() Попробуй GraphEdit'ом построить нужный граф, настройки фильтров подергать. -------------------- Подпись больше не нужна |
|||
|
||||
vdm |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
http://entrymsg.narod.ru/graph.JPG Вот такой получился граф. А какие там настройки подёргать?
![]() Снова не даёт присвоить hr = pIVMRFilterConfig->SetNumberOfStreams(1); :\ |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |