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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 2x 2x 2x 2x 2x 2x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x | import { FfmpegProcess } from './process' import { FfmpegCodecs, FfmpegEncoders, FfmpegFilters, FfmpegFormats } from './utils/data-types' import { extractCodecs, extractEncoders, extractFilters, extractFormats } from './utils/parsing' import { nlRegexp } from './utils/regexp' export class FfmpegCapabilities { #codecs: FfmpegCodecs | null = null #formats: FfmpegFormats | null = null #filters: FfmpegFilters | null = null #encoders: FfmpegEncoders | null = null #decoders: FfmpegEncoders | null = null private async getLines(arg: string): Promise<string[]> { let { stdout } = await new FfmpegProcess({ args: [arg], captureStdout: true }).run() return stdout.split(nlRegexp) || [] } async codecs() { // TODO note: if we ever check codecs, "copy" is also an option for output codec if (!this.#codecs) { this.#codecs = extractCodecs(await this.getLines('-codecs')) } return this.#codecs } async formats() { if (!this.#formats) { this.#formats = extractFormats(await this.getLines('-formats')) } return this.#formats } async filters() { if (!this.#filters) { this.#filters = extractFilters(await this.getLines('-filters')) } return this.#filters } async encoders() { if (!this.#encoders) { this.#encoders = extractEncoders(await this.getLines('-encoders')) } return this.#encoders } async decoders() { if (!this.#decoders) { this.#decoders = extractEncoders(await this.getLines('-decoders')) } return this.#decoders } } |