Чтение онлайн

на главную - закладки

Жанры

Графика для Windows средствами DirectDraw

Трухильо Стэн

Шрифт:

AVIStreamFindSample

AVIStreamGetFrame

AVIStreamGetFrameClose

AVIStreamGetFrameOpen

AVIStreamInfo

AVIStreamLength

AVIStreamOpenFromFile

AVIStreamRead

AVIStreamReadData

AVIStreamReadFormat

AVIStreamRelease

AVIStreamSampleToTime

AVIStreamSetFormat

AVIStreamStart

AVIStreamTimeToSample

AVIStreamWrite

AVIStreamWriteData

CreateEditableStream

EditStreamClone

EditStreamCopy

EditStreamCut

EditStreamPaste

EditStreamSetInfo

EditStreamSetName

ICClose

ICCompress

ICCompressorChoose

ICCompressorFree

ICDecompress

ICDecompressEx

ICDecompressExBegin

ICDecompressExQuery

ICDraw

ICDrawBegin

ICDrawSuggestFormat

ICGetInfo

ICGetDisplayFormat

ICImageCompress

ICImageDecompress

ICInfo

ICInstall

ICLocate

ICOpen

ICOpenFunction

ICRemove

ICSendMessage

ICSeqCompressFrame

ICCompressFrameEnd

ICCompressFrameStart

ICGetStatusProc

MyStatusProc

Конечно,

для воспроизведения роликов нужна лишь небольшая часть функций VFW, но чтобы изменить или расширить возможности программы из этой главы, вам, скорее всего, понадобятся и другие функции. Давайте рассмотрим те функции, с которыми нам придется работать.

СОВЕТ

Не забудьте включить VFW в проект

Перед тем как пользоваться функциями Video For Windows, необходимо включить в проект заголовочный файл vfw.h и добавить vfw32.lib в список файлов компоновщика.

Для правильной работы функций из табл. 8.1 необходимо инициализировать VFW функцией AVIFileInit. Эта функция не получает аргументов и не возвращает никакого значения, поэтому работать с ней проще простого.

После инициализации VFW можно создавать поток функцией AVIStreamOpenFromFile. Эта функция получает в одном из аргументов имя AVI-файла и инициализирует по нему логический номер потока. Полученный логический номер затем используется как аргумент большинства функций VFW и определяет поток, с которым выполняется операция.

В частности, по логическому номеру, возвращаемому AVIStreamOpenFromFile, можно получить сведения о видеоролике. Функция AVIStreamReadFormat сообщает такие данные, как количество кадров, размер изображения и глубина пикселей; для этого она заполняет структуру BITMAPINFOHEADER (возможно,

структура BITMAPINFOHEADER покажется вам знакомой — мы уже встречались с ней при описании BMP-файлов). Я снова приведу определение этой структуры, взятое из файла Windows wingdi.h:

typedef struct tagBITMAPINFOHEADER {

 DWORD biSize;

 LONG biWidth;

 LONG biHeight;

 WORD biPlanes;

 WORD biBitCount;

 DWORD biCompression;

 DWORD biSizeImage;

 LONG biXPelsPerMeter;

 LONG biYPelsPerMeter;

 DWORD biClrUsed;

 DWORD biClrImportant;

} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;

Некоторые поля структуры (например, biXPelsPerMeter и biYPelsPerMeter) не имеют отношения к AVI-файлам, но таких полей немного. Размеры, глубина пикселей, алгоритм сжатия и количество цветов — все это можно взять из структуры BITMAPINFOHEADER после успешного вызова функции AVIStreamReadFormat.

Более подробные сведения о потоке можно получить с помощью функции AVIStreamInfo. Функция AVIStreamInfo, как и функция AVIStreamReadFormat, получает в качестве аргумента логический номер и заполняет структуру данными о потоке. Для передачи информации AVIStreamInfo использует структуру AVISTREAMINFO. Ее определение в файле vfw.h выглядит так:

typedef struct _AVISTREAMINFOW {

 DWORD fccType;

 DWORD fccHandler;

 DWORD dwFlags;

 DWORD dwCaps;

 WORD wPriority;

 WORD wLanguage;

 DWORD dwScale;

 DWORD dwRate;

 DWORD dwStart;

 DWORD dwLength;

 DWORD dwInitialFrames;

 DWORD dwSuggestedBufferSize;

 DWORD dwQuality;

 DWORD dwSampleSize;

 RECT rcFrame;

 DWORD dwEditCount;

 DWORD dwFormatChangeCount;

 WCHAR szName[64];

} AVISTREAMINFOW, FAR * LPAVISTREAMINFOW;

Давайте рассмотрим некоторые ключевые поля этой структуры. Первое поле, fccType, определяет тип потока. В файлах формата AVI поддерживаются четыре типа потоковых данных: видео, аудио, MIDI (музыка) и текст. В этой книге будут рассматриваться только видеопотоки.

Поделиться:
Популярные книги

Семья. Измена. Развод

Высоцкая Мария Николаевна
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Семья. Измена. Развод

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Искушение генерала драконов

Лунёва Мария
2. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Искушение генерала драконов

Шаг в бездну

Муравьёв Константин Николаевич
3. Перешагнуть пропасть
Фантастика:
фэнтези
космическая фантастика
7.89
рейтинг книги
Шаг в бездну

Камень Книга одиннадцатая

Минин Станислав
11. Камень
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Камень Книга одиннадцатая

Никто и звать никак

Ром Полина
Фантастика:
фэнтези
7.18
рейтинг книги
Никто и звать никак

Возвышение Меркурия. Книга 14

Кронос Александр
14. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 14

Идеальный мир для Лекаря 20

Сапфир Олег
20. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 20

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Сумеречный Стрелок 2

Карелин Сергей Витальевич
2. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 2

Сумеречный Стрелок 10

Карелин Сергей Витальевич
10. Сумеречный стрелок
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Сумеречный Стрелок 10