Дорожки модификатора
Ссылки дорожки и дорожки модификатора создают динамические отношения между дорожками в фильме в формате QuickTime. Ссылки дорожки описывают отношение между дорожками; например, вывод одной дорожки может быть подключен к вводу другой дорожки, или две дорожки могут быть связаны как альтернативные версии, чтобы использоваться на различных языках. Ссылки дорожки используются, чтобы создать дорожки модификатора, альтернативные дорожки и списки главы, и связать дорожки временного кода с сегментами других дорожек.
Дорожка модификатора не представляет свои данные как видеотрек, или аудиотрек обычно делает; вместо этого это использует свои данные для изменения представления других дорожек. Например, вывод видеотрека может используемый в качестве источника данных изображения для дорожки спрайта или дорожки эффекта, или вывод дорожки промежуточного кадра может использоваться в качестве источника параметра громкости аудиотрека. В этой главе рассматриваются несколько специальных типов дорожки модификатора, включая:
Альтернативные дорожки. Это обычно различные версии дорожки, которая будет использоваться при различных обстоятельствах, таких как многократный текст или звуковые дорожки на различных языках или различных видеотреках скорости передачи для оптимального дисплея на быстрее или более медленные компьютеры.
Списки главы, наборы именованных точек входа в фильм, который может перейтись или к программно или через пользовательский интерфейс.
Дорожки временного кода. Они содержат информацию о временном коде, обычно собранную из источника, внешнего к QuickTime (такому как временные коды SMPTE). Они связывают эти данные временного кода с сегментами других дорожек QuickTime, такими как видео, аудио и текстовые дорожки.
Эта глава предполагает, что Вы знакомы с дорожками QuickTime в целом, и функции QuickTime раньше определяли и изменяли характеристики дисплея фильмов и дорожек.
Ссылки дорожки
Ссылки дорожки являются функцией QuickTime, позволяющего Вам связывать дорожки фильма с друг другом. Ссылка дорожки QuickTime mechanismsupports many-many отношения. Т.е. любая дорожка фильма может содержать одну или более ссылок дорожки, и любая дорожка может быть связана с одной или более другими дорожками в фильме.
Ссылки дорожки могут быть полезными во множестве путей. Например, ссылки дорожки могут использоваться для связи дорожек временного кода с другими дорожками фильма. Другое использование ссылок дорожки должно связать одну или более текстовых дорожек, содержащих подзаголовки с надлежащим аудиотреком или дорожками.
Ссылки дорожки также используются для создания альтернативных дорожек, как обсуждено в Работе С Альтернативными Дорожками.
Каждая дорожка фильма содержит список своих ссылок дорожки. Каждая ссылка дорожки идентифицирует другого, связанную дорожку. Та связанная дорожка идентифицируется ее идентификатором дорожки. Сама ссылка дорожки содержит информацию, позволяющую Вам классифицировать ссылки типом. Эта информация типа хранится в OSType тип данных. Вы свободны указать любое значение типа, которое Вы хотите. Отметьте, однако, что Apple зарезервировал все строчные значения типа.
Можно создать столько ссылок дорожки, сколько Вы хотите, и можно создать больше чем одну ссылку данного типа. Каждая ссылка дорожки данного типа присваивается индексное значение. Индексные значения запускаются в 1 для каждого различного ссылочного типа. QuickTime поддерживает эти индексные значения так, чтобы они всегда запустили в 1 и количество 1.
Функции, управляющие ссылками дорожки
Следующие функции помогают Вам работать со ссылками дорожки:
AddTrackReferenceфункция позволяет Вам связывать одну дорожку с другим.DeleteTrackReferenceфункция удаляет то отношение.SetTrackReferenceиGetTrackReferenceфункции позволяют Вам изменять существующую ссылку дорожки так, чтобы она идентифицировала различную дорожку.GetNextTrackReferenceTypeиGetTrackReferenceCountфункции позволяют Вам сканировать все ссылки дорожки дорожки.
Создание дорожек модификатора
Дорожки модификатора используются для изменения других дорожек. Перенаправление вывода дорожки модификатора к вводу другой дорожки позволяет Вам создать большое разнообразие эффектов, таких как панорамирование аудио или представление видеоданных как спрайт.
Любая дорожка QuickTime может быть превращена в дорожку модификатора. Например, можно использовать вывод видеотрека как источник изображения спрайта или вывод двух видеотреков как вводы к эффекту перехода в дорожке эффекта.
Для создания дорожки модификатора необходимо использовать ссылки дорожки и ввести карты. Ссылка дорожки позволяет Вам указать, какая дорожка получает вывод дорожки модификатора. Входная карта указывает часть или части дорожки получения, которая будет изменена выводом дорожки модификатора. Например, вывод дорожки промежуточного кадра мог бы изменить объем звуковой дорожки, баланс или обоих.
Виды дорожек модификатора
Дорожка модификатора не представляет данных; вместо этого, это отправляет данные в другую дорожку, использующую ту информацию, чтобы изменить, как это представляет свои собственные данные. Любая дорожка может быть или отправителем или предъявителем, но не обоими. Например, вместо того, чтобы просто играть видео, видеотрек может отправить свои данные изображения в дорожку спрайта. Дорожка спрайта тогда использует те видеоданные для замены изображения одного из его спрайтов. Когда фильм проигрывается, видеотрек появляется как спрайт.
Другое использование дорожек модификатора должно сохранить серию уровней громкости звука, которая является тем, что происходит, когда Вы работаете с дорожкой промежуточного кадра. Эти уровни звука могут быть отправлены в звуковую дорожку, поскольку она играет, для динамичной корректировки объема. Подобное использование дорожек модификатора должно сохранить информация о размере и расположение. Эти данные могут быть отправлены в видеотрек, чтобы заставить его перемещать и изменять размеры, поскольку это играет.
Поскольку дорожка модификатора может отправить свои данные больше чем в одну дорожку, можно легко синхронизировать действия между многократными дорожками. Например, единственная дорожка модификатора, содержащая матрицы как ее выборки, может заставить два отдельных видеотрека следовать за тем же путем.
Ограничения пространственных дорожек модификатора
Дорожка модификатора может заставить дорожку перемещаться за пределами ее исходных граничных областей. Это может представить проблемы, так как приложения не ожидают, что размерности или расположение фильма в формате QuickTime изменятся в течение долгого времени.
Чтобы гарантировать, что фильм поддерживает постоянное расположение и размер, QuickTime ограничивает область, в которой может быть выведена на экран пространственно измененная дорожка. «Естественная» форма фильма определяется областью, возвращенной GetMovieBoundsRgn. Ролики QuickTime все пространственно измененные дорожки против области, возвращенной GetMovieBoundsRgn. Это означает, что дорожка может переместиться за пределами ее начальных граничных областей, но она не может переместиться вне объединенных начальных граничных областей всех дорожек в фильме. Области, раскрытые движущейся дорожкой, обрабатываются таким же образом как области, раскрытые дорожками с пустыми редактированиями.
Если дорожка должна переместиться через большую область, чем определенный граничной областью фильма, граничная область фильма может быть увеличена к любому желаемому размеру путем создания пространственной дорожки (такой как видеотрек) желаемого размера, но без данных. Пока дорожка включена, она способствует граничным областям фильма.
Поддержка обработчика носителей
Видео, основа и обработчики носителей промежуточного кадра могут отправить данные, которые они получают к другим дорожкам. Текстовый обработчик носителей может также отправить данные, но ни один из обработчиков носителей дорожки не может в настоящее время получать его. Звук, музыка и 3D обработчики носителей не поддерживают отправку их данных к другим дорожкам.
Не все обработчики носителей поддерживают все входные типы. Обработчики носителей могут решить, которые вводят типы для поддержки. Таблица 5-1 перечисляет входные типы, поддерживаемые каждым предоставленным Apple обработчиком носителей.
Входной тип |
Видео |
Текст |
Звук |
MPEG |
Музыка |
Sprite |
Временной код |
3D |
|---|---|---|---|---|---|---|---|---|
Матрица |
X |
X |
|
X |
|
X |
X |
X |
Графический режим |
X |
X |
|
X |
|
X |
X |
X |
Клип |
X |
X |
|
X |
|
X |
X |
X |
Объем |
|
|
X |
X |
X |
|
|
|
Баланс |
|
|
X |
X |
X |
|
|
|
Изображение Sprite |
|
|
|
|
|
X |
|
X |
3D звук |
|
|
X |
|
X |
|
|
|
Создание фильмов с дорожками модификатора
Для создания фильма с дорожками модификатора сначала Вы создаете фильм со всеми желаемыми дорожками, тогда Вы создаете дорожку модификатора. Для соединения дорожки модификатора с дорожкой, которую это изменяет используйте AddTrackReference функция, показанная в Перечислении 5-1.
Перечисление 5-1 , Соединяющее модификатор, отслеживает к дорожке, которую оно изменяет
long addedIndex; |
AddTrackReference (aVideoTrack, |
aModifierTrack, |
kTrackModifierReference, |
&addedIndex); |
Ссылка не полностью описывает отношение дорожки модификатора к дорожке, которую это изменяет. Вместо этого ссылка просто говорит дорожке модификатора отправлять свои данные в указанную дорожку. Дорожка получения не знает то, что она должна сделать с теми данными. Одноколейный путь может также получать данные больше чем от одной дорожки модификатора. Необходимо обновить входную карту носителей дорожки получения, чтобы указать, как должны быть интерпретированы данные.
Управление входными картами носителей
Каждая дорожка имеет определенные атрибуты, такие как размер, позиция и объем, связанный с ним. Носители вводят карту той дорожки, описывает, где переменные параметры сохранены так, чтобы дорожки модификатора знали, куда отправить их данные. Когда дорожка копируется, ее входная карта также копируется. CopyTrackSettings также передает входную карту носителей.
QuickTime обеспечивает две функции, которые можно использовать для поддержания входных карт носителей:
Чтобы описать, как каждый ввод модификатора должен использоваться, носители каждой дорожки имеют входную карту. Входная карта носителей описывает, как данные, отправляемые в каждый ввод дорожки, должны быть интерпретированы дорожкой получения. После создания ссылки необходимо обновить входную карту носителей дорожки получения. Когда AddTrackReference вызывается, это возвращает индекс добавленной ссылки. Тот индекс является индексом ввода, который должен быть описан во входной карте носителей. Если дорожка модификатора, создаваемая выше, содержит области для изменения формы видеотрека, код, показанный в Перечислении 5-2, обновляет входную карту соответственно.
Перечисление 5-2 , Обновляющее входную карту
QTAtomContainer inputMap; |
QTAtom inputAtom; |
OSType inputType; |
Media aVideoMedia = GetTrackMedia(aVideoTrack); |
GetMediaInputMap (aVideoMedia, &inputMap); |
QTInsertChild( |
inputMap, kParentAtomIsContainer, |
kTrackModifierInput, |
addedIndex, |
0, |
0, |
nil, |
&inputAtom); |
inputType = kTrackModifierTypeClip; |
QTInsertChild ( |
inputMap, |
inputAtom, |
kTrackModifierType, |
1, |
0, |
sizeof(inputType), |
&inputType, |
nil); |
SetMediaInputMap(aVideoMedia, inputMap); |
QTDisposeAtomContainer(inputMap); |
Входная карта носителей позволяет Вам хранить дополнительную информацию для каждого ввода. В предыдущем примере только указан тип ввода. В других типах ссылок Вы, возможно, должны указать дополнительные данные.
Когда дорожка модификатора отправляет пустое редактирование дорожки, или отключена или удалена, все дорожки получения уведомляются, что ввод дорожки неактивен. Когда ввод становится неактивным, он сбрасывается к его значению по умолчанию. Например, если дорожка получает данные от дорожки модификатора клипа, и тот ввод становится неактивным, форма дорожки возвращается к форме, которую это имело бы, если бы не было никакой дорожки модификатора клипа.
Работа с альтернативными дорожками
QuickTime позволяет Вам определить альтернативные дорожки в фильме. Можно использовать альтернативные дорожки, чтобы поддерживать многократные языки или представить разные уровни визуального качества в фильме. Вы собираете альтернативные дорожки в группы. Альтернативные группы дорожки являются наборами дорожек, которые представляют некоторые концептуальные данные, но являются подходящими для использования в различных средах игры. Например, у Вас могли бы быть некоторые 4-разрядные данные в одной дорожке и некоторые 8-разрядные данные в другом. Работа с альтернативными дорожками позволяет Вам устанавливать альтернативы, из которых может выбрать QuickTime.
QuickTime выбирает одну дорожку из каждой альтернативной группы, когда это проигрывает фильм. Например, Вы могли создать фильм, имеющий три отдельных аудиотрека: один на английском языке, один на французском языке, и один на испанском языке. Вы собрали бы эти аудиотреки в альтернативную группу. Когда пользователь проигрывает фильм, QuickTime выбирает дорожку из этой группы, соответствующей текущей языковой установке для фильма.
Точно так же можно использовать альтернативные дорожки, чтобы хранить данные различного качества. Когда пользователь проигрывает фильм, QuickTime выбирает дорожку, что лучшие иски возможности компьютера пользователя, на котором проигрывается фильм. Этим способом можно создать единственный фильм, который может разместить характеристики воспроизведения многих различных конфигураций компьютера.
QuickTime позволяет Вам хранить качественную информацию для структур носителей, присваивающихся или звуковым дорожкам или видеотрекам. Для всех дорожек QuickTime использует биты 6 и 7 из качественной установки. Эти биты кодируют относительное качественное значение. Эти значения колеблются от 0 до 3. Можно использовать более высокие качественные значения для указания больших объемов выборки. Например, рассмотрите фильм, имеющий две звуковых дорожки, которые являются альтернативами друг для друга: каждый содержит 8-разрядный звук, и другой содержит 16-разрядный звук. Вы могли присвоить качественное значение mediaQualityNormal к 8-разрядным носителям и значению mediaQualityBetter к 16-разрядным носителям. QuickTime играл бы 16-разрядные носители, только если конфигурация пользователя могла обработать 16-разрядный звук. Иначе, QuickTime использовал бы 8-разрядные носители. Звуковой обработчик носителей определяет объем выборки для каждый звуковые носители для QuickTime путем исследования звуковой структуры описания носителей.
Кроме того, QuickTime также использует биты 0 до 5 (биты младшего разряда) качественной установки. Вы используете эти биты для указания пиксельных глубин, в которых должны играться носители. Каждый бит соответствует единственному значению глубины, в пределах от 1-разрядных пикселей к 32-разрядным пикселям. Можно использовать эти биты для управления воспроизведением и видеотреков и звуковых дорожек.
Как пример, рассмотрите фильм, содержащий три видеотрека со следующими характеристиками:
Дорожка |
Characterics |
|---|---|
A |
1-разрядные видеоданные, никакое сжатие |
B |
Сжатое использование Компрессора Видео Apple |
C |
Сжатое использование компрессора Совместной экспертной группы по фотографии (JPEG) |
Вы могли присвоить следующие качественные значения структурам носителей этой дорожки:
Дорожка |
Качественное значение |
|---|---|
A |
|
B |
|
C |
|
QuickTime всегда использовал бы Дорожку при проигрывании фильма на 1-разрядных и 2-разрядных дисплеях. В других пиксельных глубинах видео обработчик носителей определяет который дорожка использовать путем исследования доступности и производительности указанных декомпрессоров. Если бы декомпрессор JPEG может воспроизвести на уровне полного кадра, QuickTime использовал бы Дорожку C. Иначе, QuickTime использует Дорожку B. Видео обработчик носителей определяет компрессор, который является подходящим для каждого носители путем исследования структуры описания изображения носителей.
Вы устанавливаете язык фильма путем вызова SetMovieLanguage функция.
Для установления альтернативных групп дорожек можно использовать SetTrackAlternate и GetTrackAlternate функции.
Можно работать с языком и качественными характеристиками носителей путем вызова GetMediaLanguage, SetMediaLanguage, GetMediaQuality, и SetMediaQuality функции.
По умолчанию QuickTime автоматически выбирает надлежащие дорожки для игры согласно качеству фильма и настройкам языка, а также возможностям компьютера пользователя. Каждый раз, когда Ваше приложение вызывает theSetMovieGWorld, SetMovieBox, UpdateMovie, или SetMovieMatrix функция, QuickTime проверяет каждую альтернативную группу на надлежащую дорожку. Однако можно управлять этим процессом выбора. Используйте SetAutoTrackAlternatesEnabled функция, чтобы включить или отключить автоматический выбор дорожки. SelectMovieAlternates функция дает QuickTime команду сразу выбрать надлежащие дорожки. Если никакие дорожки в альтернативной группе дорожки не включены, то QuickTime не активирует дорожки от той группы во время автоматического выбора дорожки.