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

tv.amwa.maj.io.mxf

## Interface DeltaEntry

- All Known Implementing Classes:
    DeltaEntryImpl

      public interface DeltaEntry

  Elements of an array defining byte offset values along an incrementing timeline, mapping indexed elements into slices.

  See Also:
    `IndexTableSegment.getDeltaEntryArray()`, `TypeDefinitions.DeltaEntry`, `TypeDefinitions.DeltaEntryArray`, `MXFFactory.makeDeltaEntry(byte, byte, int)`, `MXFFactory.makeDeltaEntry(int)`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static byte` | `APPLY_TEMPORAL_REORDERING` Indicates that position table reordering should be applied and that the difference between an edit units stored order and display order is stored in the temporal offset property of an index entry.
    `static byte` | `NO_TEMPORAL_REORDERING` Indicates that no temporal ordering should be applied and that no different exists between the stored order and display order.
    `static byte` | `POSTABLEINDEX_DEFAULT` Default value for the position table index of a delta entry that indicates that no different exists between the stored order of edit units and the display order.
    `static byte` | `SLICE_DEFAULT` Default value for the slice containing the delta entry, indicating that the entry is contained in the first slice.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `DeltaEntry` | `clone()` Create a cloned copy of this delta entry.
    `int` | `getElementDelta()` Returns the offset measured in bytes from the start of the start of the indexed element described by this delta entry and the start of the current slice.
    `byte` | `getPosTableIndex()` Returns if and how the element is subject to temporal reordering.
    `byte` | `getSlice()` Returns the slice number for the slice containing this delta entry.
    `void` | `setElementDelta(int elementDelta)` Sets offset measured in bytes from the start of the start of the indexed element described by this delta entry and the start of the current slice.
    `void` | `setPosTableIndex(byte posTableIndex)` Sets if and how the element is subject to temporal reordering.
    `void` | `setSlice(byte slice)` Sets the slice number for the slice containing this delta entry.

- - ### Field Detail

    - #### APPLY_TEMPORAL_REORDERING

          @Int8
          static final byte APPLY_TEMPORAL_REORDERING

      Indicates that position table reordering should be applied and that the difference between an edit units stored order and display order is stored in the temporal offset property of an index entry.

      See Also:
        `NO_TEMPORAL_REORDERING`, `POSTABLEINDEX_DEFAULT`, `getPosTableIndex()`, `setPosTableIndex(byte)`, Constant Field Values

    - #### NO_TEMPORAL_REORDERING

          @Int8
          static final byte NO_TEMPORAL_REORDERING

      Indicates that no temporal ordering should be applied and that no different exists between the stored order and display order.

      See Also:
        `APPLY_TEMPORAL_REORDERING`, `POSTABLEINDEX_DEFAULT`, `getPosTableIndex()`, `setPosTableIndex(byte)`, Constant Field Values

    - #### POSTABLEINDEX_DEFAULT

          @Int8
          static final byte POSTABLEINDEX_DEFAULT

      Default value for the position table index of a delta entry that indicates that no different exists between the stored order of edit units and the display order.

      See Also:
        `POSTABLEINDEX_DEFAULT`, `NO_TEMPORAL_REORDERING`, `getPosTableIndex()`, `setPosTableIndex(byte)`, Constant Field Values

    - #### SLICE_DEFAULT

          @UInt8
          static final byte SLICE_DEFAULT

      Default value for the slice containing the delta entry, indicating that the entry is contained in the first slice.

      See Also:
        `getSlice()`, `setSlice(byte)`, `IndexEntry.getSliceOffset()`, Constant Field Values

  - ### Method Detail

    - #### getPosTableIndex

          @Int8
          byte getPosTableIndex()

      Returns if and how the element is subject to temporal reordering. Values are as follows:

      - -1 indicates that the temporal ordering indicated in the index entry should be used.
      - 0 indicates no temporal reordering and that no difference exists between stored order and display order.
      - A positive value of n provides an index into the fractional temporal offset position table in the index entry.
      Returns:
        If and how the element is subject to temporal reordering.
      See Also:
        `POSTABLEINDEX_DEFAULT`, `APPLY_TEMPORAL_REORDERING`, `NO_TEMPORAL_REORDERING`

    - #### setPosTableIndex

          @UInt8
          void setPosTableIndex(@UInt8
                                       byte posTableIndex)
                                throws IllegalArgumentException

      Sets if and how the element is subject to temporal reordering. Values are as follows:

      - -1 indicates that the temporal ordering indicated in the index entry should be used.
      - 0 indicates no temporal reordering and that no difference exists between stored order and display order.
      - A positive value of n provides an index into the fractional temporal offset position table in the index entry.
      Parameters:
        `posTableIndex` - If and how the element is subject to temporal reordering.
      Throws:
        `IllegalArgumentException` - The position table index cannot be less than -1.
      See Also:
        `POSTABLEINDEX_DEFAULT`, `APPLY_TEMPORAL_REORDERING`, `NO_TEMPORAL_REORDERING`

    - #### getSlice

          @UInt8
          byte getSlice()

      Returns the slice number for the slice containing this delta entry. For a delta entry following a constant bit rate element, the slice number is normally the same. An incremented slice number is required for any delta entry that follows a variable bit rate element.

      Returns:
        Slice number for the slice containing this delta entry.
      See Also:
        `SLICE_DEFAULT`, `IndexEntry.getSliceOffset()`

    - #### setSlice

          void setSlice(@UInt8
                        byte slice)
                 throws IllegalArgumentException

      Sets the slice number for the slice containing this delta entry. A new slice is required for any element that follows a variable bit rate element.

      Parameters:
        `slice` - Slice number for the slice containing this delta entry.
      Throws:
        `IllegalArgumentException` - A slice number cannot be negative.
      See Also:
        `SLICE_DEFAULT`, `IndexEntry.setSliceOffset(int[])`

    - #### getElementDelta

          @UInt32
          int getElementDelta()

      Returns the offset measured in bytes from the start of the start of the indexed element described by this delta entry and the start of the current slice. For any delta entry at the start of a slice, this value is zero.

      Returns:
        Offset measured in bytes from the start of the start of the indexed element and the start of the current slice.
      See Also:
        `getSlice()`

    - #### setElementDelta

          void setElementDelta(@UInt32
                               int elementDelta)
                        throws IllegalArgumentException

      Sets offset measured in bytes from the start of the start of the indexed element described by this delta entry and the start of the current slice. For any delta entry at the start of a slice, this value is zero.

      Parameters:
        `elementDelta` - Offset measured in bytes from the start of the start of the indexed element and the start of the current slice.
      Throws:
        `IllegalArgumentException` - Cannot set the element delta to a negative value.
      See Also:
        `getSlice()`

    - #### clone

          DeltaEntry clone()

      Create a cloned copy of this delta entry.

      Returns:
        Cloned copy of this delta entry.

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