View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000309 | madVR | bug | public | 2015-06-10 21:37 | 2015-06-11 10:34 |
Reporter | rel | Assigned To | madshi | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | no change required | ||
Platform | MadVR v0.88.11 | OS | Windows | OS Version | 8.1 64 bit |
Summary | 0000309: Target rectangle problem (windowed mode / while resizing app window) | ||||
Description | Hi 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 Reproduce | Probably 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 Information | As 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. | ||||
Tags | No tags attached. | ||||
madVR Version | 0.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 | ||||
Decoding | DXVA2 Native | ||||
Deinterlacing | auto mode | ||||
DXVA2 Scaling Active | no | ||||
Aero / Desktop Composition | Off | ||||
Problem occurs with mode | windowed mode | ||||
GPU Manufacturer | AMD | ||||
GPU Model | Radeon HD 7700 | ||||
GPU Driver Version | 13.251.0.0 | ||||
|
|
|
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. |
|
Thanks, I have just fixed the problem :-),as you suggested, by letting IVideoWindow::SetWindowPosition() cover whole rendering area when madVR is selected as renderer. |
|
Great! So I can close this bug report? |
|
Yep, close please. Not a bug. |
|
Ok, will do. Will also add your player to http://madVR.net |
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 |