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

tv.amwa.maj.model

## Interface Pulldown

- All Superinterfaces:
    Component, InterchangeObject, MediaEntity, MetadataObject, Segment
  All Known Implementing Classes:
    PulldownImpl

      public interface Pulldown
      extends Segment

  Specifies a conversion between film frame rates and videotape frame rates. Implementations of this interface provides a mechanism to convert essence to and from video and film rates and describe the mechanism that was used to convert the essence.

  A pulldown is typically used in one of three ways:

  1. In a tape source package to describe how the videotape was created from film.
  2. In a file source package that has digital essence at film speed, to describe how the digital essence was created from the videotape.
  3. In a package to create timecode tracks at different edit rates.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Pulldown` | `clone()` Create a cloned copy of this pulldown.
    `Segment` | `getInputSegment()` Returns the input segment of this pulldown, which is either a source clip or timecode.
    `int` | `getPhaseFrame()` Returns the phase frame property of this pulldown, which specifies the phase within the repeating pulldown pattern of the first frame after the pulldown conversion.
    `PulldownDirectionType` | `getPulldownDirection()` Returns the pulldown direction of this pulldown, which specifies whether the pulldown is converting from tape to film speed or from film to tape speed.
    `PulldownKindType` | `getPulldownKind()` Returns the pulldown kind of this pulldown, which specifies whether the pulldown is converting from nominally 30 Hz or 25 Hz video frame rate and whether frames are dropped or the video is played at another speed.
    `void` | `setInputSegment(Segment inputSegment)` Sets the input segment for this pulldown, which is either a source clip or timecode.
    `void` | `setPhaseFrame(int phaseFrame)` Sets the phase frame property of the pulldown, which specifies the phase within the repeating pulldown pattern of the first frame after the pulldown conversion.
    `void` | `setPulldownDirection(PulldownDirectionType pulldownDirection)` Sets the pulldown direction of the pulldown, which specifies whether the pulldown is converting from tape to film speed or from film to tape speed.
    `void` | `setPulldownKind(PulldownKindType pulldownKind)` Sets the pulldown kind of this pulldown, which specifies whether the pulldown is converting from nominally 30 Hz or 25 Hz video frame rate and whether frames are dropped or the video is played at another speed.

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

      `generateSequence, segmentOffsetToTC, segmentTCToOffset`

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

      `appendComponentAttribute, appendComponentAttribute, appendComponentKLVData, appendComponentUserComment, appendComponentUserComment, clearComponentAttributes, clearComponentKLVData, clearComponentUserComments, countComponentAttributes, countComponentKLVData, countComponentUserComments, getComponentAttributes, getComponentDataDefinition, getComponentKLVData, getComponentLength, getComponentUserComments, getLengthPresent, removeComponentAttribute, removeComponentKLVData, removeComponentUserComment, setComponentDataDefinition, setComponentLength, setLengthPresent`

    - ### 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

    - #### getInputSegment

          Segment getInputSegment()

      Returns the input segment of this pulldown, which is either a source clip or timecode. The length of the source clip or timecode is in the edit units determined by the properties pulldown kind and pulldown direction.

      Returns:
        Input segment of this pulldown.
      See Also:
        `TypeDefinitions.SegmentStrongReference`

    - #### setInputSegment

          void setInputSegment(Segment inputSegment)
                        throws NullPointerException,
                               IllegalArgumentException

      Sets the input segment for this pulldown, which is either a source clip or timecode.

      The length of the source clip or timecode is in the edit units determined by the properties pulldown kind and pulldown direction.
      Parameters:
        `inputSegment` - Input segment for the pulldown.
      Throws:
        `NullPointerException` - The given input segment is `null`.
        `IllegalArgumentException` - The given input segment must be either a source clip or a timecode.

    - #### getPulldownKind

          PulldownKindType getPulldownKind()

      Returns the pulldown kind of this pulldown, which specifies whether the pulldown is converting from nominally 30 Hz or 25 Hz video frame rate and whether frames are dropped or the video is played at another speed.

      Returns:
        Pulldown kind of this pulldown.
      See Also:
        `PulldownKindType`

    - #### setPulldownKind

          void setPulldownKind(PulldownKindType pulldownKind)
                        throws NullPointerException

      Sets the pulldown kind of this pulldown, which specifies whether the pulldown is converting from nominally 30 Hz or 25 Hz video frame rate and whether frames are dropped or the video is played at another speed.

      Parameters:
        `pulldownKind` - Pulldown kind of this pulldown.
      Throws:
        `NullPointerException` - The given pulldown kind is `null`.
      See Also:
        `PulldownKindType`

    - #### getPulldownDirection

          PulldownDirectionType getPulldownDirection()

      Returns the pulldown direction of this pulldown, which specifies whether the pulldown is converting from tape to film speed or from film to tape speed.

      Returns:
        Pulldown direction field of the pulldown.
      See Also:
        `PulldownDirectionType`, `TapeDescriptor`, `FilmDescriptor`

    - #### setPulldownDirection

          void setPulldownDirection(PulldownDirectionType pulldownDirection)
                             throws NullPointerException

      Sets the pulldown direction of the pulldown, which specifies whether the pulldown is converting from tape to film speed or from film to tape speed.

      Parameters:
        `pulldownDirection` - Pulldown direction of this pulldown.
      Throws:
        `NullPointerException` - The given pulldown direction is `null`.
      See Also:
        `PulldownDirectionType`, `TapeDescriptor`, `FilmDescriptor`

    - #### getPhaseFrame

          @PhaseFrameType
          int getPhaseFrame()

      Returns the phase frame property of this pulldown, which specifies the phase within the repeating pulldown pattern of the first frame after the pulldown conversion. A value of zero specifies that the pulldown object starts at the beginning of the pattern.

      Returns:
        Phase frame property of this pulldown.

    - #### setPhaseFrame

          void setPhaseFrame(@PhaseFrameType
                             int phaseFrame)

      Sets the phase frame property of the pulldown, which specifies the phase within the repeating pulldown pattern of the first frame after the pulldown conversion. A value of zero specifies that the pulldown object starts at the beginning of the pattern.

      Parameters:
        `phaseFrame` - Phase frame property for this pulldown.

    - #### clone

          Pulldown clone()

      Create a cloned copy of this pulldown.

      Specified by:
        `clone` in interface `Component`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `MediaEntity`
      Specified by:
        `clone` in interface `Segment`
      Returns:
        Cloned copy of this pulldown.

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