madshi bug tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000309madVRbugpublic2015-06-10 21:372015-06-11 10:34
Reporterrel 
Assigned Tomadshi 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionno change required 
PlatformMadVR v0.88.11OSWindowsOS Version8.1 64 bit
Summary0000309: Target rectangle problem (windowed mode / while resizing app window)
DescriptionHi Madshi, firstly , I would like to say, very good job with MadVR there.

I have recently added MadVR as a renderer option to DVB TV application which I wrote.(DVB Dream) I am having a video placement problem (target rectangle related) with the new versions of MadVR , while it seems to work well with an older version of MadVR.


I will try to explain the problem in detail:

My application queries renderer & uses IVideoWindow interface, and its SetWindowPosition() method to resize and position the video window.
While this was working good on v0.87.14, somehow it doesnt work on v0.88.11. I guess MadVR doesn't use the values given by this interface anymore. Or some other info probably taken by input stream, tries to override this. What I have noticed is that it seem to use the input stream parameters (to be precise , DirectShow media type MPEG2VIDEOINFO structure's hdr.bmiHeader.biWidth member , when media type format is FORMAT_MPEG2_VIDEO)

With all other renderers (VMR7, VMR9 and EVR), the only time I set this structure is application startup. Afterwards, resizing the application window doesn't require updating these input stream paramaters. Instead I just simply call IVideoWindow interface's SetWindowPosition() function.


If this is not a bug and a feature on MadVR, could you make an option to use SetWindowPosition() for positioning/resizing video output window ?

Thanks

Here you can find a screen capture with the problem (the latest MadVR uses only the video size information sent on media type format, passed by decoder filter)
https://www.dropbox.com/s/uap9w1zi44m7elv/Screenshot%202015-06-10%2021.10.29.png?dl=0 [^]
Steps To ReproduceProbably pretty clear, but if you would like to test / reproduce and if you dont have a DVB tuner, it is possible to use a TS input file and DVB Dream file-device.(emulation device). It would need a channel scan).
Additional InformationAs seen in the Screenshot , video is not placed correctly (video doesnt fill the black area), although SetWindowPosition() DirectShow function is called , MadVR tries to override the target rect values by those given by upstream DS filters.
TagsNo tags attached.
madVR Version0.88.11
Media Player (with version info)DVB Dream v2.7
Splitter (with version info)Application's own TS demuxer
Decoder (with version info)Any MPEG2/H264 codec, during tests, just used LAV video filter
DecodingDXVA2 Native
Deinterlacingauto mode
DXVA2 Scaling Activeno
Aero / Desktop CompositionOff
Problem occurs with modewindowed mode
GPU ManufacturerAMD
GPU ModelRadeon HD 7700
GPU Driver Version13.251.0.0
Attached Filespng file icon Screenshot 2015-06-10 21.10.29.png [^] (666,930 bytes) 2015-06-10 21:37

- Relationships

-  Notes
(0001079)
madshi (administrator)
2015-06-10 23:12

Hi there,

and good to hear that you've added support for madVR to your DVB application! :-)

I have recently done some changes, after receiving feedback from the DVBViewer developers. I did change the behaviour with the targetRect. But actually I thought my changes would make things better, not worse. So I'm a bit confused that you had no problems with older builds, but now problems show up with the latest builds.

The best approach would be if you could listen to EC_VIDEO_SIZE_CHANGED events and reprogram the targetRect at that time.

The basic approach is set use IVideoWindow::SetWindowPosition() to set madVR to cover your whole rendering area, and then to use IBasicVideo::SetDestinationPosition() to define the targetRect. Doing it this way makes sure that madVR can also enter the automatic fullscreen exclusive mode. If you don't set madVR to cover your whole rendering area, automatic fullscreen exclusive mode won't work. If you're in doubt, simply reconfigure both WindowPosition and DestinationPosition/TargetRect every time you get an EC_VIDEO_SIZE_CHANGED message. That should solve all problems.
(0001080)
rel (reporter)
2015-06-11 01:03

Thanks, I have just fixed the problem :-),as you suggested, by letting IVideoWindow::SetWindowPosition() cover whole rendering area when madVR is selected as renderer.
(0001081)
madshi (administrator)
2015-06-11 08:37

Great! So I can close this bug report?
(0001082)
rel (reporter)
2015-06-11 10:26

Yep, close please. Not a bug.
(0001083)
madshi (administrator)
2015-06-11 10:28

Ok, will do. Will also add your player to http://madVR.net [^]

- Issue History
Date Modified Username Field Change
2015-06-10 21:37 rel New Issue
2015-06-10 21:37 rel File Added: Screenshot 2015-06-10 21.10.29.png
2015-06-10 23:12 madshi Note Added: 0001079
2015-06-10 23:12 madshi Assigned To => madshi
2015-06-10 23:12 madshi Status new => feedback
2015-06-11 01:03 rel Note Added: 0001080
2015-06-11 01:03 rel Status feedback => assigned
2015-06-11 08:37 madshi Note Added: 0001081
2015-06-11 10:26 rel Note Added: 0001082
2015-06-11 10:28 madshi Note Added: 0001083
2015-06-11 10:34 madshi Status assigned => closed
2015-06-11 10:34 madshi Resolution open => no change required


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker