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


Метод COutputQueue.NewSegment

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод NewSegment доставляет новый сегмент во входной контакт.

Синтаксис

HRESULT NewSegment(
   REFERENCE_TIME tStart,
   REFERENCE_TIME tStop,
   double         dRate
);

Параметры

tStart

Начальная позиция носителя сегмента в единицах 100 наносекунд.

tStop

Позиция конечного носителя сегмента в единицах 100 наносекунд.

DRate

Скорость обработки этого сегмента в процентах от первоначальной скорости.

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

Возвращает значение HRESULT .

Комментарии

Если объект использует поток, он помещает в очередь следующие элементы по порядку:

  • Сообщение элемента управления NEW_SEGMENT.
  • Данные сегмента.

Сообщение NEW_SEGMENT уведомляет поток о том, что следующий элемент в очереди будет содержать данные сегмента. Данные сегмента объединяются в структуру, объявленную следующим образом:

struct NewSegmentPacket {
    REFERENCE_TIME tStart;
    REFERENCE_TIME tStop;
    double dRate;
}; 

Поток вызывает метод IPin::NewSegment для входного контакта, используя данные, указанные в структуре .

Если объект не использует поток, он вызывает метод COutputQueue::SendAnyway для доставки всех ожидающих выборок. Затем он вызывает IPin::NewSegment для пин-кода ввода.

Требования

Требование Значение
Заголовок
Outputq.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс COutputQueue