Константы панели инструментов фильма, типы данных и функции
В этой главе описываются некоторые константы, типы данных, и функционирует на Панели инструментов Фильма, которую можно использовать в разработке приложений. Это также обсуждает носители и поддержку обработчика данных в QuickTime.
Флаги экспорта фильма
flags параметр для ConvertMovieToFile функция указывает ряд флагов преобразования фильма. QuickTime обеспечивает этот флаг:
enum { |
showUserSettingsDialog = 2, |
movieToFileOnlyExport = 4, |
movieFileSpecValid = 8 |
}; |
Срок |
Определение |
|---|---|
|
Если этот флаг будет установлен, то диалоговое окно Save As будет выведено на экран, чтобы позволить пользователю выбирать тип файла для экспорта в, дополнительные настройки экспорта и имя файла для экспорта в. |
|
Если этот флаг установлен и |
|
Если этот флаг установлен и |
Флаги импорта фильма
flags параметр для ConvertFileToMovieFile и PasteHandleIntoMovie функции specifiy ряд флагов преобразования фильма. QuickTime обеспечивает один дополнительный флаг:
enum { |
showUserSettingsDialog = 2 |
}; |
Срок |
Определение |
|---|---|
|
Если этот флаг установлен, пользовательское диалоговое окно настроек для той работы импорта может быть выведено на экран. Например, при импорте изображения, этот флаг вывел бы на экран стандартное диалоговое окно сжатия так, чтобы пользователь мог выбрать метод сжатия. |
Выравнивание флагов
flags параметр для FlattenMovieData функция указывает ряд флагов выравнивания фильма. QuickTime обеспечил один новый флаг, который необходимо установить при указании ссылки на данные для выравнивания фильма к вместо файла:
enum { |
flattenFSSpecPtrIsDataRefRecordPtr = 1L << 4 |
}; |
Срок |
Определение |
|---|---|
|
Установите этот флаг в 1 если |
Интересные флаги времен
interestingTimeFlags параметр для интересных функций времени (GetMovieNextInterestingTime, GetTrackNexttInterestingTime, и GetMediaNextInterestingTime ) указывает ряд битовых флагов, указывающих критерии поиска. Обычно, Вы используете одну из интересных функций времени, чтобы выйти вперед к следующему кадру.
Эти функции работают хорошо на большинство типов среды, включая видео и текст. Однако, потому что QuickTime хранит весь поток MPEG как единственную выборку, продвигаясь в следующие демонстрационные пропуски до конца последовательности. Для решения этой проблемы QuickTime представил новый флаг для интересных вызовов времени: nextTimeStep. Даже если существуют многократные кадры на выборку, для всех типов среды включая видео, текст и MPEG, этот флаг возвращает время следующего кадра. Приложения, реализующие единственные шаговые возможности, должны всегда использовать этот флаг вместо nextTimeMediaSample.
enum { |
nextTimeStep = 1 << 4 |
}; |
Срок |
Определение |
|---|---|
|
Поиски следующего кадра в носителях фильма. Установите этот флаг в 1 для продвижения в следующий кадр. |
Полноэкранные флаги
flags параметр для BeginFullScreen функция указывает ряд битовых флагов, управляющих определенными аспектами полноэкранного режима. QuickTime определяет эти константы, которые можно использовать в flags параметр:
enum { |
fullScreenHideCursor = 1L << 0, |
fullScreenAllowEvents = 1L << 1, |
fullScreenDontChangeMenuBar = 1L << 2, |
fullScreenPreflightSize = 1L << 3 |
}; |
Срок |
Определение |
|---|---|
|
Если этот флаг установлен, |
|
Если этот флаг установлен, Ваше приложение намеревается позволить другим приложениям работать (путем вызова |
|
Если этот флаг установлен, |
|
Если этот флаг установлен, |
Текстовые демонстрационные флаги дисплея
displayflags параметр для TextMediaAddTESample и TextMediaAddTextSample функции управляют поведением текстового обработчика носителей. QuickTime обеспечивает эти флаги:
enum { |
dfContinuousScroll = 1 << 9, |
dfFlowHoriz = 1 << 10, |
dfContinuousKaraoke = 1 << 11, |
dfDropShadow = 1 << 12, |
dfAntiAlias = 1 << 13, |
dfKeyedText = 1 << 14, |
dfInverseHilite = 1 << 15, |
dfTextColorHilite = 1 << 16 |
}; |
Срок |
Определение |
|---|---|
|
Если этот флаг установлен, текстовый обработчик носителей позволяет новым выборкам заставить предыдущие выборки прокручивать. Необходимо также установить |
|
Если этот флаг установлен, текстовый обработчик носителей позволяет горизонтально прокрученному тексту течь в текстовом поле вместо того, чтобы расшириться вправо. |
|
Если этот флаг установлен, текстовый обработчик носителей игнорирует начальное смещение при выделении текста. Вместо этого это выделяет текст с начала текстовой выборки к смещению окончания. |
|
Если этот флаг установлен, текстовый обработчик носителей выводит на экран текст с падающей тенью. Если Вы используете |
|
Если этот флаг установлен, текстовый обработчик носителей выводит на экран текст со сглаживанием. Обратите внимание на то, что несмотря на то, что сглаженный текст выглядит более гладким, сглаживание может замедлить производительность. |
|
Если этот флаг установлен, текстовый обработчик носителей представляет текст по фону, не таща цвет фона. Этот метод также известен как текст маскированный. |
|
Если этот флаг установлен, текстовый текст выделений обработчика носителей с помощью инвертированного видеоизображения вместо цвета подсветки. |
|
Если этот флаг установлен, текстовый текст выделений обработчика носителей путем изменения цвета текста. |
Типы данных
Большинство структур данных Панели инструментов Фильма является частными структурами данных. Ваше приложение никогда не изменяет содержание этих структур непосредственно. Скорее Панель инструментов Фильма обеспечивает много функций, позволяющих Вам работать с этими структурами данных.
Входные типы модификатора
Входная карта носителей описывает значение каждого ввода к дорожке. Каждой дорожке связали определенные атрибуты с ним, такие как размер, позиция и объем. Носители вводят карту той дорожки, описывает отображение вводов модификатора дорожки для отслеживания свойств. Когда Вы хотите изменить атрибуты дорожки, можно вставить модификатор дорожки, вводит такой как kTrackModifierTypeMatrix во входную карту. Значения, сохраненные в модификаторе, вводят Вас вставленный, будет влиять на значения, которые в настоящее время сохранены дорожкой.
Пользовательские обработчики носителей могут определить дополнительные входные типы по мере необходимости. Apple Computer резервирует все входные типы, состоящие полностью из строчных букв.
Следующие входные типы в настоящее время определяются:
enum { |
kTrackModifierTypeMatrix = 1, |
kTrackModifierTypeClip = 2, |
kTrackModifierTypeGraphicsMode = 5, |
kTrackModifierTypeVolume = 3, |
kTrackModifierTypeBalance = 4, |
kTrackModifierTypeImage = 'vide', |
kTrackModifierObjectMatrix = 6, |
kTrackModifierObjectGraphicsMode = 7, |
kTrackModifierType3d4x4Matrix = 8, |
kTrackModifierCameraData = 9 |
kTrackModifierSoundLocalization = 10 |
}; |
Срок |
Определение |
|---|---|
|
Данные, отправленные в этот ввод, должны быть в форме QuickTime |
|
Данные, отправленные в этот ввод, должны быть в форме области QuickDraw. Область пересечена с исходным полем дорожки. |
|
Данные, отправленные в этот ввод, должны быть в форме a |
|
Данные, отправленные в этот ввод, должны быть в форме 16-разрядного числа фиксированной точки. Это - тот же формат, в котором сохранены уровни громкости звука QuickTime. Уровень громкости используется в качестве масштабного коэффициента на уровне звуковой дорожки. Это умножается с дорожкой и объемами фильма для определения полного объема дорожки. |
|
Данные, отправленные в этот ввод, должны быть в форме 8-разрядного числа фиксированной точки. Это - тот же формат, в котором сохранены значения баланса QuickTime. Значение баланса используется в качестве установки баланса для дорожки. В отличие от модификатора объема, это не связывается с текущим уровнем баланса дорожки, но переопределяет текущий уровень баланса. |
|
Данные, отправленные в этот ввод, должны быть сжатыми видеоданными, обычно от видеотрека. Этот входной тип может использоваться с дорожками спрайта. Для дорожек спрайта данные изображения используются для замены изображения указанного индекса изображения в дорожке спрайта. Когда ссылка создается, индекс изображения для замены должен быть указан во входной карте носителей. |
|
Данные, отправленные в этот ввод, должны быть в форме QuickTime |
|
Данные, отправленные в этот ввод, должны быть в форме a |
|
Данные, отправленные в этот ввод, должны быть в форме звуковой записи данных локализации ( |
Ссылки на данные
Панель инструментов Фильма полностью поддерживает носители, который относится к данным больше чем в одном файле. Путем разрешения синглу носителей для обращения больше чем к одному файлу панель инструментов позволяет лучшую производительность воспроизведения и более простое редактирование, прежде всего путем сокращения количества дорожек в фильме. Используйте SetMediaDefaultDataRefIndex функционируйте для управления, к которому из файлы носителей Вы получаете доступ, когда Вы добавляете новые демонстрационные данные.
Чтобы полностью указать ссылку на данные необходимо обеспечить саму ссылку на данные, вместе с ее типом; дескриптор ссылки на данные не содержит тип ссылки на данные. DataReferenceRecord структура данных содержит оба из этих данных, позволяя передать их функциям как единственный параметр. FlattenMovieData функционируйте использует информацию в структуре ссылки на данные для выравнивания фильма к ссылке на данные вместо к файлу.
struct DataReferenceRecord { |
OSType dataRefType; |
Handle dataRef; |
}; |
typedef struct DataReferenceRecord DataReferenceRecord; |
typedef DataReferenceRecord *DataReferencePtr; |
Поле |
Определение |
|---|---|
|
Указывает тип ссылки на данные. Для ссылки на данные псевдонима Вы устанавливаете параметр на |
|
Указывает фактическую ссылку на данные. Этот параметр содержит дескриптор к информации, идентифицирующей файл, который будет использоваться. Тип информации, хранившей в дескрипторе, зависит от значения |
Идентификаторы фильма
Вы идентифицируете структуру данных для Панели инструментов Фильма посредством типа данных, предоставляющегося Панелью инструментов Фильма. Следующие типы данных в настоящее время определяются:
Ввести |
Определение |
|---|---|
|
Указывает носители для работы. Ваше приложение получает идентификатор носителей из таких функций Панели инструментов Фильма как |
|
Указывает фильм для работы. Ваше приложение получает идентификатор фильма из таких функций как |
|
Указывает состояние редактирования фильма для работы. Ваше приложение получает идентификатор состояния редактирования фильма при создании состояния редактирования путем вызова |
|
Указывает обратный вызов для работы. Вы получаете идентификатор обратного вызова из |
|
Указывает основу времени для работы. Ваше приложение получает идентификатор основы времени из |
|
Указывает дорожку для работы. Ваше приложение получает идентификатор дорожки из таких функций Панели инструментов Фильма как |
|
Указывает состояние редактирования дорожки для работы. Ваше приложение получает идентификатор состояния редактирования дорожки при создании состояния редактирования путем вызова |
|
Указывает пользовательский список данных для работы. Вы получаете пользовательский идентификатор списка данных путем вызова |
Константы
Этот раздел перечисляет константы, добавленные к QuickTime после раннего выпуска. Большинство констант используется в качестве флагов для функций QuickTime; они позволяют программисту передавать числовые данные как понятное имя.
#define kFix1 = (0x00010000); /* fixed point value equal to 1.0 */ |
#define gestaltQuickTime 'qtim' /* Movie Toolbox availability */ |
#define MovieFileType 'MooV' /* movie file type */ |
#define VideoMediaType 'vide' /* video media type */ |
#define SoundMediaType 'soun' /* sound media type */ |
#define MediaHandlerType 'mhlr' /* media handler type */ |
#define DataHandlerType 'dhlr' /* data handler type */ |
#define TextMediaType 'text' /* text media type */ |
#define GenericMediaType 'gnrc' /* base media handler type */ |
#define DoTheRightThing = 0L /* indicates default flag settings |
for Movie Toolbox functions */ |
/* sound volume values in trackVolume parameter of NewMovieTrack function */ |
#define kFullVolume = 0x100 /* full, natural volume |
(8.8 format) */ |
#define kNoVolume = 0 /* no volume */ |
/* constants for whichMediaTypes parameter of GetMovieNextInterestingTime |
function */ |
#define VisualMediaCharacteristic 'eyes' /* visual media */ |
#define AudioMediaCharacteristic 'ears' /* audio media */ |
enum |
{ |
/* media quality settings in quality parameter of SetMediaQuality function */ |
mediaQualityDraft = 0x0000, /* lowest quality level */ |
mediaQualityNormal = 0x0040, /* acceptable quality level */ |
mediaQualityBetter = 0x0080, /* better quality level */ |
mediaQualityBest = 0x00C0 /* best quality level */ |
}; |
/*values for callBackFlags field of QuickTime callback header structure used |
by clock components to communicate scheduling information about a |
callback event to the Movie Toolbox */ |
enum |
{ |
qtcbNeedsRateChanges = 1, /* rate changes */ |
qtcbNeedsTimeChanges = 2, /* time changes */ |
qtcbNeedsStartStopChanges = 4 /* time base changes at start & |
stop times */ |
}; |
/* dialog items to include in dialog box definition for use with |
SFPGetFilePreview function */ |
enum |
{ |
sfpItemPreviewAreaUser = 11, /* user preview area */ |
sfpItemPreviewStaticText = 12, /* static text preview */ |
sfpItemPreviewDividerUser = 13, /* user divider preview */ |
sfpItemCreatePreviewButton = 14, /* create preview button */ |
sfpItemShowPreviewButton = 15 /* show preview button */ |
}; |
enum |
{ |
movieInDataForkResID = -1 /* magic resource ID */ |
}; |
/* flags for LoadIntoRAM functions */ |
enum |
{ |
keepInRam = 1<<0, /* load and make so data |
cannot be purged */ |
unkeepInRam = 1<<1, /* mark data so it can be purged */ |
flushFromRam = 1<<2, /* empty handles and purge data |
from memory */ |
loadForwardTrackEdits = 1<<3, /* load only data around track edits; |
play movie forward */ |
loadBackwardTrackEdits = 1<<4 /* load only data around edits; |
play movie in reverse */ |
}; |
/* flag for PasteHandleIntoMovie function */ |
enum |
{ |
pasteInParallel = 1 /* changes function to take contents and type of |
handle and add to movie */ |
}; |
/* text description display flags used in TextMediaAddTextSample and |
TextMediaAddTESample */ |
enum |
{ |
dfDontDisplay = 1<<0, /* don't display the text */ |
dfDontAutoScale = 1<<1, /* don't scale text as track |
bounds grows or shrinks */ |
dfClipToTextBox = 1<<2, /* clip update to the text box */ |
dfUseMovieBGColor = 1<<3, /* set text background to movie's |
background color */ |
dfShrinkTextBoxToFit = 1<<4, /* compute minimum box to fit the |
sample */ |
dfScrollIn = 1<<5, /* scroll text in until last of |
text is in view */ |
dfScrollOut = 1<<6 /* scroll text out until last of text is |
gone (if dfScrollIn is also set, |
scroll in then out) */ |
dfHorizScroll = 1<<7, /* scroll text horizontally; otherwise, |
it's vertical */ |
dfReverseScroll = 1<<8 /* vertically scroll down and horizontally |
scroll up; justification-dependent */ |
}; |
/* find flags for TextMediaFindNextText function */ |
findTextEdgeOK = 1<<0, /* OK to find text at specified |
sample time */ |
findTextCaseSensitive = 1<<1, /* case-sensitive search */ |
findTextReverseSearch = 1<<2, /* search from sampleTime backward */ |
findTextWraparound = 1<<3, /* wrap search when beginning or end |
of movie is reached */ |
/* return display flags for application-defined text function */ |
enum |
{ |
txtProcDefaultDisplay = 0, /* use the media's default settings */ |
txtProcDontDisplay = 1, /* don't display the text */ |
txtProcDoDisplay = 2 /* display the text */ |
}; |
enum |
{ |
hintsScrubMode = 1<<0, /* toolbox can display key frames when |
movie is repositioned */ |
hintsAllowInterlace = 1<<6, /* use interlace option for compressor |
components */ |
hintsUseSoundInterp = 1<<7 /* turn on sound interpolation */ |
}; |
typedef unsigned long playHintsEnum; |
Коды результата
Следующая таблица показывает коды распространенной ошибки, возвращенные функциями Панели инструментов Фильма.
Постоянный |
Значение |
Описание |
|---|---|---|
couldNotResolveDataRef |
- 2000 |
Не может использовать эту ссылку на данные |
badImageDescription |
- 2001 |
Проблема с этим описанием изображения |
badPublicMovieAtom |
- 2002 |
Файл ролика повреждается |
cantFindHandler |
- 2003 |
Не может определить местоположение этого обработчика |
cantOpenHandler |
- 2004 |
Не может открыть этот обработчик |
badComponentType |
- 2005 |
Компонент не может разместить эти данные |
noMediaHandler |
- 2006 |
Носители не имеют никакого обработчика носителей |
noDataHandler |
- 2007 |
Носители не имеют никакого обработчика данных |
invalidMedia |
- 2008 |
Это носители повреждается или недопустимо |
invalidTrack |
- 2009 |
Эта дорожка повреждается или недопустима |
invalidMovie |
- 2010 |
Этот фильм повреждается или недопустим |
invalidSampleTable |
- 2011 |
Эта демонстрационная таблица повреждается или недопустима |
invalidDataRef |
- 2012 |
Эта ссылка на данные недопустима |
invalidHandler |
- 2013 |
Этот обработчик недопустим |
invalidDuration |
- 2014 |
Это значение продолжительности недопустимо |
invalidTime |
- 2015 |
Эта временная стоимость недопустима |
cantPutPublicMovieAtom |
- 2016 |
Не может записать в этот файл ролика |
badEditList |
- 2017 |
Список редактирования дорожки повреждается |
mediaTypesDontMatch |
- 2018 |
Эти носители не соответствуют |
progressProcAborted |
- 2019 |
Ваша процедура прогресса возвратила ошибку |
movieToolboxUninitialized |
- 2020 |
Вы не инициализировали Панель инструментов Фильма |
wfFileNotFound |
- 2021 |
Не может определить местоположение этого файла |
cantCreateSingleForkFile |
- 2022 |
Ошибка, пытающаяся создать файл единственного ветвления. Когда файл уже существует, это происходит. |
invalidEditState |
- 2023 |
Это состояние редактирования недопустимо |
nonMatchingEditState |
- 2024 |
Это состояние редактирования не допустимо для этого фильма |
staleEditState |
- 2025 |
Фильм или дорожка были расположены |
userDataItemNotFound |
- 2026 |
Не может определить местоположение этого пользовательского элемента данных |
maxSizeToGrowTooSmall |
- 2027 |
Максимальный размер должен быть больше |
badTrackIndex |
- 2028 |
Это индексное значение дорожки не допустимо |
trackIDNotFound |
- 2029 |
Не может определить местоположение дорожки с этим Значением идентификатора |
trackNotInMovie |
- 2030 |
Эта дорожка не находится в этом фильме |
timeNotInTrack |
- 2031 |
Эта временная стоимость за пределами этой дорожки |
timeNotInMedia |
- 2032 |
Эта временная стоимость является за пределами этого носителями |
badEditIndex |
- 2033 |
Это индексное значение редактирования не допустимо |
internalQuickTimeError |
- 2034 |
Внутренняя ошибка |
cantEnableTrack |
- 2035 |
Не может включить эту дорожку |
invalidRect |
- 2036 |
Указанный прямоугольник имеет недопустимые координаты |
invalidSampleNum |
- 2037 |
Нет никакой выборки с этим демонстрационным числом |
invalidChunkNum |
- 2038 |
Нет никакого блока с этим числом блока |
invalidSampleDescIndex |
- 2039 |
Демонстрационное индексное недопустимое значение описания |
invalidChunkCache |
- 2040 |
Кэш блока повреждается |
invalidSampleDescription |
- 2041 |
Это демонстрационное описание недопустимо или повреждено |
dataNotOpenForRead |
- 2042 |
Не может читать из этого источника данных |
dataNotOpenForWrite |
- 2043 |
Не может записать в этот источник данных |
dataAlreadyOpenForWrite |
- 2044 |
Источник данных уже открыт для записи |
dataAlreadyClosed |
- 2045 |
Вы уже закрыли этот источник данных |
endOfDataReached |
- 2046 |
Конец данных |
dataNoDataRef |
- 2047 |
Никакое значение ссылки на данные не найдено |
noMovieFound |
- 2048 |
Панель инструментов не может найти фильм в файле ролика |
invalidDataRefContainer |
- 2049 |
Недопустимая ссылка на данные |
badDataRefIndex |
- 2050 |
Индексное значение ссылки на данные недопустимо |
noDefaultDataRef |
- 2051 |
Не удалось найти ссылку на данные по умолчанию |
couldNotUseAnExistingSample |
- 2052 |
Панель инструментов фильма не могла использовать выборку |
featureUnsupported |
- 2053 |
Панель инструментов фильма не поддерживает эту функцию |