tv.amwa.maj.record (Media Authoring with Java API)
Date: 2016-02-05

# Package tv.amwa.maj.record

Specifications of representations of structured values, such as those of the AAF record data types.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  AUID | Specifies a 16-byte unique identifier whose value is a SMPTE 298M Universal Label or a UUID or GUID.
  DateStruct | Specifies the date component of timestamp values that are specified according to Coordinated Universal Time (UTC).
  EdgeCodeValue | Specifies a value that represents film edge code information.
  PackageID | Specifies a 32 byte package identifier unique identifier that can hold a SMPTE UMID, as specified in SMPTE 330M.
  ProductVersion | Specifies the version number of an application, represented with four release levels and its product release type.
  Rational | Specifies a rational number by means of a Java integer numerator (`Int32`) and a Java integer (`Int32`) denominator.
  RGBAComponent | Specifies an element of an array representing the order and size of the component values within a pixel value as part of an RGBA Layout.
  TimecodeValue | Specifies videotape or audio tape timecode information.
  TimeStamp | Specifies a date and time in UTC (Coordinated Universal Time).
  TimeStruct | Specifies the time component of date and time values specified according to Coordinated Universal Time (UTC), including hour, minute, second and 1/250th of a second.
  VersionType | Specifies a 2-byte version number, consisting of a major and minor component.

- Enum Summary
  Enum | Description
  --- | ---
  InstanceNumberGeneration | Describes different methods used to generate the instance number part of a UMID, which forms bytes 14, 15 and 16 of a UMID value.
  MaterialNumberGeneration | Describes the method used to generate the material number part of a UMID, which form the last 16 bytes of a UMID value.

## Package tv.amwa.maj.record Description

Specifications of representations of structured values, such as those of the AAF record data types. Property values of the record type consist of values for an ordered set of fields, where each field has a name and type.

Included in this package are:

- Interfaces to the unique identifiers used in AAF, AUID and PackageID.
- Interfaces for date and time representations used to make up the Coordinated Universal Time time stamp.
- Interfaces for tape timecodes and film edge codes.
- Interfaces for structured numerical rational numbers.

A generic means of mapping the public fields of any Java class to an AAF record type definition is provided by the `createValueFromObject()` and `getObject()` methods of a record type definition.

## Heritage

The interfaces defined in this package are derived from structures defined for the C-based AAF SDK in file "`AAFTypes.h`". The structure has been converted to a Java interface with every element of the C `struct` represented by a pair of `get` and `set` methods.

For example, the AAF rational data type is defined in the AAF SDK by the following structure:

        typedef struct _aafRational_t
        {
            aafInt32           numerator;
            aafInt32           denominator;
        } aafRational_t;

This has been translated to the Java interface called `Rational` as follows:

        public interface Rational {
            @Int32 getNumerator();
            void setNumerator(@Int32 int numerator);
            @Int32 getDenominator();
            void setDenominator(@Int32 int denominator);
        }

See Also:
  `TypeDefinitionRecord`

(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.