Dshowhelper don't use the good screen to compute freqs (1 Viewer)

vuego

Documentation Group
  • Team MediaPortal
  • August 5, 2006
    1,639
    764
    Göteborg
    Home Country
    Sweden Sweden
    Since the original thread is now locked I'd like to restart it here.

    Here's the issue if you didn't read the original thread:
    - I'm using the primary monitor at 60 Hz since it doesn't allow any other refresh rate in its native resolution.
    - The projector is connected as secondary monitor and set to 50 Hz to play 25 fps PAL TV smooth.

    Using MP 1.1.0 on secondary monitor, shift+1 says 60 Hz and there's lots of stuttering.
    After applying Scythe42's patch, shift+1 says 50 Hz but the video is playing at 40-50 Hz with lots of stuttering.
    If I change the primary monitor to 50 Hz the video is perfectly smooth (but main monitor looks horrible since it's now using a non-native resolution).
    For convenience I've now set both monitors to 60 Hz. TV isn't smooth but at least it's not stuttering as much as in the case of mixed refresh rates.

    I'd be happy to help testing any future patches :D
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    Hi
    There's already a Mantis for it: 0002951: dshowhelper.dll uses first monitor to calculate freqs instead of the active one - MediaPortal Bugtracker

    I expanded the dshelper to get the current monitor from the C# side, but there are more bugs going deeper on the the C# part. When I have time I'll revisit them and try to provide a complete fix.

    Hi,

    I'm trying to look in this part and did you keep some code from it ? (to see how you do and to try to understand and test here locally) :)
    Talking with Tony and from my own debugging, the current screen is detected corretly now (1.4.0 based on your rework) and D3DDevice is send to dshowhelper but for some reason, the code seems to use drr from screen1 and not screen2 even if w7refresh C++ detect correct drr from screen2 etc.

    I notice on C# that refreshrate command is not correct (but i 'didn't use it for now will see @ later stage)

    So what i mean, is for testing/debugging, i force screen2 on C# and evrinit get correct d3d device from it but still not work.
    I would like to try to understand :)

    Thanks :)
     

    Users who are viewing this thread

    Top Bottom