Поделиться через


Метод IMFDeviceTransform::GetStreamIDs (mftransform.h)

Метод GetStreamIDs получает идентификаторы потока для входных и выходных потоков в этом преобразовании Media Foundation (MFT).

Синтаксис

HRESULT GetStreamIDs(
  [in]  DWORD dwInputIDArraySize,
  [out] DWORD *pdwInputStreamIds,
  [out] DWORD dwOutputIDArraySize,
        DWORD *pdwOutputStreamIds
);

Параметры

[in] dwInputIDArraySize

Количество элементов в идентификаторах pdwInputStream

[out] pdwInputStreamIds

Указатель на массив, выделенный вызывающим объектом. Метод заполняет массив идентификаторами входного потока. Размер массива должен быть по крайней мере равен количеству входных потоков. Чтобы получить количество входных потоков, вызовите IMFDeviceTransform::GetStreamCount.

Если вызывающий объект передает массив, превышающий количество входных потоков, MFT не должен записывать значения в дополнительные записи массива.

[out] dwOutputIDArraySize

Количество элементов в идентификаторах pdwOutputStream.

pdwOutputStreamIds

Указатель на массив, выделенный вызывающим объектом. Метод заполняет массив идентификаторами выходного потока. Размер массива должен быть по крайней мере равен количеству потоков вывода. Чтобы получить количество потоков вывода, вызовите IMFDeviceTransform::GetStreamCount.

Возвращаемое значение

Метод возвращает HRESULT. Возможные значения включают, помимо прочего, значения, указанные в следующей таблице.

Код возврата Описание
S_OK
Передача состояния потока выполнена успешно.
E_POINTER
Передан недопустимый указатель.
MF_E_BUFFERTOOSMALL
Буфер, поступающий в, не имеет достаточно места для заполнения идентификаторов потоков.

Комментарии

Идентификаторы потоков необходимы, так как некоторые MFT могут добавлять или удалять потоки, поэтому индекс потока может быть не уникальным. Поэтому методы IMFDeviceTransform , работающие с потоками, принимают идентификаторы потоков.

Все идентификаторы входных потоков должны быть уникальными в пределах MFT, а все идентификаторы выходного потока должны быть уникальными. Однако входной и выходной поток могут использовать один и тот же идентификатор. I

Если клиент добавляет входной поток, он назначает идентификатор, поэтому MFT должен разрешать произвольные идентификаторы, если они являются уникальными. Если MFT создает выходной поток, MFT назначает идентификатор.

По соглашению, если MFT имеет только один фиксированный входной поток и один фиксированный выходной поток, он должен назначить идентификатор 0 обоим потокам.

Требования

   
Минимальная версия клиента Windows 10 версии 1703
Целевая платформа Windows
Header mftransform.h

См. также раздел

IMFDeviceTransform