Secondary display: MP vs. MediaPlayerClassic (1 Viewer)

Y

yaworski

Guest
Hi.

I know that MP doesn't work properly on secondary display and that this is connected to the MS limitations. But there is small application that somehow manages to do that. It is Media Player Classic (you can get one HERE). I'm using that app to watch movies on my tv which is set as secondary display. It's using VMR9 Renderless to display video.

When I watch movie on my primary display then cpu usage is 10-25% on AthlonXP1700+. When I then move window to the secondary display it uses 100% of CPU. And this is something what is going on with in the same situation. But when I move player's window on secondary display and THEN load a video file and play it then I get 10-25% cpu usage even in fullscreen (same as on primary display).

What dou you think about it? Someone from the MP team please comment this.

----edit----

And I have some idea. Option-checkbox, something like 'Always show on secondary display when active'. Just looking at MediaPlayerClassic I'm thinking that renderer shound be loaded after showing window on the secondary display (like in MPC you should load video file after moving it's window to sec. display). I think author of MPC should know better how make this to work than I :). Maybe someone from the team should contact with him?
 

CHli

Portal Pro
July 5, 2005
1,251
14
Switzerland
Home Country
Switzerland Switzerland
When you create the Direct3D device on which you will display the accelerated contents (Hardware) you have to specify on which monitor it will be accelerated. It cann't be acceleratad on both screen at the same time but there is no limitation of defining the 2nd monitor to be the one on which it is accelerated.
 
Y

yaworski

Guest
CHli said:
When you create the Direct3D device on which you will display the accelerated contents (Hardware) you have to specify on which monitor it will be accelerated. It cann't be acceleratad on both screen at the same time but there is no limitation of defining the 2nd monitor to be the one on which it is accelerated.

So why MP isn't doing this? Is CVS version able to do this? I don't want to download DX9SDK only to check this. Can you tell me if this is already done? If yes I'll download SDK and compile CVS version.
 

CHli

Portal Pro
July 5, 2005
1,251
14
Switzerland
Home Country
Switzerland Switzerland
I don't think this has been done !

Perhaps for another reason which I'm not aware of.

Perhaps a developper could tell us more even if this subject has already been treated hundred of time here I think :D
 

mzemina

Retired Team Member
  • Premium Supporter
  • February 23, 2005
    2,065
    14
    Tulsa, OK
    Home Country
    United States of America United States of America
    yaworski said:
    CHli said:
    When you create the Direct3D device on which you will display the accelerated contents (Hardware) you have to specify on which monitor it will be accelerated. It cann't be acceleratad on both screen at the same time but there is no limitation of defining the 2nd monitor to be the one on which it is accelerated.

    So why MP isn't doing this? Is CVS version able to do this? I don't want to download DX9SDK only to check this. Can you tell me if this is already done? If yes I'll download SDK and compile CVS version.

    yaworski - Why not get on IRC chat (Use "Chat with us LIVE!" link at the top of this webpage) and ask the developers themselvs?

    I think they would like additional developers helping out.

    Mike
     
    Y

    yaworski

    Guest
    mzemina said:
    yaworski said:
    CHli said:
    When you create the Direct3D device on which you will display the accelerated contents (Hardware) you have to specify on which monitor it will be accelerated. It cann't be acceleratad on both screen at the same time but there is no limitation of defining the 2nd monitor to be the one on which it is accelerated.

    So why MP isn't doing this? Is CVS version able to do this? I don't want to download DX9SDK only to check this. Can you tell me if this is already done? If yes I'll download SDK and compile CVS version.

    yaworski - Why not get on IRC chat (Use "Chat with us LIVE!" link at the top of this webpage) and ask the developers themselvs?

    I think they would like additional developers helping out.

    Mike
    mzemina I have already been on MP's irc channel and I tried to talk about this issue but I didn't get much responce.

    And I would like to help in development but I have never written dx9 application before so I know nothing about it. I only want to highlight that it's possible to use acceleration on secondary display (in connection with option to automatically start MP on sec. display when it's active it would be the best HTPC software ever :)).
     

    Morten

    Portal Member
    November 29, 2004
    28
    0
    Norway
    .Netframework has a screen class (System.Windows.Forms.Screen)

    With it one can iterate through all the screens and find out which one is primary and then choose to output MP on that screen....

    I have not done any testing with this in MP, but I've used the class in other projects to consistently render a form on a given screen...

    //Morten
     
    Y

    yaworski

    Guest
    Morten and Khris: but this is not what i was talking about. I don't want to detect which one display is primary display and show MP there, and I don't want connect my pc only to the TV (I don't have enough money to buy a PC which would act only as my htpc connected to the TV only) or set tvout as primary display.

    And yes, with System.Windows.Forms.Screen one can detect number of displays and detect which one is primary. I tried this in some test application. When tvout was disabled then my app displayed on my monitor but when it was enabled then app was displayed on TV. Add to this simple setup option to activate such behavior and voila. The only thing is to select on which screen MP should be accelerated as CHli.
     

    Users who are viewing this thread

    Top Bottom