import EbmlElement from "../../ebml/ebmlElement"; import { IVideoCodec, MediaTypes } from "../../properties"; import { Track } from "./track"; /** * Possible modifications to the aspect ratio. */ export declare enum VideoAspectRatioMode { /** * Free resizing allowed */ Free = 0, /** * Keep aspect ratio */ Keep = 1, /** * Fixed aspect ratio */ Fixed = 2 } /** * Units for the "display" dimensions values of the video. */ export declare enum VideoDisplayUnits { /** * Display values are in pixels. */ Pixels = 0, /** * Display values are in centimeters. */ Centimeters = 1, /** * Display values are in inches. */ Inches = 2, /** * Display values are the aspect ratio. */ DisplayAspectRatio = 3, /** * Display value units are unknown. */ Unknown = 4 } /** * Type of interlacing of the video. */ export declare enum VideoInterlaceFlag { /** * Interlacing mode is unknown. */ Undetermined = 0, /** * Interlacing mode is interlaced. */ Interlaced = 1, /** * Interlacing mode is progressive scan. */ Progressive = 2 } /** * Stereo-3D video mode. */ export declare enum VideoStereoMode { /** * Video is not stereo. */ Mono = 0, /** * Stereo video is side by side with left eye first. */ SideBySideLeftFirst = 1, /** * Stereo video is top/bottom with right eye first. */ TopBottomRightFirst = 2, /** * Stereo video is top/bottom with left eye first. */ TopBottomLeftFirst = 3, /** * Stereo video is checkboard with right eye first. */ CheckboardRightFirst = 4, /** * Stereo video is checkboard with left eye first. */ CheckboardLeftFirst = 5, /** * Stereo video is row interleaved with right eye first. */ RowInterleavedRightFirst = 6, /** * Stereo video is row interleaved with left eye first. */ RowInterleavedLeftFirst = 7, /** * Stereo video is column interleaved with right eye first. */ ColumnInterleavedRightFirst = 8, /** * Stereo video is column interleaved with left eye first. */ ColumnInterleavedLeftFirst = 9, /** * Stereo video is cyan/red anaglyph. */ AnaglyphCyanRed = 10, /** * Stereo video is side by side with right eye first. */ SideBySideRightFirst = 11, /** * Stereo video is green/magenta anaglyph. */ AnaglyphGreenMagenta = 12, /** * Stereo video are both eyes laced into one block with left eye first. */ LacedLeftFirst = 13, /** * Stereo video are both eyes laced into one block with right eye first. */ LacedRightFirst = 14 } /** * Extension of {@link Track} that adds video information. * @remarks * An earlier version of Matroska had a framerate field. This has since been deprecated * and the only true way to calculate framerate it do calculate it based on time codes. */ export declare class VideoTrack extends Track implements IVideoCodec { private readonly _aspectRatioType; private readonly _cropBottom; private readonly _cropLeft; private readonly _cropRight; private readonly _cropTop; private readonly _displayHeight; private readonly _displayUnits; private readonly _displayWidth; private readonly _height; private readonly _isInterlaced; private readonly _stereoMode; private readonly _width; /** * Constructs and initializes a new instance from a dictionary of elements from a video track element. * @param trackElements All elements in the track root element * @param videoElements All elements in the video root elements */ constructor(trackElements: Map, videoElements: Map); /** * Specifies the possible modifications to the aspect ratio. */ get aspectRatioType(): VideoAspectRatioMode; /** * Number of pixels to remove at the bottom of the image. */ get cropBottom(): number; /** * Number of pixels to remove on the left of the image. */ get cropLeft(): number; /** * Number of pixels to remove on the right of the image. */ get cropRight(): number; /** * Number of pixels to remove at the top of the image. */ get cropTop(): number; /** * Height of the video frames to display. Applies to the video frame after cropping. * @remarks * If the {@link displayUnits} is {@link VideoDisplayUnits.Pixels}, then default * value for this is equal to {@link videoHeight} - {@link cropTop} - {@link cropBottom}, * otherwise there is no default value. */ get displayHeight(): number; /** * How {@link displayWidth} and {@link displayHeight} are interpreted. */ get displayUnits(): number; /** * Width of the video frames to display. Applies to the video frame after cropping. * @remarks * If the {@link displayUnits} is {@link VideoDisplayUnits.Pixels}, then default * value for this is equal to {@link videoWidth} - {@link cropLeft} - {@link cropRight}, * otherwise there is no default value. */ get displayWidth(): number; /** * Mode for interlacing the video. */ get interlacingMode(): VideoInterlaceFlag; /** @inheritDoc */ get mediaTypes(): MediaTypes; /** * Stereo-3D video mode. */ get stereoMode(): VideoStereoMode; /** @inheritDoc */ get videoHeight(): number; /** @inheritDoc */ get videoWidth(): number; }