Глава 1. Общие принципы построения и использования DirectShow
В данной главе описываются общие сведения о DirectShow необходимые для работы по созданию приложения . Из этой главы вы узнаете какое место занимает DirectShow в архитектуре DirectX, что такое телевизионная технология Microsoft, принципы использования элементов DirectShow при создании приложения для записи и воспроизведения мультимедийных потоков от любых источников данных, поддерживающих технологию DirectShow.
Содержание
Телевизионная технология Microsoft [читать далее...]
Архитектура DirectShow [читать далее...]
Основные свойства фильтров и фильтрового графа [читать далее...]
Критерий предпочтения фильтра [читать далее...]
Контакты фильтров и типы медиа данных
Носители
Передача данных и медиа выборки
Состояния фильтров и фильтрового графа
Синхронизация фильтров
Использование объектов DMO в DirectShow
Соединение фильтров
Согласование медиа типов при соединении фильтров
Согласование способа транспортировки данных
"Интеллектуальное" соединение фильтров
Представление аппаратных устройств в фильтровом графе
Потоки данных
Отображение WDM устройств в локальной системе
Сбор видео и звуковой информации
Фильтр сбора видео информации(Capture)
Фильтр сбора звука
GraphEdit инструмент визуального построения графа и отладки
[в начало]
Глава 2. Построение фильтрового графа DirectShow
По содержанию глава состоит их двух частей. В первой части описано создание шаблона проекта на основе которого будет создаваться приложение DirectShow. шаблон представляет собой приложение SDI с переключающимися представлениями классов CFormView и CView. Вторая часть главы описывает средства и способы построения фильтрового графа DirectShow.
Содержание
Подготовка проекта, выбор шаблона проекта [читать далее...]
Доработка шаблона проекта [читать далее...]
Смена представлений для одного документа
Совместный старт двух окон
Переключение нескольких представлений
Установка DirectX 9.0 SDK, внесение изменений в проект
Построение фильтрового графа DirectShow [читать далее...]
Класс фильтрового графа [читать далее...]
Реализация менеджера фильтрового графа [читать далее...]Интерфейсы менеджера фильтрового графа
Методы интерфейсов менеджера графа и построителя фильтра сбораМетоды интерфейса IFilterGraph
Методы интерфейса IGraphBuilder
Методы интерфейса IFilterGraph2
Методы интерфейса ICaptureGraphBuilder2Создание менеджера графа и построителя графа сбора
Системный перечислитель и моникеры
Перечисление устройств и фильтров
Реализация перечислителя устройств
Реализация перечислителя фильтров (кодеков)
Реализация поиска в карте фильтров
Установка в граф фильтра сбора
Разрушение графа
Просмотр результата в редакторе графа
[в начало]
Глава 3. Построение графа DirectShow до фильтра сбора
Глава продолжает описание построения участка графа DirectShow от фильтра настройки TV приемника до фильтра сбора. Рассматриваются разные способы поиска и установки фильтров устройства в граф DirectShow, описываются фильтры настройки TV приемника и переключателя входов, а также управление ими с помощью классов авторской разработки. Рассматривается инициализация фильтра сбора, способы управления фильтром, и настройка его параметров.
Содержание
Принципы построения графа сбора [читать далее...]
Определение конфигурации устройства сбора [читать далее...]
Поиск фильтров с помощью метода FindInterface [читать далее...]
Поиск фильтров с помощью системного перечислителяМетоды RenderXX
Фильтр переключателя видео входов (Crossbar)
Класс фильтра переключателя
Интерфейс переключения видео входов
Фильтр настройки телеприемника TV Tuner
Принципы настройки на телевизионные каналы
Класс фильтра настройки приемника и интерфейс пользователяУстановка режима приемника
Переключение входов
Отображение доступных стандартов ТV
Организация данных для отображения телевизионных каналов
Реализация настройки на каналы
Интерфейс управления фильтром настройки
Завершение основного этапа построения графа
Инициализация фильтра сбора
Интерфейс IAMAnalogVideoDecoder
Методы для работы с ТВ стандартами
Интерфейс пользователя
[в начало]
Глава 4. Режим предварительного просмотра
В главе описывается реализация режима предварительного просмотра, дается характеристика отображающих фильтров DirectShow, режимов применения, интерфейсов управления. Подробно рассматриваются способы и методы управления режимами отображения, обработка событий DirectShow, обработка данных телетекста.
Содержание
Основные интерфейсы, используемые для реализации режима предварительного просмотра. [читать далее...]
Метод RenderStream [читать далее...]
Отображающие фильтры DirectShow
Компоненты фильтров VMR
Режимы работы фильтров
Режимы работы фильтров VMR
Интерфейсы отображающих и оверлейных фильтров
Интерфейсы, управляющие графом
Инициализация режима предварительного просмотра
Достройка графа и запуск режима предварительного просмотра
Интерфейс IVideoWindow
Установка видеоокна в качестве дочернего окна приложения
Сообщения от окна фильтра Video RendererУправление параметрами видеопотока на фильтре сбора [читать далее...]
Структура AM_MEDIA_TYPE [читать далее...]
Источник и получатель изображения и их взаимодействие
Структура VIDEOINFOHEADER
Структура BITMAPINFOHEADERМетоды и структуры интерфейса IAMStreamConfig
Структура VIDEO_STREAM_CONFIG_CAPS
Параметры структуры, влияющие на формирование размеров изображения
Метод IAMStreamConfig::GetFormat и его применение
Метод IAMStreamConfig::GetNumberOfCapabilities
Метод IAMStreamConfig::GetStreamCaps и его применение
Метод IAMStreamConfig::SetFormat
Класс данных медиа форматаОпределение свойств форматов на выходном контакте фильтра сбора
Метод для установки медиа формата
Интерфейс пользователя для отображения медиа форматовПолнооконный режим отображения
Безоконный режим отображения фильтров VMR
Обработка событий в DirectShow
Обработка данных на контакте VBI фильтра сбора.
Метод ICaptureGraphBuilder2::FindPin.
Управление отображением телетекста.
Регулировки изображения
Интерфейс IAMVideoProcAmp
Реализация регулировки яркости и контраста
Регулировки изображения на фильтре VMR9
[в начало]
Глава 5. Звуковой канал DirectShow
В главе описывается построение звукового тракта фильтрового графа DirectShow. Рассматриваются специфические проблемы, связанные с несовершенством управления звуковой картой из DirectShow и предлагаются пути их решения.
Содержание
Сбор и предварительное прослушивание звука [читать далее...]
Интерфейсы звукового канала
Интерфейс IAMAudioInputMixer
Установка фильтра захвата звука
Установка медиа формата на звуковом фильтре
Интерфейс пользователя для управления звуковыми форматами
Управление параметрами звуковой карты
Определение свойств контактов звукового фильтра
Установка параметров органов управления
Результаты экспериментальной проверки
Реализация управления системным микшером
[в начало]
Глава 6. Системный звуковой микшер
В главе предлагается решение по внедрению управления звуковым системным микшером (драйвером звуковой карты) в приложение. Данная глава не имеет прямой связи с DirectShow. Она написана как материал обеспечивающий решение проблемы звукового тракта DirectShow, которая упоминалась в предыдущей главе.
Содержание
Системный звуковой микшер [читать далее...]
Структурная схема микшера
Структуры и функции микшера
Сбор данных для линии
Структура MIXERLINE
Функция mixerGetLineInfoСбор данных об органах управления линии
Структура MIXERLINECONTROLS.
Структура MIXERCONTROL
Классы (типы) органов управления микшером
Функция mixerGetLineControlsСтруктура MIXERCONTROLDETAILS
Установка свойств и значений органов управления
Структуры установки свойств и значений органов управления
Функция mixerSetControlDetails
Функция mixerGetControlDetailsСтруктуры и функции для общего управления микшером
Структура MIXERCAPS
Функция mixerGetDevCaps
Функция mixerGetNumDevs
Функция mixerClose
Функция mixerOpen
Функция mixerGetID
Сообщения микшера
Пользовательское сообщение для заказного микшера
Классы микшера
Структура классов звукового микшера.
Базовый класс CMixer
Организация данных
Классы органов управления
Класс CFader
Класс CSwitch
Класс мультиплексора CMux
Производный класс микшера CLineMixer
Методы для создания органов управления
Установка параметров органов управления
Удаление органов управления
Обработка сообщений при изменении параметров микшера другим приложением
[в начало]
Глава 7. Запись файлов
В главе описываются способы записи сжатых и не сжатых файлов, а также управление параметрами фильтров сжатия.
Содержание
Запись файлов в DirectShow [читать далее...]
Простой способ запись файлов в формате AVI и ASF
Реализация простого способа записи файлов AVI и ASF
Расширенный способ записи файлов в формате AVI и ASF [читать далее...]
Реализация расширенного способа записи файлов AVI и ASF
Управление профилями фильтра ASF
Дополнительные способы управления записью файлов
Синхронизация потоков при записи файлов AVI
Управление звуком и видео при записи файлов AVI
Установка видеоформата на контакте Capture фильтра захвата
Использование кодеров при записи файлов AVI
Отображение свойств компрессора
Использование кодеров сторонних производителей
Отображение производительности фильтра захвата
[в начало]
Приложение
Глава содержит краткое описание фильтров DirectShow и их технические данные необходимые для применения. Также в главе приводятся некоторые другие данные необходимые для работы и описание кодов ошибок с переводом сообщений.
Содержание
Фильтры DirectShow
Категории фильтров
Главные типы (Major Types)
Категории контактов (Pin Property Set)
Коды событий
Коды FOURCC
Частотные таблицы телевизионных каналов
Восточная Европа
Западная Европа
Цветовые форматы телевизионного сигнала
Алфавитный список интерфейсов DirectShow
Отмененные интерфейсы
Общие коды ошибок
Специфические коды ошибок DirectShow
[в начало]