All files / src/utils data-types.ts

0% Statements 0/101
0% Branches 0/1
0% Functions 0/1
0% Lines 0/101

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102                                                                                                                                                                                                           
/**
 * Ffmpeg processing progress information
 */
export type ProgressInformation = {
  /** Current frame being processed */
  frame?: number
  /** Current processing speed in frames per second */
  fps?: number
  /** Current output bitrate in kbits/s */
  bitrate?: number
  /** Projected output size in kB */
  size?: number
  /** Current timestamp */
  time?: string
  /** Current processing speed (compared to stream time - a speed of 2 means we process a 1h video in 30 minutes) */
  speed?: number
}

/**
 * Ffmpeg codec information for a single input stream
 */
export type InputStreamCodecInformation = {
  /** Input format */
  format?: string
  /** Input duration */
  duration?: string
  /** Input audio codec info */
  audio?: string
  /** Input audio detailed information */
  audioDetails?: string
  /** Input video codec info */
  video?: string
  /** Input video detailed information */
  videoDetails?: string
}

/**
 * Fffmpeg process input information, as an array with one item per input stream
 */
export type InputCodecInformation = InputStreamCodecInformation[]

export type FfmpegCodecType =
  | 'audio'
  | 'video'
  | 'subtitle'
  | 'data'
  | 'attachment'

export type FfmpegCodec = {
  description: string
  type: FfmpegCodecType
  canEncode: boolean
  canDecode: boolean
  encoders?: string[]
  decoders?: string[]
  intraFrame: boolean
  lossy: boolean
  lossless: boolean
}

export type FfmpegCodecs = {
  [key: string]: FfmpegCodec
}

export type FfmpegFormat = {
  description: string
  canMux: boolean
  canDemux: boolean
}

export type FfmpegFormats = {
  [key: string]: FfmpegFormat
}

export type FfmpegFilterStreamType = 'audio' | 'video'

export type FfmpegFilter = {
  description: string
  inputs: FfmpegFilterStreamType[] | 'dynamic'
  outputs: FfmpegFilterStreamType[] | 'dynamic'
}

export type FfmpegFilters = {
  [key: string]: FfmpegFilter
}

export type FfmpegEncoderType = 'audio' | 'video' | 'subtitle'

export type FfmpegEncoder = {
  description: string
  type: FfmpegEncoderType
  frameMultithreading: boolean
  sliceMultithreading: boolean
  experimental: boolean
  drawHorizBand: boolean
  directRendering: boolean
}

export type FfmpegEncoders = {
  [key: string]: FfmpegEncoder
}