Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Этот класс реализует интерфейс IAMStreamControl для входных и выходных контактов. Он обеспечивает контроль над запуском и остановкой отдельного закрепления на фильтре. Контакт, поддерживающий IAMStreamControl , должен наследоваться от этого базового класса. Ниже приведено типичное объявление для пин-кода ввода.
class CMyInputPin : public CBaseInputPin, public CBaseStreamControl
Обязательно переопределите NonDelegatingQueryInteface , чтобы предоставить IAMStreamControl. Дополнительные сведения см. в разделе How to Implement IUnknown.
| Открытые методы | Описание |
|---|---|
| CBaseStreamControl | Метод конструктора. |
| ~CBaseStreamControl | Метод деструктора. |
| CheckStreamState | Определяет, следует ли доставлять или отклонять образец носителя. |
| Промывки | Уведомляет базовый класс о начале или остановке очистки контакта. |
| NotifyFilterState | Уведомляет закрепление при изменении состояния фильтра. |
| SetFilterGraph | Задает приемник событий для событий управления потоком. |
| SetSyncSource | Уведомляет базовый класс о текущих эталонных часах. |
| Методы IAMStreamControl | Описание |
| GetInfo | Извлекает сведения о текущих параметрах управления потоком, включая время запуска и остановки. |
| StartAt | Сообщает закреплению, когда следует начать доставку данных. |
| StopAt | Сообщает контакту, когда следует прекратить доставку данных. |
Комментарии
Для этого класса требуется, чтобы контакт и фильтр-владение уведомляли класс при возникновении различных событий, таких как присоединение фильтра к графу или получение новых ссылочных часов. Следует вызвать следующие методы класса:
- В методе IMediaFilter::SetSyncSource фильтра вызовите метод CBaseStreamControl::SetSyncSource . Этот метод уведомляет класс о текущих эталонных часах.
- В методе CBaseFilter::JoinFilterGraph фильтра вызовите метод CBaseStreamControl::SetFilterGraph . Этот метод дает классу указатель на диспетчер фильтров графов, чтобы класс смог отправлять правильные события управления потоком.
- При изменении состояния фильтра (на запущено, приостановлено или остановлено), вызовите метод CBaseStreamControl::NotifyFilterState .
- В методах IPin::BeginFlush и IPin::EndFlush контакта вызовите метод CBaseStreamControl::Flushing .
Класс CBaseStreamControl использует эталонные часы графа фильтра, чтобы определить, какие образцы фильтра должны быть доставлены, а какие следует отменить. В методе IMemInputPin::Receive pin вызовите метод CBaseStreamControl::CheckStreamState с указателем на входящий пример мультимедиа. Если метод возвращает значение STREAM_FLOWING, добавьте нижестоящий образец. В противном случае удалите его.
Требования
| Требование | Значение |
|---|---|
| Заголовок |
|
| Библиотека |
|