Class TimeFrameI

  • Direct Known Subclasses:
    AudioSink.AudioFrame

    public class TimeFrameI
    extends Object
    Integer time frame in milliseconds, maybe specialized for texture/video, audio, .. animated content.

    Type and value range has been chosen to suit embedded CPUs and characteristics of audio / video streaming and animations. Milliseconds of type integer with a maximum value of Integer.MAX_VALUE will allow tracking time up 2,147,483.647 seconds or 24 days 20 hours 31 minutes and 23 seconds.

    Milliseconds granularity is also more than enough to deal with A-V synchronization, where the threshold usually lies within 22ms.

    Milliseconds granularity for displaying video frames might seem inaccurate for each single frame, i.e. 60Hz != 16ms, however, accumulated values diminish this error and vertical sync is achieved by build-in V-Sync of the video drivers.

    • Field Detail

      • INVALID_PTS

        public static final int INVALID_PTS
        Constant marking an invalid PTS, i.e. Integer.MIN_VALUE == 0x80000000 == -2147483648. Sync w/ native code.
        See Also:
        Constant Field Values
      • END_OF_STREAM_PTS

        public static final int END_OF_STREAM_PTS
        Constant marking the end of the stream PTS, i.e. Integer.MIN_VALUE - 1 == 0x7FFFFFFF == 2147483647. Sync w/ native code.
        See Also:
        Constant Field Values
      • pts

        protected int pts
      • duration

        protected int duration
    • Constructor Detail

      • TimeFrameI

        public TimeFrameI()
        Ctor w/ zero duration and INVALID_PTS.
      • TimeFrameI

        public TimeFrameI​(int pts,
                          int duration)
        Create a new instance
        Parameters:
        pts - frame pts in milliseconds
        duration - frame duration in milliseconds
    • Method Detail

      • getPTS

        public final int getPTS()
        Get this frame's presentation timestamp (PTS) in milliseconds.
      • setPTS

        public final void setPTS​(int pts)
        Set this frame's presentation timestamp (PTS) in milliseconds.
      • getDuration

        public final int getDuration()
        Get this frame's duration in milliseconds.
      • setDuration

        public final void setDuration​(int duration)
        Set this frame's duration in milliseconds.