The properties are stored in the system registry:
[HKEY_CURRENT_USER\SOFTWARE\Medialooks\MFormats\MFReader]
and can be set with the PropsSet method.
| Name | Default value | Description |
|---|---|---|
| anc_file.async_open | false | Sets asynchronous way to open external ANC file with closed captions data. |
| aspect_ratio | (empty) | Sets default aspect ratio in "[arX]:[arY]" format, e.g. "16:9" |
| audio.gain_normalization | false | Enables the audio gain normalization |
| audio.lufs | false | Enables LUFS audio measurement |
| audio.lufs_channels | (empty) | Sets the channels for LUFS measurements |
| audio.lufs_state | (empty) | Sets LUFS measurement state. Possible values:"" (continue the calculation), "reset", "pause" |
| audio.max_wait | -1 | Max time (ms) to wait for incoming audio packets before proceeding—helps smooth DVB/network timestamp jumps and avoid A/V desync. |
| audio.merge_mono_track | true | When enabled, merges multiple mono tracks into a single audio track. Useful for MXF files. |
| audio.pts_buf_err_threshold_msec | 30 | Sets the threshold (in milliseconds) for allowed deviation between audio and video PTS values. If the discrepancy exceeds this value, an error or warning can be triggered. Useful for debugging sync issues. |
| audio.pts_sync_msec | 0 | Sets a limit of asynchronization in milliseconds before force synchronization of video and audio is enabled. |
| audio.rms_forward_time | 0.0 | Pre-cache duration for audio normalization in a forward direction. |
| audio_channels | (empty) | Sets the default audio channel configuration. |
| audio_only.block_msec | 0 | Sets default duration of an audio block (for audio-only files) in msec. If "0" then duration equals to video frame time. |
| audio_only.exact_pos | false | Once enabled, seeking within audio-only files uses specified position (not aligned by frame time) |
| audio_only.preroll_msec | 0 | Sets default preroll value in msec for seeking in audio-only files. |
| audio_track | 0 |
Specifies the audio track index to use. Set to "-1" to disable audio, or "all" to enable all tracks. |
| auto_index | false | Enables the auto-indexation features to improve seeking accuracy. |
| crop | Value format: "left,top,width,height". |
Sets the default crop area for the video frame. |
| decoder.amd | false | Enables GPU-accelerated decoding using AMD hardware. |
| decoder.attempts_limit | 500 |
Max number of consecutive decode retries before failing. Set |
|
decoder.cc |
true | Enables parsing of ATSC closed captions (CC) if present. |
| decoder.convert_planar | false | Controls whether the SDK converts planar YUV formats (like YUV420P) to a packed format (HDYC). Disabling it can improve performance in workflows that support planar data. |
| decoder.force_gpu | (empty) | Selects a specific GPU device to use for decoding. Useful for systems with multiple GPUs to avoid conflicts or load imbalances. |
| decoder.force_gpu_out | false | Forces output of video frames from the decoder in GPU memory. |
| decoder.mjpeg_threads | 6 | Sets the number of threads for decoding MJPEG video. |
| decoder.mldv | true | Enables the Medialooks DV decoder. |
| decoder.nvidia | false | Enables GPU-accelerated decoding using NVIDIA hardware. |
| decoder.quicksync | 0 | Enables Intel Quick Sync GPU decoding. Use "1" to enable. |
| decoder.yuv_transform_matrix | (empty) |
Posible values:
Defines the matrix used for YUV-to-RGB conversion. If any unknown value is provided, it defaults to YUV_RGB_709. |
| deinterlace_fields | 2 |
Defines how fields are processed during frame rate up-conversion: Possible values:
|
| duration.recalc_on_open | false | Once enabled, the file duration is recalculated once it is opened. It gets a more accurate duration but slightly increases performance and time to open a file. |
| experimental.mfcodecs | true | Enables an experimental mode for video and audio decoding |
| experimental.nvidia.async_copy | false | Enables an asynchronous way of video data copy for GPU-pipeline. |
| experimental.optimize_cpu | true | Optimizes CPU usage for decoding. Experimental parameter. |
| experimental.out_audio_packets | 0 | Enables experimental mode to output original (non-decoded) audio packets. |
|
experimental.out_subtitle_packets |
0 | Enables experimental mode to output original (non-decoded) subtitle packets. |
| experimental.out_video_packets | 0 | Enables experimental mode to output original (non-decoded) video packets. |
| experimental.rev_max_cpu_memory | 4G | Sets the maximum amount of system (CPU) memory used during reverse playback buffering. |
| experimental.rev_max_gpu_memory | 1G | Sets the maximum amount of GPU memory used during reverse playback. |
| experimental.rev_max_step_msec | 300 | Maximal interval for reverse playback |
| experimental.rev_min_step_msec | 0 | Minimal interval for reverse playback |
| external_process | true | When enabled, decoding runs in an external MServer.exe process. |
| file.buffer_max | 2.0 | Sets maximal duration (in seconds) for file buffering. |
| file.buffer_min | 0.0 | Sets minimal duration (in seconds) for file buffering. |
|
fill_time_gaps |
false | Enables automatic duplication of the last available frame to fill timecode gaps in the source. Useful when source files contain irregular timestamps (e.g., jumps or pauses). |
| force_conversion | false | Force video conversion, even if the selected format is the same as the original format |
| format.set_default_pixelformat | false | Once enabled, the MFReader keeps using the original pixel format in a case of video conversion. |
| forward.cache | 3 | Sets the amount of pre-cached frames for a forward playback. |
| forward.min_seek | 5 | Sets interval of frames for seeking. |
| frame_get_by_index.use_output_fps | false | Once enabled, the FrameGetByNumber method calculates a target frame based on the output frame rate. In disabled mode, it uses the original frame rate. |
| gain_normalization.gating | -100.0 | The gating parameter for audio normalization |
| gain_normalization.loudness_type | rms | Type of audio normalization. Possible values: "rms", "m", "s", "i" |
| gain_normalization.target_i | -23.0 | Target i value for the normalization |
| h264_timecode.every_frame_update | ||
| h264_timecode.force |
||
| img.open_file_flags | -1 | Sets additional flags for still images opening |
| interlace | (empty) |
Specifies the default interlacing mode. Possible values:
|
| loop | false | Defines whether playback should automatically loop. |
| mfcodecs.drop_packets | false | Enables dropping packets for mfcodecs. Not recommended to enable. |
| mirror | (empty) | Applies a mirror effect to the video. |
| mxf.force_ffmpeg | false | Forces to use FFmpeg MXF decoding instead of Medialooks MXF Reader. |
| mxf.fp500_offset | true | Enables to use FP500 offset data for MXF files. |
| mxf.hidden_index | true | Once enabled, a hidden index file is created for big MXF files. When the index is created the next time you open this MXF file, it is opened much faster than the 1st time. |
| mxf.index_path | ||
| mxf.open_file_flags | (empty) |
Sets additional flags for MXF files opening https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx Where valid flags are listed in dwFlagsAndAttributes parameter. |
| mxf.s377_metadata | false | Enables to use S377 metadata for MXF files. |
| mxf.source_package_tc | false | Sets a timecode source for MXF files: false - MaterialPackage TC true (or 1) - SourcePackage TC from the 1st source TC track 2,3,... - an index of a source TC track to use (starts with 1). |
| mxf.use_track_origin | false | If true, honor MXF TrackOrigin and skip the initial offset frames when reading MXF files. |
| network.buffer_max | 10.0 | Sets maximal duration (in seconds) for network streams buffering. |
| network.buffer_min | 1.0 | Sets minimal duration (in seconds) for network streams buffering. |
| network.low_delay | false | Once enabled, tries to open a network source without extra buffering. Reduces the overall delay for RTSP streams, but might affect the stability of streams for other protocols. |
| network.open_async | false | Once enabled, network streams are initialized asynchronously (in an extra thread). |
| network.open_image | Sets a path to a custom image for reconnection. | |
| network.rate_control | true | Enables additional control over buffers for network streams playback. Makes network playback more stable in most cases. |
| network.reconnect | true | Once enabled, tries to reconnect a network stream when its signal is lost. |
| network.reconnect.max_wait | 0 | The maximal amount of time to wait for the reconnect of a stream. 0 means "wait forever". |
| network.show_attempts | true | Shows attempts of reconnection for network streams. |
|
nvidia.num_decode_surfaces |
8 | Number of surfaces that the Nvidia driver will internally allocate for storing the decoded frames. Using a higher number ensures better pipelining but increases GPU memory consumption. Minimum recommended value: 2. |
|
nvidia.num_output_surfaces |
4 | Maximum number of output surfaces that the Nvidia driver will simultaneously map to decode surfaces for further processing. Minimum recommended value: 2. |
| object_name | MFReader | Specifies a custom name for the MFReader object. |
| open_file.max_wait | 10000 | Sets the maximal waiting time to open a file (in msec). |
| open_url.max_wait | 15000 | Sets the maximal waiting time to open a network stream (in msec). |
| output.10bit | false | Enables 10bits output from MFReader (for HDR support) |
| pause.mute_audio | true | Once "true", there is no audio when a playlist is paused and you display it frame by frame. |
|
pause_copy_mode |
reference |
Controls how paused frames are returned. Possible values: reference: returns the same reference to the last decoded frame. Optimized for performance but may cause issues with overlays or changes. clone: always returns a cloned frame, useful when applying overlays or transformations while paused. |
| play_while_rec.update_len | true | Once enabled, the object updates duration of a recording file. |
| read_file.max_wait | 3000 | Sets the maximal waiting time to read a frame from a file (in msec). |
| read_url.max_wait | 3000 | Sets the maximal waiting time to read a frame from a network stream (in msec). |
| register_object | true | If enabled, registers the object to collect runtime statistics. |
| rotate | (empty) | Sets the default rotation angle for the video. |
| scale_type | (empty) |
Sets scaling type.
|
| scaling_deinterlace_first | false | If true, deinterlace frames before scaling (deinterlace → scale) to prevent combing/striping on interlaced sources. |
| scaling_quality | auto |
Sets scaling quality for video.
|
| srt.force_ffmpeg | false | Initializes FFmpeg to read input SRT streams. By default, Medialooks' internal splitter is used. |
| subtitle_track | -1 | Sets default subtitle track index. "-1" means to ignore subtitle tracks. |
| teletext.force_ffmpeg | false | Enables teletext decoding using FFmpeg |
| ts_program | 0 | Sets default transport stream program. For example, the quality level of the youtube stream. |
| video_track | 0 | Sets default video track index. Set "-1" to disable video. |
| watch_dog.max_time_file | 1000 | Sets maximal wait time for a watchdog object to control framerate for files. |
| watch_dog.max_time_net | 10000 | Sets maximal wait time for a watchdog object to control framerate for network streams. |
| yt-dlp.path | Specifies the exact path to yt-dlp.exe when handling YouTube sources. If empty, it searches next to the DLL location. |