Kodi DSPlayer – DirectShow Player for Windows
1. DEVICES (Continued...)



The hdr section specifies how HDR sources are handled. HDR refers to High Dynamic Range content. This is a new standard for consumer video that includes sources ranging from UHD Blu-ray to streaming services such as Netflix, Amazon, Hulu, iTunes and Vudu, as well as HDR TV broadcasts.

What Is HDR Video?

Current HDR support in madVR focuses on PQ HDR10 content. Other formats such as Hybrid Log Gamma (HLG), HDR10+ and Dolby Vision are not supported because current video filters and video drivers cannot passthrough these formats.


HDR sources are converted internally in the display through a combination of tone mapping, gamut mapping and transfer function conversion. madVR is capable of all of these tasks, so HDR video can be displayed accurately on any display type, and not just bright HDR TVs.

The three primary HDR options below provide various methods of compressing HDR sources to a lower peak brightness (known as tone mapping). Unlike SDR video, HDR10 videos are not mastered universally to match the specifications of all consumer displays and it is up to each display manufacturer to determine how to map the brightness levels of HDR video to its displays.

Each HDR setting adds incremental amounts of tone mapping and gamut mapping to the source video with varied levels of resource use. 3D LUT correction adds a small amount to GPU rendering times, but tone map HDR using pixel shaders with all HDR enhancements enabled can add considerably to rendering times, which may not make it a good option for mid to low-level GPUs when outputting at 3840 x 2160p (4K UHD).

What Is HDR Tone Mapping?

madVR offers four options for processing HDR10 sources:

let madVR decide
madVR detects the display's capabilities. Displays that are HDR-compatible receive HDR sources with metadata via passthrough (untouched). Not HDR-compatible? HDR is converted to SDR via pixel shader math at reasonable quality, but not the highest quality.

passthrough HDR to display 
The display receives HDR RGB source values untouched for conversion by the display (a setting of let madVR decide will also accomplish this). HDR passthrough should only be selected for displays which natively support HDR playback. send HDR metadata to the display: Use Nvidia's or AMD's private APIs to passthrough HDR metadata: Requires a Nvidia or AMD GPU with recent drivers and a minimum of Windows 7. Use Windows 10 HDR API (D3D 11 only): For Intel users; requires Windows 10 and use Direct3D 11 for presentation (Windows 7 and newer). To use the Windows API, HDR and WCG must be enabled in Windows Display settings. This is important as the Windows API will not dynamically switch in and out of HDR mode. By comparison, the Nvidia & AMD APIs do dynamically switch between SDR and HDR when HDR videos are played, allowing for perfect HDR and SDR playback. The Windows 10 API is all or nothing — all HDR all the time. The Nvidia & AMD APIs for HDR metadata passthrough require Windows 10 HDR and WCG is deactivated. AMD also needs two additional settings: Direct3D 11 for presentation (Windows 7 and newer) in general settings and 10-bit output from madVR (GPU output may be 8-bit). You do not need to select 10-bit output for Nvidia GPUs; dithered 8-bit output is acceptable and sometimes preferable in some cases.

tone map HDR using pixel shaders
HDR is converted to SDR through combined tone mapping, gamut mapping and transfer function conversion. The display receives SDR content. output video in HDR format: The display receives HDR content, but the HDR source is tone mapped/downconverted to the target specs.

tone map HDR using external 3DLUT
The display receives HDR or SDR content with the 3D LUT downconverting the HDR source to some extent. The 3D LUT input is R'G'B' HDR (PQ). The output is either R'G'B' SDR (gamma) or R'G'B' HDR (PQ). The 3D LUT applies some tone and/or gamut mapping.

hdr Settings Overview:

Recommended Use (hdr):

The first decision you need to make when choosing an hdr setting is whether you want to output HDR video as HDR or SDR. If it is a true HDR display such as an LED TV or OLED TV with at least 500 nits or more of peak luminance, you most likely want HDR output. These displays usually follow the PQ EOTF curve 1:1 linearly up to 100 nits because they have more than adequate brightness to do so and tend to only focus on tone mapping the specular highlights above 100 nits. Given 90% or more of the video levels in current HDR videos are mastered within the first 0-100 nits (known as PQ reference white or SDR white), the majority of HDR displays don’t have a lot of tone mapping to do. For these displays, selecting passthrough HDR to display or applying a small amount of tone mapping to the brightest source levels with tone map HDR using pixel shaders and output video in HDR format checked can be all that is required to get a great HDR image.

If the display has limited light output, such as a projector or entry-level HDR LED TV, you will likely get a better image by converting HDR to SDR by selecting tone map using pixel shaders and using the default output configuration. Why? It comes down to having a limited range of brightness to work with and a need to compress more of the HDR source range.

HDR converted to SDR does not involve any loss of the original HDR signal. HDR can be easily mapped to an SDR gamma curve with 1:1 PQ EOTF luminance tracking for any HDR sources that fit within the available peak nits of the display panel. However, for scenes that have nits levels mastered above the display peak nits, some tone mapping of the brightness levels to the display panel is required and the SDR gamma curve can often do a more convincing job of compressing the large dynamic range of PQ HDR videos to dimmer HDR displays than fixed linear PQ EOTF tracking with a roll-off curve.

HDR to SDR tone mapping tends to be most effective when the target display has no option but to tone map the shadows and midtones of HDR10 videos to accommodate the high-nit specular highlights within a much narrower display range. The relative SDR gamma curve can be utilized to rescale HDR signals with designed contrast scaling that remaps the average brightness of all source values to match the full display curve. This wholesale rescaling of the gamma curve is used by madVR to create precise control over the brightness and positioning of the shadows, midtones and highlights to have higher Average Picture Levels (APLs) with a good balance of contrast enhancement and brightness without visibly clipping the specular highlights. This eskews the traditional tone mapping for HDR flat panel TVs that most often leaves the shadows and midtones largely untouched and focuses on tone mapping the specular highlights in isolation. Instead, HDR converted to SDR gamma acknowledges any deficiencies in available nits output by rebalancing the full source signal with the best compromise of brightness preservation, local contrast enhancement and fine detail preservation.

This style of tone mapping that uses the full display curve may not be necessary for true HDR flat panel TVs that have the headroom to represent the specular highlights in HDR videos without tone mapping the lower source levels, but is critically important when significant compression of the mid and lower display range is necessary to fit the brightest HDR sources to the limited display peak nits of dimmer HDR displays such as front projectors and entry-level LED TVs lacking full-array local dimming.

HDR levels of peak luminance cannot always be achieved with an SDR picture mode, but most displays that would benefit from HDR to SDR tone mapping have similar brightness when playing SDR or HDR sources, so there isn’t any downside to using the same display mode for both content types. Converting HDR to SDR gamma also offers a way for SDR display owners to enjoy HDR10 videos on older SDR displays that lack the ability to accurately tone map HDR sources.

HDR 3D LUTs are created for HDR-compatible displays with a colorimeter and free display calibration software such as DisplayCal. 3D LUTs are static curves designed to apply static tone mapping roll-offs for specific source mastering peaks. A 3D LUT is not intended to be used to apply any form of dynamic HDR tone mapping or dynamic LUT correction.

If your display does a poor job with HDR sources or you want to experiment, try each of the HDR output options to find one that provides an HDR image that isn’t too dim or plagued by excessive specular highlight clipping.

Recommended hdr Setting by Display Type:

OLED (HDR) / High Brightness LED (HDR) (600+ nits):

passthrough HDR to display OR tone map using pixel shaders (HDR output).

Mid Brightness LED (HDR) (400-600 nits):

passthrough HDR to display OR tone map using pixel shaders (HDR output).

Low Brightness LED (HDR) (300-400 nits):

tone map using pixel shaders (SDR output) OR passthrough HDR to display.

Projector (HDR) (50-250 nits):

tone map using pixel shaders (SDR output) OR passthrough HDR to display.

Television (SDR) / Projector (SDR):

tone map using pixel shaders (SDR output).

Signs Your Display Has Correctly Switched into HDR Mode:
  • An HDR icon will typically appear in a corner of the screen;
  • Backlight in the Picture menu will increase to its highest level;
  • Display information should show a BT.2020 PQ SMPTE 2084 input signal;
  • The first line of the madVR OSD will indicate NV HDR or AMD HDR.

*A faulty video driver can prevent the display from correctly entering HDR mode. If this is the case, it is recommended to uninstall the video drivers and reinstall a driver known to function correctly with HDR passthrough.

List of Video Drivers that Support HDR Passthrough

tone map HDR using pixel shaders

Pixel shader tone mapping is madVR’s video-shader based tone mapping. This applies both tone mapping and gamut mapping to HDR sources to compress them to match the min target / real display peak nits entered in madVR. The output from pixel shaders is either HDR converted to SDR gamma or HDR PQ sent with altered metadata that reports the source peak brightness and primaries after tone mapping.

Pixels shaders does not rely on static HDR10 metadata. All tone mapping is done dynamically per detected movie scene by using real-time, frame-by-frame measurements of the peak brightness and frame average light level of each frame in the video.

What Is the Difference Between Static & Dynamic Tone Mapping?

Pixel Shaders HDR Output Formats:

Default: SDR Gamma

The default pixel shaders output converts HDR PQ to any SDR power law gamma (2.20, 2.30, 2.40, etc.). madVR redistributes PQ values along the SDR gamma curve with necessary dithering to mimic the response of a PQ EOTF. This is HDR converted at the source side rather than the display side to replace a display's HDR picture mode.

What Is HDR to SDR Tone Mapping?

Best Usage Cases for HDR to SDR:

HDR Projectors, Low Brightness LED HDR TVs, SDR Projectors, SDR TVs.

HDR to SDR is designed for displays that have to consistently make concessions in how HDR videos are presented. ANOTHER SENTENCE. This tone mapping could potentially benefit a bright HDR flat panel TV, but there is an inherent limitation in converting HDR to SDR when both formats must share the same displayed brightness. Typical calibrated SDR brightness levels of 100-120 nits tend to be inadequate compared to the HDR overdrive modes of many HDR TVs, and HDR video presented with an SDR picture mode can often end up appearing comparably dim with less accurate PQ EOTF tracking and noticeably less impactful specular highlights.

It might be desirable to set up a separate SDR picture mode to experiment with HDR to SDR tone mapping on a true HDR TV, but to avoid a washed-out picture from increasing the SDR brightness, it is advised to undergo a fresh gamma and grayscale calibration for that source input. Regardless of whether HDR sources are output as HDR PQ or SDR gamma, the wide color gamut of HDR videos can always be retained by simply selecting DCI-P3 or BT.2020 as the output color space under calibration and matching this color profile at the display panel.

Spears & Munsil UHD HDR Benchmark 10,000 nits MaxCLL (HDR to SDR):
Dynamic Tone Mapping: Disabled
Dynamic Tone Mapping: Enabled

output video in HDR format: PQ EOTF

Checking output video in HDR format outputs HDR videos in the original PQ EOTF. madVR's tone mapping is applied and the HDR metadata is altered to reflect the compressed RGB values after mapping. So the display receives the mapped RGB values along with the correct HDR metadata to trigger its HDR mode. madVR does some pre-tone mapping for the display:

PQ (source) -> PQ EETF (Electrical-Electrical Transfer Function: PQ values rescaled by madVR) -> PQ EOTF (display)

What Is HDR to HDR Tone Mapping?

Best Usage Cases for HDR to HDR:

OLED HDR TVs, Mid-High Brightness LED HDR TVs.

Pixel shaders with HDR output checked can benefit most true HDR displays with accurate PQ EOTF tracking by assisting the display's own internal tone mapping in dealing with the brightest mastered specular highlights. The benefits of this tone mapping somewhat depend on how the display handles the altered HDR10 metadata provided by madVR (lowered content MaxCLL and mastering display maximum luminance) that is often used to select which static tone curve is used by the display.

Some HDR displays will not recognize that the compressed source fits within the display's peak brightness and will apply an additional tone map where a second tone curve is used to further compress the source values to some extent. This double tone map effect could make madVR's dynamic tone mapping less beneficial if the primary display curve used is overly harsh. Pixel shaders also cannot correct displays that do not follow the PQ curve, like those that artificially boost the brightness of HDR content or those with poor EOTF tracking that crush shadow detail. Displays with a dynamic tone mapping setting don’t typically use the static metadata and should ignore the metadata in favor of simply reading the RGB source values sent by madVR.

Determining the usefulness of madVR's dynamic PQ HDR tone mapping often requires some experimentation with the real display peak nits and movie scenes with many bright specular highlights. The brightest HDR movies mastered above 1,000 peak nits tend to be the titles that most often lose some detail in the specular highlights with the default display tone curve. A good way to test the impact of the source rescaling is to create two hdr profiles mapped to keyboard shortcuts in madVR that can be toggled during playback: one set to passthrough HDR to display and the other pixel shaders with HDR output. To trigger the altered HDR metadata sent by madVR after switching to pixel shaders, uncheck and recheck the output video in HDR format checkbox in the control panel during playback.

Spears & Munsil UHD HDR Benchmark 10,000 nits MaxCLL (HDR Passthrough):

LG C8's Static Tone Mapping
LG C8's Static Tone Mapping + madVR's Dynamic Tone Mapping

Note: There are a few bugs with the current output in HDR format option when using the latest madVR official build (v0.92.17). Fixes for these bugs that include incorrect metadata being sent to the display and some clipping of specular highlight detail caused by a malfunctioning settings dialog are included in the latest madVR beta builds that are released regularly at AVS Forums (v91+).

*Incorrect metadata can be sent by some Nvidia drivers when madVR is set to passthrough HDR content. If a display uses this metadata to select a tone curve, incorrect metadata may result in some displays selecting the wrong tone curve for the source. There are many driver versions known to both passthrough HDR content correctly and provide an accurate MaxCLL, MaxFALL and mastering display maximum luminance to the display.

List of Nvidia Video Drivers that Support Correct HDR Metadata Passthrough

tone map HDR using external 3DLUT

The best method to reliably defeat an HDR display's internal tone mapping is to use the option tone map HDR using external 3DLUT and create a 3D LUT with display calibration software, which will trigger the display's HDR mode and apply a tone curve and adjust its color balance by using corrections provided by the 3D LUT table.

HDR 3D LUTs are static tables and may be created in several configurations to replace the selection of static HDR curves used by the display: such as 500 nits, 1,000 nits, 1,500 nits, 4,000 nits and 10,000 nits. HDR 3D LUT curve selection is automated with HDR profile rules referencing hdrVideoPeak.

Example of image tone mapped by madVR
2,890 nits BT.2020 -> 150 nits BT.709 (480 target nits):


Settings: tone map HDR using pixel shaders


First Time Set up of Pixel Shaders Tone Mapping:

Step 1: Disable all HDR-related trade quality for performance checkboxes;

Step 2: Choose the display color gamut under calibration (SDR output only);

Step 3: Choose the display gamma curve under calibration (SDR output only);

Step 4: Enter your display's SDR or HDR real display peak nits (estimated actual display peak nits);

Step 5: Choose the video output format: SDR Gamma (default) or HDR PQ (Check output video in HDR format); 

Step 6: Configure the remaining settings under tone map HDR using pixel shaders;

Optional (extras): User-created HDR tools, available madVR profile rules & madMeasureHDR file measurement tool.
High-Maximum Processing

min target / real display peak nits [200] 
real display peak nits represent the target display peak brightness for tone mapping in PQ nits. Enter the estimated actual peak nits of the display. If you own a colorimeter, the easiest way to measure SDR peak luminance is to open a 100% white pattern with HCFR and read the value for Y. If you are outputting in an HDR format, the standard method of measuring HDR peak luminance uses the value for Y with a 10% white window pattern in the display's HDR picture mode. A TV's peak luminance can be estimated by multiplying the known peak brightness of the display times the chosen backlight setting (e.g., 300 peak nits x 11/20 backlight setting = 165 real display nits). Estimating the peak luminance for a projector is a bit trickier and depends on the throw distance of the projector, the projector bulb age, any installed lens filters as well as the screen gain used.

Recommendation for Estimating Peak Nits for a Projector (via a Light Meter)

Those using a static and not dynamic display target nits with SDR output should set this value as the desired contrast for all videos. SDR brightness works similar to a dynamic range slider: Increasing the display target nits above the actual peak nits of the display increases HDR contrast (makes the image darker) and lowering it decreases HDR contrast (makes the image brighter).


HDR output uses fixed luminance (the target brightness is not rescaled by the display) and decreasing the real display peak nits below the actual display peak nits should make the image increasingly darker as the source peak is compressed to a brightness that is below the display peak.

With output video in HDR format checked, only movie scenes with source levels that rise above the real display peak nits will be tone mapped back into display range. If set to 700 nits, for example, the majority of current HDR content would be output 1:1 and only the brightest scenes would need tone mapping (you can reference the peak brightness of any scene in the madVR OSD). The majority of HDR displays attempt to retain visible specular highlight detail up to 1,000 nits, but can often benefit from some assistance in preserving brighter highlights in titles with higher MaxCLLs of 4,000 nits - 10,000 nits.


color tweaks for fire & explosions [balanced] 
The color tweaks settings shifts the hue of any red and orange pixels compressed by tone mapping towards yellow. This has the impact of improving the appearance of fire and explosions that are negatively impacted by aggressive tone mapping. Fire contains a mixture of red, orange and yellow hues. After tone mapping and gamut mapping applied, yellow tends to shift towards white as it loses luminance and is desaturated by tone mapping, which can leave fire and explosions appearing too red.

madVR corrects the dull appearance of tone compressed fire and flames by shifting bright red/orange pixels towards yellow to add additional yellow hues to the flames to give fire and explosions a more natural and impactful appearance. All mastered bright red/orange pixels in the video are impacted by this hue shift, so it is possible the shift towards yellow is not desirable in every scene, but the color shift is slight and can't always be noticed.

high strength
Bright red/orange out-of-gamut pixels are shifted towards yellow by 55.55% when gamut mapping is applied to compensate for the loss of yellow hues in fire and flames caused by tone mapping. This is meant to improve the impact of fire and explosions directly, but will have an effect on all bright red/orange pixels.

balanced [Default]
Bright red/orange out-of-gamut pixels are shifted towards yellow by 33.33% (and only the brightest pixels) when gamut mapping is applied to compensate for the loss of yellow hues in fire and flames caused by tone mapping. This is meant to improve the impact of fire and explosions directly, but will have an effect on all bright red/orange pixels.

All out-of-gamut pixels retain the same hue as the tone mapped result when gamut mapping is applied.

Mad Max Fury Road:
color tweaks for fire & explosions: disabled
color tweaks for fire & explosions: balanced
color tweaks for fire & explosions: high

Mad Max Fury Road (unwanted hue shift):
color tweaks for fire & explosions: disabled
color tweaks for fire & explosions: balanced
color tweaks for fire & explosions: high

Recommended Use (color tweaks for fire & explosions):

Most would be better off by disabling color tweaks for fire & explosions. The reason being that bright reds and oranges in movies are more commonly seen in scenes that don’t include any fire or explosions. So, on average, you will have more accurate hues by not shifting bright reds and oranges towards yellow to improve a few specific scenes at the expense of all other scenes in the movie. These color tweaks are best reserved for those who place a high premium on having “pretty fire.”

High - Maximum Processing

highlight recovery strength [none] 
Bright specular highlights compressed by tone mapping can create flat spots and some overlap in the image.

When adjacent pixels with large luminance step differences become the same luminance or the difference between those steps is drastically reduced by tone mapping (e.g., a difference of 5 luminance steps becomes a difference of 2 luminance steps), a loss of texture detail is created. madVR restores some fine texture detail smeared by tone compression by adding back detail lost from the source luminance (Y) channel. The effect of this enhancement is similar to applying sharpening shaders to certain image frequencies with the benefit of adding depth and texture to any compressed image areas and the potential downside of creating an unwanted edge-enhanced appearance as the strength value is increased.

Available detail recovery strengths range from low to are you nuts!?. Higher recovery strengths could be more desirable at lower real display peak nits where compressed portions of the image can appear increasingly flat. Expect a significant GPU performance hit; only the fastest GPUs should be enabling highlight recovery strength with 60 fps 4K UHD HDR sources.

none [Default]
highlight recovery strength is disabled.

low - are you nuts!?
Recovered frequency width varies from 3.25 to 22.0. GPU resource use remains unchanged across all strengths.

Batman v Superman:
highlight recovery strength: none
highlight recovery strength: medium

Recommended Use (highlight recovery strength):

The lone reason not to enable highlight recover strength would be for performance reasons. It is very resource-intensive. Otherwise, this setting adds a lot of detail and sharpness to compressed highlights, particularly on displays with a low peak brightness. I would recommend starting with a base value of medium, which does not oversharpen the highlights and leaves room for those who want even higher strengths with even more detail recovery. highlight recovery strength will perform considerably faster when paired with D3D11 Native hardware decoding in LAV Video compared to DXVA2 (copy-back). This is due to D3D11 Native having much better optimization for DX11 DirectCompute that is used by this shader.

dynamic clipping [Unchecked] 
Checking this will improve the brightness of some scenes by clipping a small amount of specular highlight detail by increasing the compression of the specular highlights. This is achieved by artificially lowering the frame peak target for tone mapping that results in a straighter tone curve being used with a sharper roll-off at the peak of the curve. This straighter curve is only applied to scenes that have groups of very bright pixels concentrated in a small image area that is noticeably brighter than the surrounding pixels. The loss of detail created by the specular highlight clipping is minor and the contrast between the brightest and dimmest source values is reduced, but the compressed portions of the image will show noticeable improvements in brightness and color saturation.

What Is Dynamic Clipping?

X-Men Apocalypse:
dynamic clipping: disabled
dynamic clipping: enabled
tone mapping disabled: clipping

Recommended Use (dynamic clipping):

Check this if you feel the image could use a boost in brightness. A purist may not want to lose any specular highlight detail that could be preserved by tone mapping and this clipping does lower the HDR contrast of these scenes. However, many scenes will appear visibly brighter and more dynamic from the increase in color volume added to the compressed portions of the image. If you only have 50-75 actual display nits to work with, then any reduction in the compression of the APL can be worth a small of loss of detail. To determine if the small to moderate boost in APL is worth the minor loss of specular highlight detail and contrast, try watching some bright movie scenes with dynamic clipping both checked and unchecked.

Low Processing

dynamic target nits [Checked]
The dynamic target nits changes the brightness and contrast of the image for each movie scene as the video plays by remapping source values to the gamma curve. This changes the display target nits that defines how much dynamic range is compressed by the tone curve in each scene. The amount of contrast added depends on the real display peak nits entered in madVR and the frame average light level (frame FALL) of the scene. As the frame FALL increases, the display target nits increases to add HDR contrast on top of the real display peak nits to avoid clipping the specular highlights while limiting increases in contrast to the available brightness of the target display. Curve adjustments also include local contrast enhancement of the shadows, midtones or highlights based on the distribution of pixels read by the live brightness histogram used to detect scene changes.

What Is a Dynamic Target Nits?

Mission Impossible Ghost Protocol:
dynamic target nits: disabled
dynamic target nits: enabled

dynamic tuning [50] 
The tuning value controls the preference for brightness or HDR contrast. Increasing the tuning value increases the rate at which the display target nits increases with increases to the frame FALL value. The use of higher display target nits values will increase contrast and reduce clipping of the specular highlights, but will make the image darker. Decreasing the tuning value shifts the preference towards lower display target nits that preserve more of the source's brightness but reduce contrast and clip greater amounts of specular highlight detail.

The dynamic tuning scale goes from 0 - 100, where 0 uses the lowest display target nits possible for all scenes (presents the brightest displayed image) and 100 uses the highest display target nits possible for all scenes (presents the highest contrast and darkest displayed image).

Recommended Use (dynamic target nits / dynamic tuning):

When the dynamic target nits checkbox is unchecked, madVR reverts to static tone mapping with a static display target nits. So there is no real incentive to disable the dynamic tone mapping adjustments. These dynamic curve adjustments will produce the highest contrast at all times while optimizing the trade-off between brightness vs. contrast for each movie scene. In many cases, this can be the only way to produce consistent tone mapping for a display with low peak brightness such as a projector. This dynamic tone mapping has been the focus of madVR's HDR to SDR tone mapping from the beginning and represents the best way to enjoy HDR videos on any display.

The default dynamic tuning value of 50 tends to be balanced and suitable for most users regardless of the peak brightness of the display. If you want a brighter image, reduce the tuning value. If you want more HDR contrast, increase the tuning value to increase the contrast between the highlights and midtones.

HDR -> SDR: The following should also be selected in devices -> calibration -> this display is already calibrated:
  • primaries / gamut (BT.709, DCI-P3 or BT.2020)
  • transfer function / gamma (pure power curve 2.xx)

If no calibration profile is selected (by ticking disable calibration controls for this display), madVR maps all HDR content to BT.709 and pure power curve 2.20.

tone map HDR using pixel shaders set to SDR output will use any matching 3D LUTs attached in calibration. HDR is converted to SDR and the 3D LUT is left to process the SDR output as it would any other video.

Other video filters required for HDR playback:
  • LAV Filters 0.68+: To passthrough the HDR10 metadata to madVR.

ShowHdrMode: To add additional HDR info to the madVR OSD including the active HDR mode selected and detailed HDR10 metadata read from the source video, create a blank folder named "ShowHdrMode" and place it in the madVR installation folder.

HDR10 Metadata Explained

HDR Demos from YouTube with MPC-BE

Image Comparison: SDR Blu-ray vs. HDR Blu-ray at 100 nits on a JVC DLA-X30 by Vladimir Yashayev

Official HDR Tone Mapping Development Thread at AVS Forum

Screen Config


The screen config section options can be used to apply screen masking to the player window or an anamorphic stretch to crop portions of the screen area to dimensions that match CinemaScope (scope) projector screens. This screen configuration is used alongside zoom control (under processing) to enforce a reduced target window size for rendering all video. The device type must be set to Digital Projector for this option to appear.

Those who output to a standard 16:9 display without screen masking shouldn't need to adjust these settings. screen config is designed more for users of Constant Image Height (CIH), Constant Image Width (CIW) or Constant Image Area (CIA) projection that use screen masking to hide or crop portions of the image.

A media player will always send a 16:9 image that will fill a 16:9 screen if the source video happens to be 16:9. However, many video formats are mastered in wider aspect ratios known as CinemaScope with common ratios of 2.35:1, 2.39:1 and 2.40:1 that are too wide for the default 16:9 window size. Normally, black bars are added to the top and bottom of CinemaScope videos to rescale them to a fit the 16:9 window. To get rid these black bars, some projector owners use a zoom lens to make CinemaScope videos larger and wider and project them onto wider 2.35:1 - 2.40:1 ratio CinemaScope screens.

If a 16:9 image is projected onto a CinemaScope projector screen with a zoom setting designed for CinemaScope, the image overshoots the top and bottom of the screen like this:


This screen overshoot is managed by using a projector lens memory that disables the zoom lens when 16:9 videos are played. Then 16:9 videos are zoomed to a smaller size to fit the height of the screen with some vacant space left on both sides. Zoom settings for 21:9 and 16:9 content are stored as separate lens memories in the projector. However, in some cases, it is possible for video content to overshoot the 21:9 projector zoom setting if the source switches at any point from a 21:9 to 16:9 aspect ratio during playback, such as the 1.78:1 IMAX sequences in The Dark Knight Trilogy. Two-way screen masking is often used to frame the top and bottom of the screen to ensure no visible content spills outside the screen area during these sequences.

madVR's solution for framing CinemaScope screens is to define a screen rectangle for the media player that maintains the correct aspect ratio at all times. If any content is to spill outside the defined screen space, it is automatically cropped or resized to fit the player window. This ensures the full screen area is used regardless of the source aspect ratio without having to worry about any video content either being projected outside the screen area or any black bars being left along the inside edges.

screen config and its companion zoom control (which is discussed later) are compatible with all forms of Constant Image Height (CIH)Constant Image Width (CIW) and Constant Image Area (CIA) projection.

What Is Constant Image Height (CIH), Constant Image Width (CIW) and Constant Image Area (CIA) Projection?

define visible screen area by cropping masked borders
The defined screen area is intended to simulate screen masking used to frame widescreen projector screens by placing black pixels on the borders of the media player window and rescaling the image to a lower resolution.

madVR will maintain this screen framing when cropping black bars and resizing the image using zoom control. Only active when fullscreen.

Screen masking is used to create a solid, black rectangle around edges of the screen space that frames the screen for greater immersion and keeps all video contained within the screen area.

This masking is applied to create aspect ratios that match most standard video content:


Current consumer video sources are distributed exclusively in a 16:9 aspect ratio intended for 16:9 screens. The width of consumer video is always the same (1920 or 3840) and only the height is rescaled to accommodate aspect ratios wider than 16:9. The fixed width of consumer video means screen masking should only be needed at the top and bottom of the player window to remove the horizontal black bars. When the top and bottom cropping match the target screen aspect ratio, the cropped screen area should provide the precise pixel height to fill the projector panel so that zoomed CinemaScope videos fit both the exact height AND width of the scope screen.

The pixel dimensions of any CinemaScope screen are determined by the amount of cropping created by the projector zoom. When zoomed, the visible portions of standard 16:9 sources fill the full screen space with the source's black bars overshooting the top and bottom of the screen. This creates a cropped 21:9 image. 

Original Source Size: The pixel dimensions of the source rectangle output from madVR to the display. Sources are always output as 1920 x 1080p or 3840 x 2160p, often with black bars included in the video.

Projected Image Size: The pixel dimensions of the image when projected onto the projector screen. The size of the projected image is controlled by the lens controls of the projector, which sets the zoom, focus and, in some cases, lens shift of the projected image. An anamorphic lens and anamorphic stretch are sometimes used in place of a projector zoom lens to rescale the image to a larger size.

Native projector resolutions are: 
  • 1920 x 1080p (HD);
  • 3840 x 2160p (4K UHD);
  • 4096 x 2160p (DCI 4K).

Projector screens are available in several aspect ratios, including:
  • 2.35:1;
  • 2.37:1;
  • 2.39:1;
  • 2.40:1; and,
  • Other non-standard aspect ratios.

When projecting images onto these screens, the projected resolution matches the size of the cropped screen area: 2.35:1 = 1920 x 817 to 4096 x 1743 and 2.40:1 = 1920 x 800 to 4096 x 1707

Cropped Size of Standard Movie Content:
  • 1.33:1: 1920 x 1440 -> 3840 x 2880
  • 1.78:1: 1920 x 1080 -> 3840 x 2160
  • 1.85:1: 1920 x 1038 -> 3840 x 2076
  • 2.35:1: 1920 x  817 -> 3840 x 1634
  • 2.39:1: 1920 x 803 -> 3840 x 1607
  • 2.40:1: 1920 x 800 -> 3840 x 1600

Aspect Ratio Cheat Sheet

As the media player will always output a 1.78:1 image by default (1920 x 1080p or 3840 x 2160p), new screen dimensions are only necessary for the other aspect ratios: 1.85:1, 1.33:1, 2.35:1, 2.39:1 and 2.40:1

CIH, CIW or CIA projection typically separates all aspect ratios into two screen configurations with two saved lens memories:

One Standard 16:9 (1.78:1, 1.85:1, 1.33:1) screen configuration that uses the default 16:9 window size and,

A CinemaScope 21:9 (2.35:1, 2.39:1, 2.40:1) screen configuration that matches the zoomed or masked screen area suitable for wider CinemaScope videos.

Any rescaling or cropping that happens within these player windows is controlled by the settings in zoom control.

Screen Profile #1 - CinemaScope (2.35:1 - 2.40:1) (21:9)
Screen Sizes: 1.78:1, 2.05:1, 2.35:1, 2.37:1, 2.39:1, 2.40:1

The height of the screen area is cropped based on a combination of the GPU output resolution and the aspect ratio of the projector screen.

Fixed CIH projection without a zoom lens would use the same 2.35:1, 2.37:1, 2.39:1 or 2.40:1 screen dimensions for 21:9 and 16:9 sources. When a 16:9 source is played, image downscaling is activated to shrink 16:9 videos to match the height of 21:9 videos.

Zoom-based CIH, CIW and CIA projection needs a second screen configuration that switches to the default 16:9 rectangle for 16:9 content (disables the zoomed or masked screen dimensions). It is also possible to have madVR activate a lens memory on the projector to match the 16:9 or 21:9 screen profile.

To frame a CinemaScope screen, crop the top and bottom of the player window until the window size matches the exact height of the projector screen up to its borders. For example, a 2.35:1 screen would need a crop of approximately 131 - 417 pixels from the top and bottom of the player window.

2.35:1 Screens (CinemaScope Masked):
1920 x 1080 (GPU) -> 1920 x 817 (cropped)
3840 x 2160 (GPU) -> 3840 x 1634 (cropped)
4096 x 2160 (GPU) ->  4096 x 1743 (cropped)

2.37:1 Screens (CinemaScope Masked):
1920 x 1080 (GPU) -> 1920 x 810 (cropped)
3840 x 2160 (GPU) -> 3840 x 1620 (cropped)
4096 x 2160 (GPU) ->  4096 x 1728 (cropped)

2.39:1 Screens (CinemaScope Masked):
1920 x 1080 (GPU) -> 1920 x 803 (cropped)
3840 x 2160 (GPU) -> 3840 x 1607 (cropped)
4096 x 2160 (GPU) ->  4096 x 1714 (cropped)

2.40:1 Screens (CinemaScope Masked):
1920 x 1080 (GPU) -> 1920 x 800 (cropped)
3840 x 2160 (GPU) -> 3840 x 1600 (cropped)
4096 x 2160 (GPU) ->  4096 x 1707 (cropped)

2.05:1+ (CIA) Screens (CinemaScope Masked):
The amount of height cropped depends on the width of the CIA projector screen.

Screen Profile #2 - Default (1.85:1, 1.78:1, 1.33:1) (16:9)
Screen Sizes: 1.78:1, 2.05:1, 2.35:1, 2.37:1, 2.39:1, 2.40:1

The target rectangle for 16:9 content requires no adjustment. The default media player window is already suitable for these narrower aspect ratios.

1.78:1, 2.05:1, 2.35:1, 2.37:1, 2.39:1 & 2.40:1 Screens (16:9 Default):
1920 x 1080 (GPU) -> 1920 x 1080 (no crop)
3840 x 2160 (GPU) -> 3840 x 2160 (no crop)
4096 x 2160 (GPU) ->  4096 x 2160 (no crop)

move OSD into active video area
Check this to move the madVR OSD into the defined screen area. madVR can also move some video player OSDs depending on the API it uses.

activate lens memory number
Sends a command to a network-connected JVC or Sony projector to activate an on-projector lens memory number with the necessary zoom, focus and lens shift to match the screen defined in screen config. Multiple lens memories are managed through the creation of profile rules based on custom filename tags or the source aspect ratio.

What Is a Projector Lens Memory?

ip control
In order to activate lens memories, madVR must establish a network connection with the projector. The projector can be connected to madVR from devices -> properties -> ip control. The device type must set to Digital Projector for this option to appear.

Enable IP control at the projector and then click find projector to start a search for the projector and connect it to madVR. Options are also provided to automatically pause and resume playback as lens memories are adjusted.

anamorphic lens
All videos are output with non-square pixels suitable for a fixed or moveable anamorphic lens. Check this if you use an anamorphic lens in order to apply a vertical or horizontal stretch to the image.

A vertical stretch stretches the image vertically to fill the top and bottom of the screen area. When a standard horizontal anamorphic lens is added, the image is pulled horizontally to fill the full width of a CinemaScope (2.35:1 - 2.40:1) screen. A standard projector lens, by comparison, leaves a post-cropped image needing a resize in both height AND width to achieve the same effect. The advantage of anamorphic projection is a brighter image with less visible pixel structure. The smaller pixel structure is a result of the pixels being flattened before they are enlarged.

If you are using a movable anamorphic lens, a second screen profile must be created under screen config that disables the anamorphic stretch for 16:9 content. A fixed anamorphic lens will work with the anamorphic stretch enabled at all times, as long as separate 21:9 and 16:9 zoom profiles are created in zoom control.

When using an anamorphic lens, it is not necessary to define the visible screen area. A projector zoom isn't needed with an anamorphic lens and the top and bottom cropping wouldn't properly align the heights of 21:9 and 16:9 aspect ratios when the anamorphic stretch is added.

stretch factor
This is the ratio of the vertical or horizontal stretch applied by madVR. The stretch defaults to the most common 4:3 vertical stretch, with possible manual entry for other stretch ratios. Vertical stretching should only be enabled for madVR or the projector, not both. madVR takes the vertical stretch into account when image scaling, so no extra image scaling operation is performed. The vertical scaling performed by madVR should be of higher quality than most projectors or external video processors.


Recommended Use (screen config):

screen config is recommended for all users of Constant Image Height (CIH), Constant Image Width (CIW) or Constant Image Area (CIA) projection to keep all video content within the visible screen area.

CIW zoomed, CIW or CIA setups need two screen configurations: one for 16:9 content (uncropped) and one with the top and bottom of the image cropped to create a rectangle suitable for 21:9 CinemaScope content. zoom control (under processing) will apply any necessary cropping or rescaling of the video for the defined player window size.

Creation of two screen configurations is possible with profile rules such as this:

if (fileName = "*customname*") or (ar > 1.9) "21:9"
else "16:9"

Fixed CIH without lens memories only needs one screen configuration with masking placed on the top and bottom to match a CinemaScope screen and two profiles in zoom control for 21:9 and 16:9 content. If you are using a custom resolution to resize the Windows desktop to match a scope aspect ratio, madVR can output to this custom resolution, as long as display modes is configured for this custom resolution and zoom control is set to rescale 16:9 videos to fit the 21:9 desktop aspect ratio.

If the desired output resolution is 4096 x 2160p, or any other non-standard output resolution, you must manually enter this resolution into display modes to have madVR output to that resolution. For example: 4096x2160p23, 4096x2160p24, 4096x2160p25, 4096x2160p29, 4096x2160p30, 4096x2160p50, 4096x2160p59, 4096x2160p60, etc.

Messages In This Thread
Lockup on STOP issue resolved! - by MKANET - 2015-04-11, 21:59
RE: Kodi DSPlayer – DirectShow Player for Windows - by Warner306 - 2015-04-12, 08:55
RE: 4G aware patch - by MagikMark - 2015-09-08, 03:27
Alt-F4 no longer quits - by JeffA - 2015-10-31, 20:38