Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема directshow 
:(
    Опции темы
Greeen
Дата 17.2.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



 smile А 1 - это не DWORD?


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vdm
Дата 17.2.2008, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Во вторник у меня будет возможность опробовать наговореное. smile Извесчу тебя о результатах. На данный момент, спасибо.  smile 
PM MAIL   Вверх
Greeen
Дата 17.2.2008, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



На данный момент - пожалуйста  smile 


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vdm
Дата 19.2.2008, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Greeen
Дата 19.2.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



Цитата(vdm @  19.2.2008,  09:38 Найти цитируемый пост)
Но pIVMRFilterConfig->SetNumberOfStreams(1); возвращает значение 0 почему?

Код
#define     S_OK     ((HRESULT)0x00000000L)

Цитата(vdm @  19.2.2008,  09:38 Найти цитируемый пост)
Здесь pIVMRMixerControl не получает никакого значения... В чём может быть дело?

QueryInterface что возвращает?


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vdm
Дата 19.2.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Greeen
Дата 19.2.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



Попробуй вместо
Код

hr = AddFilterByCLSID(m_pGraph, CLSID_VideoMixingRenderer, L"Video Renderer", &pNullRendererFilter);

вот так
Код

hr = AddFilterByCLSID(m_pGraph, CLSID_VideoRendererDefault, L"Video Renderer", &pNullRendererFilter);



--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vdm
Дата 19.2.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Цитата(Greeen @ 19.2.2008,  14:33)
Попробуй вместо
Код

hr = AddFilterByCLSID(m_pGraph, CLSID_VideoMixingRenderer, L"Video Renderer", &pNullRendererFilter);

вот так
Код

hr = AddFilterByCLSID(m_pGraph, CLSID_VideoRendererDefault, L"Video Renderer", &pNullRendererFilter);

Эфект тот-же... Есть идеи почему?
PM MAIL   Вверх
Greeen
Дата 19.2.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



vdm, хм... уже хз пахнет  smile у тебя рендерер ни к чему не подключен случайно к моменту вызова SetNumberOfStreams?


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vdm
Дата 19.2.2008, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Цитата(Greeen @ 19.2.2008,  15:39)
vdm, хм... уже хз пахнет  smile у тебя рендерер ни к чему не подключен случайно к моменту вызова SetNumberOfStreams?

Ты прав, запах уже неочень smile Не подключен ли рендер в тот момент? Да нет, ничего не запусчено, только Visual c++ и в нёв я тружусь. А может есть возможность проверить, запусчен ли рендер в тот момент? Блин дурдом какой-то... Рендер по идеи не запусчен, так-как я его сперва вызываю, потом кидаю в m_pgraph, потом вызываю интерфейсы, а в конце соединяю pFilter c KGTee и KGTee c VMR rendererom, потом grpah run()... а в конце release всех указателей. Коротко это звучит - очередная головная боль smile
PM MAIL   Вверх
Greeen
Дата 19.2.2008, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



Так, давай по пунктам:
1. Создаешь фильтр VMR. В результате у тебя IBaseFilter * на фильтр рендерера.
2. Добавляешь его в граф.
3. Запрашиваешь интерфейс IVMRFilterConfig и вызываешь SetNumberOfStreams(1). Освобождаешь интерфейс.
4. Коннектишь пины. Запускаешь граф.
5. Запрашиваешь интерфейс IVMRMixerControl и делаешь что там тебе нужно. Освобождаешь интерфейс.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vdm
Дата 19.2.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Цитата(Greeen @ 19.2.2008,  22:35)
Так, давай по пунктам:
1. Создаешь фильтр VMR. В результате у тебя IBaseFilter * на фильтр рендерера.
2. Добавляешь его в граф.
3. Запрашиваешь интерфейс IVMRFilterConfig и вызываешь SetNumberOfStreams(1). Освобождаешь интерфейс.
4. Коннектишь пины. Запускаешь граф.
5. Запрашиваешь интерфейс IVMRMixerControl и делаешь что там тебе нужно. Освобождаешь интерфейс.

Вот это прикол. Дома создаёт hr = pIVMRFilterConfig->SetNumberOfStreams(1);.
Дальше проверить не могу. Завтро всё заново испробую на месте. Дома нету железа...
 Утричком напишу. smile  smile 
PM MAIL   Вверх
vdm
Дата 20.2.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Да ты прав, по ходу рендер у меня используется, потому и не могу присвоить 
hr = pIVMRFilterConfig->SetNumberOfStreams(1); 
Как его сбросить? smile
PM MAIL   Вверх
Greeen
Дата 20.2.2008, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



Цитата(vdm @  20.2.2008,  10:38 Найти цитируемый пост)
Как его сбросить?

Не понял  smile 
Попробуй GraphEdit'ом построить нужный граф, настройки фильтров подергать.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vdm
Дата 20.2.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



http://entrymsg.narod.ru/graph.JPG Вот такой получился граф. А какие там настройки подёргать? smile 
Снова не даёт присвоить hr = pIVMRFilterConfig->SetNumberOfStreams(1); :\

PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1127 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.