TimelineTrack (Media Authoring with Java API)
Date: 2016-02-05

tv.amwa.maj.model

## Interface TimelineTrack

- All Superinterfaces:
    InterchangeObject, MediaEntity, MetadataObject, Track
  All Known Implementing Classes:
    TimelineTrackImpl

      public interface TimelineTrack
      extends Track

  Specifies a track that describes time-varying timeline essence.

  If a component is in a timeline track, then it shall have a length property. The timeline track specifies the edit rate for the segment it has. The segment specifies its length in the edit rate set by the timeline track. The segment also specifies its own data kind.

  See Also:
    `MaterialPackage.createEssence()`, `MaterialPackage.createMultiEssence()`, `TimecodeSegment`, `EdgeCodeSegment`, `TimecodeStream`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `TimelineTrack` | `clone()` Create a cloned copy of this timeline track.
    `Rational` | `getEditRate()` Returns the edit rate for this timeline track, which specifies the units of time of the track.
    `long` | `getMarkIn()` Returns the mark in property of the timeline track.
    `long` | `getMarkOut()` Returns the mark out property of this timeline track, which specifies the position of the marked out point as a count of edit units from the zero position of this timeline track.
    `long` | `getOrigin()` Returns the origin of this timeline track, which specifies the offset used to resolve source clip references in this timeline track.
    `long` | `getUserPosition()` Returns the user position property of the timeline track, which specifies a user position as a count of edit units from the zero position of the timeline track.
    `void` | `setEditRate(Rational editRate)` Sets the edit rate for this timeline track, which specifies the units of time of the track.
    `void` | `setMarkIn(Long markIn)` Sets the mark in property for this timeline track, which specifies the position of the marked in point as a count of edit units from the zero position of this timeline track.
    `void` | `setMarkOut(Long markOut)` Sets the mark out property of this timeline track, which specifies the position of the marked out point as a count of edit units from the zero position of this timeline track.
    `void` | `setOrigin(long origin)` Sets the origin of this timeline track, which specifies the offset used to resolve source clip references in this timeline track.
    `void` | `setUserPosition(Long userPosition)` Sets the user position property of the timeline track, which specifies a user position as a count of edit units from the zero position of the timeline track.

    - ### Methods inherited from interface tv.amwa.maj.model.Track

      `getDataDefinition, getEssenceTrackNumber, getTrackID, getTrackName, getTrackSegment, setEssenceTrackNumber, setTrackID, setTrackName, setTrackSegment`

    - ### Methods inherited from interface tv.amwa.maj.model.InterchangeObject

      `addApplicationPlugin, clearApplicationPlugins, containsApplicationPlugin, containsApplicationPlugin, countApplicationPlugins, deepEquals, disableGenerationTracking, enableGenerationTracking, equals, getApplicationPlugins, getGeneration, getLinkedGenerationID, getObjectClass, isGenerationTracked, removeApplicationPlugin, removeApplicationPlugin, setLinkedGenerationID, setObjectClass, toString`

    - ### Methods inherited from interface tv.amwa.maj.industry.MediaEntity

      `getPersistentID, setPersistentIndex`

- - ### Method Detail

    - #### getEditRate

          Rational getEditRate()

      Returns the edit rate for this timeline track, which specifies the units of time of the track.

      Returns:
        Edit rate for this timeline track.

    - #### setEditRate

          void setEditRate(Rational editRate)
                    throws NullPointerException

      Sets the edit rate for this timeline track, which specifies the units of time of the track.

      Parameters:
        `editRate` - Edit rate for this timeline track.
      Throws:
        `NullPointerException` - The given edit rate is `null`.

    - #### getOrigin

          @PositionType
          long getOrigin()

      Returns the origin of this timeline track, which specifies the offset used to resolve source clip references in this timeline track. A positive value of origin means that the first sample of the essence is earlier than the zero position. A negative value of origin means that the zero position is earlier than the first sample of the essence.

      Returns:
        Origin of this timeline track.

    - #### setOrigin

          void setOrigin(@PositionType
                         long origin)

      Sets the origin of this timeline track, which specifies the offset used to resolve source clip references in this timeline track. A positive value of origin means that the first sample of the essence is earlier than the zero position. A negative value of origin means that the zero position is earlier than the first sample of the essence.

      Parameters:
        `origin` - Origin of this timeline track.

    - #### getMarkIn

          @PositionType
          long getMarkIn()
                                throws PropertyNotPresentException

      Returns the mark in property of the timeline track. This property specifies the position of the marked in point as a count of edit units from the zero position of the timeline track. This is an optional property.

      Note that this property shall not be present for a source package.

      Returns:
        Mark in property for the timeline track.
      Throws:
        `PropertyNotPresentException` - The optional mark in property is not present in this timeline track.

    - #### setMarkIn

          void setMarkIn(@PositionType
                         Long markIn)

      Sets the mark in property for this timeline track, which specifies the position of the marked in point as a count of edit units from the zero position of this timeline track. Set this optional property to `null` to omit it.

      Note that this property shall not be present for a source package.

      Parameters:
        `markIn` - Mark in property for this timeline track.

    - #### getMarkOut

          @PositionType
          long getMarkOut()
                                 throws PropertyNotPresentException

      Returns the mark out property of this timeline track, which specifies the position of the marked out point as a count of edit units from the zero position of this timeline track. This is an optional property.

      Note that this property shall not be present for a source package.

      Returns:
        Mark out property of this timeline track.
      Throws:
        `PropertyNotPresentException` - The optional mark out property is not present in this timeline track.

    - #### setMarkOut

          void setMarkOut(@PositionType
                          Long markOut)

      Sets the mark out property of this timeline track, which specifies the position of the marked out point as a count of edit units from the zero position of this timeline track. Set this optional property to `null` to omit it.

      Note that this property shall not be present for a source package.

      Parameters:
        `markOut` - Mark out property of this timeline track.

    - #### getUserPosition

          @PositionType
          long getUserPosition()
                                      throws PropertyNotPresentException

      Returns the user position property of the timeline track, which specifies a user position as a count of edit units from the zero position of the timeline track. This is an optional property.

      Note that this property shall not be present for a source package.

      Returns:
        The user position property of this timeline track.
      Throws:
        `PropertyNotPresentException` - The optional user position property is not present in this timeline track.

    - #### setUserPosition

          void setUserPosition(@PositionType
                               Long userPosition)

      Sets the user position property of the timeline track, which specifies a user position as a count of edit units from the zero position of the timeline track. Set this optional property to `null` to omit it.

      Note that this property shall not be present for a source package.

      Parameters:
        `userPosition` - User position property of this timeline track.

    - #### clone

          TimelineTrack clone()

      Create a cloned copy of this timeline track.

      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `MediaEntity`
      Specified by:
        `clone` in interface `Track`
      Returns:
        Cloned copy of this timeline track.

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