DemuxOptions
Typed demuxer options for MediaSource.open, applied between allocation and open, the only moment probe sizes, flags and whitelists can act. compile is the pure mapping to FFmpeg's own option pairs. A key FFmpeg does not consume comes back through MediaSource.unusedOpenOptions instead of being dropped.
val source = MediaSource.open(url, DemuxOptions(probeSizeBytes = 1_000_000, ioTimeoutMicros = 10_000_000))Two keys are refused on every route, typed or raw, with FFmpegError.InvalidArgument: usetoc, and an fflags value that names fastseek. MP3 seeking is correct only when both are left alone, and either one breaks seeking in a way that looks like a player bug.
Constructors
Properties
How much media the stream analysis may read, in microseconds (analyzeduration).
The demuxer to use, by FFmpeg name, as the command line's -f: the open does not probe. This is what opens headerless input, such as s16le or rawvideo, whose parameters then go in options (sample_rate, video_size and the like). A name this build does not carry fails with FFmpegError.DemuxerNotFound. Unlike formatWhitelist, which only refuses a probed format, this chooses one.
The only demuxers the open may use, by FFmpeg name (format_whitelist); empty allows all.
Frames read to measure a stream's frame rate (fpsprobesize).
How long one network read or write may wait, in microseconds (rw_timeout); null waits for ever.
Bytes the demuxer may read to find the streams (probesize; FFmpeg reads 5 000 000).
The only protocols the open and every nested open may use (protocol_whitelist), such as file or http,tcp; empty allows all. A playlist that points at another protocol is refused.