madshi bug tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000360madVRbugpublic2015-11-12 09:502015-12-21 14:52
Assigned Tomadshi 
StatusclosedResolutionno change required 
PlatformOSOS Version
Summary0000360: Actual FPS Value Incorrect
DescriptionI logged this one into the Zoom Player tracker originally, but bLight says it is a madVR issue, so here we go.

When a specific option in madVR is enabled, the 'Actual FPS' value from the Playing Information dialog in Zoom Player is often wrong (just over double the correct value).

The option is 'Present Several Frames in Advance' in Rendering->Windowed Mode Settings. Note there is a similar setting in Rendering->Exclusive Mode Settings. With the option enabled, Actual FPS will often be wrong. With it disabled - on the same video - Actual FPS will be correct.

bLight said that Zoom Player just reports the information madVR passes it through the frame rate API.
TagsNo tags attached.
madVR Version0.89.16
Media Player (with version info)Zoom Player v11.1 Beta 2
Splitter (with version info)LAV 0.66.33 Nightly
Decoder (with version info)LAV 0.66.33 Nightly
Deinterlacingauto mode
DXVA2 Scaling Activeno
Aero / Desktop CompositionOn
Problem occurs with modeall modes
GPU ManufacturerNVidia
GPU ModelGTX-660Ti
GPU Driver Version358.91
Attached Files

- Relationships

-  Notes
madshi (administrator)
2015-11-12 10:00

I don't think this can be considered a bug. The Microsoft interface ZP uses to ask this information from madVR is "IQualProp::get_AvgFrameRate", and the description says:

> The get_AvgFrameRate method retrieves the actual
> average frame rate since streaming started.

And the documentation of VIDEOINFOHEADER says:

> if the intended rate is 60,000/1001 (NTSC TV)
> and the monitor's refresh rate is 60Hz, the
> intended rate and the actual rate will never
> match. To retrieve the actual frame rate achieved
> during playback, use the IQualProp::get_AvgFrameRate
> method on the video renderer.

So madVR reports the number of frames sent to Direct3D to ZP. When using "present several frames in advance", madVR sends one frame per VSync to Direct3D.

The Microsoft API explicitly does *NOT* reference the "authored" or "intended" frame rate, but the actually achieved playback frame rate.
romulous (reporter)
2015-11-12 11:11

Alright, makes sense (to both me and bLight). Thanks.
madshi (administrator)
2015-11-12 11:17
edited on: 2015-11-12 11:17

If bLight wants to know the source movie framerate, he can ask the decoder's output pin for "AvgTimePerFrame". Or if bLight wants to know the frame rate after deinterlacing, he can use "IMadVRInfo::GetUlonglong("frameRate")":

frameRate, ulonglong, frame rate of the video after deinterlacing (REFERENCE_TIME)

There's more information available through IMadVRInfo, see "developers\mvrInterfaces.h".

- Issue History
Date Modified Username Field Change
2015-11-12 09:50 romulous New Issue
2015-11-12 10:00 madshi Note Added: 0001231
2015-11-12 11:11 romulous Note Added: 0001232
2015-11-12 11:17 madshi Note Added: 0001233
2015-11-12 11:17 madshi Note Edited: 0001233 View Revisions
2015-12-21 14:52 madshi Status new => closed
2015-12-21 14:52 madshi Assigned To => madshi
2015-12-21 14:52 madshi Resolution open => no change required

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker