Метод IMFTransform::GetStreamIDs (mftransform.h)
Возвращает идентификаторы потоков для входных и выходных потоков в этом преобразовании Media Foundation (MFT).
Синтаксис
HRESULT GetStreamIDs(
[in] DWORD dwInputIDArraySize,
[out] DWORD *pdwInputIDs,
[in] DWORD dwOutputIDArraySize,
[out] DWORD *pdwOutputIDs
);
Параметры
[in] dwInputIDArraySize
Число элементов в массиве pdwInputIDs .
[out] pdwInputIDs
Указатель на массив, выделенный вызывающим объектом. Метод заполняет массив идентификаторами входного потока. Размер массива должен быть по крайней мере равен количеству входных потоков. Чтобы получить количество входных потоков, вызовите IMFTransform::GetStreamCount.
Если вызывающий объект передает массив, превышающий количество входных потоков, MFT не должен записывать значения в дополнительные записи массива.
[in] dwOutputIDArraySize
Количество элементов в массиве pdwOutputIDs .
[out] pdwOutputIDs
Указатель на массив, выделенный вызывающим объектом. Метод заполняет массив идентификаторами выходного потока. Размер массива должен быть по крайней мере равен количеству потоков вывода. Чтобы получить количество потоков вывода, вызовите GetStreamCount.
Если вызывающий объект передает массив, превышающий число потоков вывода, MFT не должен записывать значения в дополнительные записи массива.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Не реализован. См. заметки. |
|
Один или оба массива слишком малы. |
Комментарии
Идентификаторы потоков необходимы, так как некоторые MFT могут добавлять или удалять потоки, поэтому индекс потока может быть не уникальным. Поэтому методы IMFTransform , работающие с потоками, принимают идентификаторы потоков.
Этот метод может возвращать E_NOTIMPL , если выполняются оба следующих условия:
- Преобразование имеет фиксированное количество потоков.
- Потоки нумеруются последовательно от 0 до n –1, где n — это количество входных или выходных потоков. Другими словами, первый входной поток равен 0, второй — 1 и т. д. и первый выходной поток равен 0, второй — 1 и т. д.
- MFT может добавлять или удалять потоки вывода.
- MFT позволяет клиенту добавлять или удалять входные потоки.
- Идентификаторы потока не являются последовательными.
Если клиент добавляет входной поток, он назначает идентификатор, поэтому MFT должен разрешать произвольные идентификаторы, если они являются уникальными. Если MFT создает выходной поток, MFT назначает идентификатор.
По соглашению, если MFT имеет только один фиксированный входной поток и один фиксированный выходной поток, он должен назначить идентификатор 0 обоим потокам.
Если MFT_UNIQUE_METHOD_NAMES определен перед включением mftransform.h, этот метод переименован в MFTGetStreamIDs. См. раздел Создание гибридных объектов DMO/MFT.
Требования
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | mftransform.h |
Библиотека | Mfuuid.lib |