Timecode Component

Références SMPTE 377-1-2011 - MXF - File Format Specification
Chapitre B.17 - Timecode Component P125
Modèle KLV Local Sets
Universal Label
06.0e.2b.34.02.53.01.01.0d.01.01.01.01.01.14.00 (SMPTE)

Préface

Sequence de la 1ère Timeline Track de Material Package

Timecode Component est utilisé pour définir un timecode continu sur la durée de ce composant.

Le Timecode Component est un enfant d'un KLV Sequence, présent dans chaque Package :

Il n'y aura qu'un seul Timecode Component dans Material Package et dans Source Package.

Les métadonnées

Voici un exemple d'interprétation d'un Timecode Component :

╓────────────────────────────────────────────────────────────────────────────────
║   3C0A - Instance ID             ║  9ee8a2b8.196f4a56.a52befe8.84bf221d
║   0201 - Data Definition         ║  060e2b34.04010101.01030201.01000000 (Timecode Track (with inactive user bits))
║   0202 - Duration                ║  1
║   1502 - Rounded Timecode Base   ║  24
║   1501 - Start Timecode          ║  0
║   1503 - Drop Frame              ║  False
╙────────────────────────────────────────────────────────────────────────────────

Data Definition a déjà été étudié dans Sequence. Pour rappel, il est l'identifiant du type de données dans ce Set.

Duration également vu Sequence, c'est la durée en seconde.

Rounded Timecode Base est simplement le nombre d'images par seconde, arrondi au chiffre supérieur. Les seules valeurs seront donc 24, 25, 30, 48, 60, 96, 120.

Start Timecode spécifie à partir de quand la piste (Track) débute. Elle est exprimé en frame à partir du timecode 00:00:00:00.

Drop Frame spécifie si on a le droit à supprimer des frames lors d'une désynchronisation. Elle sera toujours à False.

Les données brutes du KLV

Voir l'étude du parsing d'un KLV Local Set dans Preface.

Voici un exemple de données brutes (1er Sequence) au format hexadécimal avec un code couleur pour les différentes parties :

3c0a00109ee8a2b8196f4a56a52befe884bf221d02010010060e2b3404010101010302010100 00000202000800000000000000011502000200181501000800000000000000001503000100

Structures des données

Local Tag Nom de l'attribut Type Taille (*) Fixe/Variable SMPTE Obligatoire
3C0A Instance ID UUID 16 octets Fixe Oui
0201 Data Definition UUID (UL) 16 octets Fixe Oui
0202 Duration uint64 8 octets Fixe Non
1502 Rounded Timecode Base uint16 2 octets Fixe Oui
1501 Start Timecode int64 (1) 8 octets Fixe Oui
1503 Drop Frame booléen 1 octet Fixe Oui

(*) N'oubliez pas que les tailles sont purement indicatives car elles sont dynamiques et non fixes et dépendent des Length de chaque item. Notez cependant que la documentation SMPTE peut définir malgré tout certains items avec une valeur fixe, regardez dans la colonne Fixe/Variable SMPTE qui indique si la taille a été normée.

(1) Ce n'est pas uint64 car le nombre peut-être négatif dans certaines occasions (mais jamais pour indiquer une taille ou une durée)

Hiérarchie du format

Interchange ObjectStructural ComponentTimecode Component

Etude rapide de l'Universal Label de Timecode Component

UL = 06.0E.2B.34.02.53.01.vv.0D.01.01.01.01.01.14.00
                             ^^------------------------------ Item Designator    : Organizationally registered
                                ^^--------------------------- Organization       : AAF
                                   ^^------------------------ Application        : MXF / AAF Association Structural Metadata Sets
                                      ^^--------------------- Structure Version  : Structure Version 1
                                         ^^------------------ Structure Kind     : MXF / AAF Association compatible sets and packs
                                            ^^--------------- MXF Set Definition : Timecode Component
                                               ^^------------ MXF Set Definition : Timecode Component