Метод IKsInterfaceHandler::KsProcessMediaSamples (ksproxy.h)

Метод KsProcessMediaSamples обрабатывает примеры мультимедиа.

Синтаксис

HRESULT KsProcessMediaSamples(
  [in]      IKsDataTypeHandler *KsDataTypeHandler,
  [in]      IMediaSample       **SampleList,
  [in, out] PLONG              SampleCount,
  [in]      KSIOOPERATION      IoOperation,
  [out]     PKSSTREAM_SEGMENT  *StreamSegment
);

Параметры

[in] KsDataTypeHandler

Указатель на интерфейс IKsDataTypeHandler для обработчика типов данных, который обрабатывает тип мультимедиа, указанный в SampleList. Этот обработчик типа данных содержит конкретные сведения о типе мультимедиа, который передается в потоковую передачу.

[in] SampleList

Указатель на буфер, содержащий массив указателей на интерфейсы IMediaSample для списка примеров мультимедиа для обработки.

[in, out] SampleCount

Указатель на переменную, которая изначально содержит количество выборок в списке SampleList и при возврате получает фактическое количество обработанных выборок.

[in] IoOperation

Значение, указывающее тип операции ввода-вывода. Это значение может быть одним из следующих значений из перечисленного типа KSIOOPERATION:

Значение Описание
KsIoOperation_Write Запись данных в поток.
KsIoOperation_Read Чтение данных из потока.

[out] StreamSegment

Указатель на буфер, получающий указатель на структуру KSSTREAM_SEGMENT , содержащую сведения о заголовке для сегмента потока, отправляемого в контакт режима ядра.

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

Возвращает NOERROR в случае успешного выполнения; в противном случае возвращает код ошибки.

Комментарии

Метод KsProcessMediaSamples перемещает примеры из или в ранее назначенный контакт фильтра. Заголовок потока инициализируется для представления каждого примера мультимедиа в сегменте потока. Затем выполняются входные и выходные данные (I/O), увеличивается количество элементов ожидания, а поток ввода-вывода прокси-сервера ожидает завершения.

Метод KsProcessMediaSamples вызывает метод KsQueryExtendedSize полученного интерфейса IKsDataTypeHandler для получения размера расширенного заголовка. Если расширенный размер заголовка не указан, KsProcessMediaSamples удаляет указатель на интерфейс IKsDataTypeHandler . Если указан расширенный размер заголовка, KsProcessMediaSamples сохраняет указатель на интерфейс IKsDataTypeHandler до завершения обработки примеров мультимедиа. Затем метод KsProcessMediaSamples выделяет заголовки потока с соответствующими размерами заголовков. Для каждого примера носителя KsProcessMediaSamples инициализирует заголовок, копирует указатели данных, задает метки времени и т. д. Затем каждый пример добавляется в список примеров. Если это операция записи, выборка удерживается путем увеличения числа ссылок.

Дополнительные сведения об IMediaSample см. в документации по Microsoft Windows SDK.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ksproxy.h (включая Ksproxy.h)

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

IKsDataTypeHandler

IKsDataTypeHandler::KsQueryExtendedSize

KSSTREAM_SEGMENT