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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установить другой язык аудио потока для DVB-S граф 
V
    Опции темы
AndreySol
Дата 16.10.2008, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Почитал SDK, пробую таким макаром: получаю ITuneRequest, затем перебираю доступные компоненты (IComponent) и ищу компоненты категории "CategoryAudio". Затем получаю для каждого найденного PID, который сравниваю с тем который хочу установить, для совпавшего устанавливаю статус компонента "StatusActive", остальные перевожу в состояние "StatusInactive".
Ну и в конце снова применяю ITuneRequest, что-бы заработали новые параметры.
long lSetAudioPID = 6513;

Код

ITuneRequest* pTuneRequest = NULL;
if(pTuner->get_TuneRequest(&pTuneRequest) != S_OK)
    return;

IComponents *pComponents = NULL;
if(pTuneRequest->get_Components(&pComponents) != S_OK)
    return;

IEnumComponents* pNewEnum = NULL;
if(pComponents->EnumComponents(&pNewEnum) == S_OK)
{
    pNewEnum->Reset();

    ULONG ulFetched = 0;

    IComponent* pNextComponent = NULL;
    while(pNewEnum->Next(1, &pNextComponent, &ulFetched) == S_OK)
    {
        IComponentType* pCType = NULL;
        if(pNextComponent->get_Type(&pCType) == S_OK)
        {
            ComponentCategory pCategory;
            if(pCType->get_Category(&pCategory) == S_OK)
            {
                if(pCategory == CategoryAudio)
                {
                    ComponentStatus pCStatus;
                    if(pNextComponent->get_Status(&pCStatus) == S_OK)
                    {
                        IMPEG2Component* pMPEG2Component = NULL;
                        if(pNextComponent->QueryInterface(IID_IMPEG2Component, (void **)&pMPEG2Component) == S_OK)
                        {
                            long lGetPID = 0;
                                if(pMPEG2Component->get_PID(&lGetPID) == S_OK)
                            {
                                if(lSetAudioPID == lGetPID)
                                pNextComponent->put_Status(StatusActive);
                                else
                                        pNextComponent->put_Status(StatusInactive);

                            }
                            pMPEG2Component->Release();
                            pMPEG2Component = NULL;
                        }
                    }
                }
            }
            pCType->Release();
            pCType = NULL;
        }
        pNextComponent->Release();
        pNextComponent = NULL;
    }
    pNewEnum->Release();
    pNewEnum = NULL;
}

if(pTuner->put_TuneRequest(pTuneRequest) == S_OK)
{

}

pComponents->Release();
pComponents = NULL;
pTuneRequest->Release();
pTuneRequest = NULL;
Вроде все как рекомендуют в SDK, хотя может я неправильно понял ?
В результате ничего не меняется, как шпарил дефолтный язык, так и продолжает. Хотя все методы возвращают S_OK !
Что делать ?!!
PM MAIL   Вверх
AndreySol
Дата 26.10.2008, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Решение нашел через MapPID UnmapPID интерфейса IMPEG2PIDMap.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

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

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


 




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


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

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