Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Can't play video on windows xp
Forum Updated to NodeBB v4.3 + New Features

Can't play video on windows xp

Scheduled Pinned Locked Moved Unsolved General and Desktop
30 Posts 4 Posters 5.8k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • LinArcXL LinArcX

    @Bonnie
    Here you are:
    https://gist.github.com/LinArcX/f124ffb178d4c1d84c84e7e39f37f3a3

    B Offline
    B Offline
    Bonnie
    wrote on last edited by Bonnie
    #11

    @LinArcX
    I think the key point is

    QLibraryPrivate::loadPlugin failed on "Z:/workspace/c++/qt/build-AtmQtWidgetsTest-Desktop_Qt_5_6_3_MSVC2013_32_bit-Release/release/mediaservice/dsengine.dll" : "Cannot load library Z:\\workspace\\c++\\qt\\build-AtmQtWidgetsTest-Desktop_Qt_5_6_3_MSVC2013_32_bit-Release\\release\\mediaservice\\dsengine.dll: The specified module could not be found.
    

    That usually means there're some dependency dlls missing so the plugin dll cannot be loaded.
    Try using DependencyWalker to open dsengine.dll to check the dependencies.
    Maybe xp needs to install directx? I'm not sure...

    LinArcXL 1 Reply Last reply
    1
    • B Bonnie

      @LinArcX
      I think the key point is

      QLibraryPrivate::loadPlugin failed on "Z:/workspace/c++/qt/build-AtmQtWidgetsTest-Desktop_Qt_5_6_3_MSVC2013_32_bit-Release/release/mediaservice/dsengine.dll" : "Cannot load library Z:\\workspace\\c++\\qt\\build-AtmQtWidgetsTest-Desktop_Qt_5_6_3_MSVC2013_32_bit-Release\\release\\mediaservice\\dsengine.dll: The specified module could not be found.
      

      That usually means there're some dependency dlls missing so the plugin dll cannot be loaded.
      Try using DependencyWalker to open dsengine.dll to check the dependencies.
      Maybe xp needs to install directx? I'm not sure...

      LinArcXL Offline
      LinArcXL Offline
      LinArcX
      wrote on last edited by LinArcX
      #12

      @Bonnie

      Hmmm.. Interesing. This is the output of dependency walker on dsengine.dll:

      • c:\windows\system32\GDI32.DLL
      • c:\windows\system32\MF.DLL
      • c:\windows\system32\MFPLAT.DLL
      • c:\windows\system32\D3D9.DLL
      • c:\windows\system32\DXVA2.DLL
      • c:\windows\system32\WINMM.DLL
      • c:\windows\system32\EVR.DLL
      • c:\windows\system32\OLE32.DLL
      • c:\windows\system32\OLEAUT32.DLL
      • c:\tools\neovim\neovim\bin\QT5WIDGETS.DLL
      • c:\tools\neovim\neovim\bin\QT5GUI.DLL
      • c:\tools\neovim\neovim\bin\QT5CORE.DLL
      • c:\windows\system32\USER32.DLL
      • c:\windows\system32\MSVCP120.DLL
      • c:\windows\system32\MSVCR120.DLL
      • c:\windows\system32\KERNEL32.DLL

      So, yes. Seems it depends on D3D9.dll that is parts of DirectX. But I installed DirectX 9 on windows xp and checked that d3d9.dll exists in c:\windows\system32.

      Edit: I've noticed that except mf.dll and mfplat.dll other dlls exists in c:\windows\system32.

      B 1 Reply Last reply
      0
      • LinArcXL LinArcX

        @Bonnie

        Hmmm.. Interesing. This is the output of dependency walker on dsengine.dll:

        • c:\windows\system32\GDI32.DLL
        • c:\windows\system32\MF.DLL
        • c:\windows\system32\MFPLAT.DLL
        • c:\windows\system32\D3D9.DLL
        • c:\windows\system32\DXVA2.DLL
        • c:\windows\system32\WINMM.DLL
        • c:\windows\system32\EVR.DLL
        • c:\windows\system32\OLE32.DLL
        • c:\windows\system32\OLEAUT32.DLL
        • c:\tools\neovim\neovim\bin\QT5WIDGETS.DLL
        • c:\tools\neovim\neovim\bin\QT5GUI.DLL
        • c:\tools\neovim\neovim\bin\QT5CORE.DLL
        • c:\windows\system32\USER32.DLL
        • c:\windows\system32\MSVCP120.DLL
        • c:\windows\system32\MSVCR120.DLL
        • c:\windows\system32\KERNEL32.DLL

        So, yes. Seems it depends on D3D9.dll that is parts of DirectX. But I installed DirectX 9 on windows xp and checked that d3d9.dll exists in c:\windows\system32.

        Edit: I've noticed that except mf.dll and mfplat.dll other dlls exists in c:\windows\system32.

        B Offline
        B Offline
        Bonnie
        wrote on last edited by Bonnie
        #13

        @LinArcX
        Well, this is not how we usually use dependency walker.
        In the middle list area, check the yellow icons for missing dlls and red icons for dlls that missing functions.
        Some can be ignored referring to https://www.dependencywalker.com/faq.html

        Edit: If it depends on mf.dll and mfplat.dll, that can be the problem. Maybe your compiling links newer DX libs that not supporting xp.
        Edit2: I've searched on google and others say that if mf.dll and mfplat.dll are lazy loaded, then that can also be ignored.

        LinArcXL 2 Replies Last reply
        2
        • B Bonnie

          @LinArcX
          Well, this is not how we usually use dependency walker.
          In the middle list area, check the yellow icons for missing dlls and red icons for dlls that missing functions.
          Some can be ignored referring to https://www.dependencywalker.com/faq.html

          Edit: If it depends on mf.dll and mfplat.dll, that can be the problem. Maybe your compiling links newer DX libs that not supporting xp.
          Edit2: I've searched on google and others say that if mf.dll and mfplat.dll are lazy loaded, then that can also be ignored.

          LinArcXL Offline
          LinArcXL Offline
          LinArcX
          wrote on last edited by
          #14

          @Bonnie
          Lazy loaded? What that means?

          I download them from the internet and copy in system directory.

          But nothing changed.

          1 Reply Last reply
          0
          • B Bonnie

            @LinArcX
            Well, this is not how we usually use dependency walker.
            In the middle list area, check the yellow icons for missing dlls and red icons for dlls that missing functions.
            Some can be ignored referring to https://www.dependencywalker.com/faq.html

            Edit: If it depends on mf.dll and mfplat.dll, that can be the problem. Maybe your compiling links newer DX libs that not supporting xp.
            Edit2: I've searched on google and others say that if mf.dll and mfplat.dll are lazy loaded, then that can also be ignored.

            LinArcXL Offline
            LinArcXL Offline
            LinArcX
            wrote on last edited by LinArcX
            #15

            @Bonnie said in Can't play video on windows xp:

            In the middle list area, check the yellow icons for missing dlls and red icons for dlls that missing functions.

            depwalker.png

            B 1 Reply Last reply
            0
            • LinArcXL LinArcX

              @Bonnie said in Can't play video on windows xp:

              In the middle list area, check the yellow icons for missing dlls and red icons for dlls that missing functions.

              depwalker.png

              B Offline
              B Offline
              Bonnie
              wrote on last edited by
              #16

              @LinArcX
              Lazy loaded dlls would have a hourglass mark with the icon, like MPR.DLL / IESHIMS.DLL in your picture.
              Your MF.DLL and MFPLAT.DLL seems to be direct linked, also your D3D9.dll is red so it may miss functions.
              I would guess it is due to the DX lib when you compile Qt, as I said.
              I don't have any 5.6.3 dlls on my machine but I have a deployed application of 5.5.1. Checking by dependency walker, the official prebuilt msvc2013 dsengine.dll of 5.5.1 doesn't depend on mf.dll and mfplat.dll directly.

              LinArcXL 1 Reply Last reply
              0
              • B Bonnie

                @LinArcX
                Lazy loaded dlls would have a hourglass mark with the icon, like MPR.DLL / IESHIMS.DLL in your picture.
                Your MF.DLL and MFPLAT.DLL seems to be direct linked, also your D3D9.dll is red so it may miss functions.
                I would guess it is due to the DX lib when you compile Qt, as I said.
                I don't have any 5.6.3 dlls on my machine but I have a deployed application of 5.5.1. Checking by dependency walker, the official prebuilt msvc2013 dsengine.dll of 5.5.1 doesn't depend on mf.dll and mfplat.dll directly.

                LinArcXL Offline
                LinArcXL Offline
                LinArcX
                wrote on last edited by
                #17

                @Bonnie

                Maybe your compiling links newer DX libs that not supporting xp. I would guess it is due to the DX lib when you compile Qt, as I said.

                You mean i should install Directx9 on my windows7, remove all other DirectX versions and compile qt5.6.3 again?

                B 1 Reply Last reply
                0
                • LinArcXL LinArcX

                  @Bonnie

                  Maybe your compiling links newer DX libs that not supporting xp. I would guess it is due to the DX lib when you compile Qt, as I said.

                  You mean i should install Directx9 on my windows7, remove all other DirectX versions and compile qt5.6.3 again?

                  B Offline
                  B Offline
                  Bonnie
                  wrote on last edited by
                  #18

                  @LinArcX
                  You may be able to compile only the dsengine plugin.
                  But I don't know how to make sure you link the xp supported DX lib, since I don't target xp for at least 5 years...

                  LinArcXL 1 Reply Last reply
                  0
                  • B Bonnie

                    @LinArcX
                    You may be able to compile only the dsengine plugin.
                    But I don't know how to make sure you link the xp supported DX lib, since I don't target xp for at least 5 years...

                    LinArcXL Offline
                    LinArcXL Offline
                    LinArcX
                    wrote on last edited by
                    #19

                    @Bonnie
                    What aboot this:

                    https://forum.qt.io/topic/59838/building-qt-from-source-on-windows/7

                    1 Reply Last reply
                    0
                    • hskoglundH Offline
                      hskoglundH Offline
                      hskoglund
                      wrote on last edited by
                      #20

                      Hi, one other thing I saw in the dependency walker's output, it wants the Qt files from another Qt directory on your XP machine:
                      c:\tools\neovim\neovim\bin

                      Make sure that this other version exists and is also Qt 5.6.3 Release for MSVC 2013.

                      LinArcXL 1 Reply Last reply
                      1
                      • hskoglundH hskoglund

                        Hi, one other thing I saw in the dependency walker's output, it wants the Qt files from another Qt directory on your XP machine:
                        c:\tools\neovim\neovim\bin

                        Make sure that this other version exists and is also Qt 5.6.3 Release for MSVC 2013.

                        LinArcXL Offline
                        LinArcXL Offline
                        LinArcX
                        wrote on last edited by
                        #21

                        @hskoglund
                        Hello. I have some questions:

                        1. Why application loads these .dlls from that weird directory instead of current directory of my application? (I used windeployqt)
                        2. Lets say, i fixed it. Do it fix main issue?(Showing video)
                        mrjjM 1 Reply Last reply
                        0
                        • LinArcXL LinArcX

                          @hskoglund
                          Hello. I have some questions:

                          1. Why application loads these .dlls from that weird directory instead of current directory of my application? (I used windeployqt)
                          2. Lets say, i fixed it. Do it fix main issue?(Showing video)
                          mrjjM Offline
                          mrjjM Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on last edited by
                          #22

                          @LinArcX
                          Hi
                          1: Ask Windows :) It is its run time loader that controls this.
                          2: It could fix it. However, the normal effect of mixing Qt version is crashes so
                          dont get to much hope up.

                          LinArcXL 1 Reply Last reply
                          1
                          • mrjjM mrjj

                            @LinArcX
                            Hi
                            1: Ask Windows :) It is its run time loader that controls this.
                            2: It could fix it. However, the normal effect of mixing Qt version is crashes so
                            dont get to much hope up.

                            LinArcXL Offline
                            LinArcXL Offline
                            LinArcX
                            wrote on last edited by
                            #23

                            @mrjj I mean why it didn't look in current directory first, if it looked why doesn't load it? Since those dlls exists beside main exe file.

                            I noticed that on windows xp that doesn't have this directory(c:\tools\neovim\neovim\bin\), DependencyWalker complains that it can't find dlls:
                            depXP.PNG
                            `

                            mrjjM 1 Reply Last reply
                            0
                            • LinArcXL LinArcX

                              @mrjj I mean why it didn't look in current directory first, if it looked why doesn't load it? Since those dlls exists beside main exe file.

                              I noticed that on windows xp that doesn't have this directory(c:\tools\neovim\neovim\bin\), DependencyWalker complains that it can't find dlls:
                              depXP.PNG
                              `

                              mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by mrjj
                              #24

                              @LinArcX
                              Well back in the Xp days they didn't load better i guess.
                              In the newer version of windows, you can add a manifest file to tweaking it and at some point they also allowed
                              side by side loading of Dlls with same name etc.
                              https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order

                              well (c:\tools\neovim\neovim\bin) seems just to be
                              https://github.com/neovim/neovim
                              but it does uses Qt for GUI .

                              Hmm so the DSENGINE cannot find its support DLLS ?
                              those missing files are in your app folder ?

                              Is there a reason you cant use a virtual machine with Xp (or real pc ) to install Qt5.6
                              and what ever compiler you wish and simply compile and xp version for xp.
                              And compile a win 7+ on win 7 ?
                              Im not 100% sure you can have a one .exe that works on both as the backend changed alot.

                              LinArcXL 1 Reply Last reply
                              0
                              • mrjjM mrjj

                                @LinArcX
                                Well back in the Xp days they didn't load better i guess.
                                In the newer version of windows, you can add a manifest file to tweaking it and at some point they also allowed
                                side by side loading of Dlls with same name etc.
                                https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order

                                well (c:\tools\neovim\neovim\bin) seems just to be
                                https://github.com/neovim/neovim
                                but it does uses Qt for GUI .

                                Hmm so the DSENGINE cannot find its support DLLS ?
                                those missing files are in your app folder ?

                                Is there a reason you cant use a virtual machine with Xp (or real pc ) to install Qt5.6
                                and what ever compiler you wish and simply compile and xp version for xp.
                                And compile a win 7+ on win 7 ?
                                Im not 100% sure you can have a one .exe that works on both as the backend changed alot.

                                LinArcXL Offline
                                LinArcXL Offline
                                LinArcX
                                wrote on last edited by
                                #25

                                @mrjj

                                you can add a manifest file to tweaking it and at some point they also allowed side by side loading of Dlls with same name etc.

                                It works on xp?

                                side by side loading of Dlls with same name etc.> those missing files are in your app folder ?

                                Exactly.

                                Is there a reason you cant use a virtual machine with Xp (or real pc ) to install Qt5.6 and what ever compiler you wish and simply compile and xp version for xp.

                                I tried to compile qt 5.5.0 on windos xp.(It's a virtualbox machine). It complains about some functions that only exists on x64 architecture.

                                Im not 100% sure you can have a one .exe that works on both as the backend changed alot.

                                So, you mean i should compile whole application in each os separately?

                                mrjjM 1 Reply Last reply
                                0
                                • LinArcXL LinArcX

                                  @mrjj

                                  you can add a manifest file to tweaking it and at some point they also allowed side by side loading of Dlls with same name etc.

                                  It works on xp?

                                  side by side loading of Dlls with same name etc.> those missing files are in your app folder ?

                                  Exactly.

                                  Is there a reason you cant use a virtual machine with Xp (or real pc ) to install Qt5.6 and what ever compiler you wish and simply compile and xp version for xp.

                                  I tried to compile qt 5.5.0 on windos xp.(It's a virtualbox machine). It complains about some functions that only exists on x64 architecture.

                                  Im not 100% sure you can have a one .exe that works on both as the backend changed alot.

                                  So, you mean i should compile whole application in each os separately?

                                  mrjjM Offline
                                  mrjjM Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #26

                                  @LinArcX said in Can't play video on windows xp:

                                  @mrjj

                                  you can add a manifest file to tweaking it and at some point they also allowed side by side loading of Dlls with same name etc.

                                  • It works on xp?
                                    I think so but not sure if it can help you load the right dlls.
                                    https://docs.microsoft.com/en-us/windows/win32/sbscs/manifests

                                  • I tried to compile qt 5.5.0 on windos xp.(It's a virtualbox machine). It complains about some functions that only exists on x64 architecture.
                                    But Qt5.6 still supports Xp so why compile your self? You add something ?

                                  • So, you mean i should compile whole application in each os separately?
                                    Well that is how a few people I know still do - to have xp version. Its only SP3 Xp's that works but I guess
                                    all remaining xp's are patched.
                                    It might be less work than to make sure it links to older directX in newer windows. (if thats even possible)

                                  LinArcXL 1 Reply Last reply
                                  0
                                  • mrjjM mrjj

                                    @LinArcX said in Can't play video on windows xp:

                                    @mrjj

                                    you can add a manifest file to tweaking it and at some point they also allowed side by side loading of Dlls with same name etc.

                                    • It works on xp?
                                      I think so but not sure if it can help you load the right dlls.
                                      https://docs.microsoft.com/en-us/windows/win32/sbscs/manifests

                                    • I tried to compile qt 5.5.0 on windos xp.(It's a virtualbox machine). It complains about some functions that only exists on x64 architecture.
                                      But Qt5.6 still supports Xp so why compile your self? You add something ?

                                    • So, you mean i should compile whole application in each os separately?
                                      Well that is how a few people I know still do - to have xp version. Its only SP3 Xp's that works but I guess
                                      all remaining xp's are patched.
                                      It might be less work than to make sure it links to older directX in newer windows. (if thats even possible)

                                    LinArcXL Offline
                                    LinArcXL Offline
                                    LinArcX
                                    wrote on last edited by
                                    #27

                                    @mrjj said in Can't play video on windows xp:

                                    But Qt5.6 still supports Xp so why compile your self? You add something ?

                                    Which version of 5.6? 5.6.3?

                                    mrjjM 1 Reply Last reply
                                    0
                                    • LinArcXL LinArcX

                                      @mrjj said in Can't play video on windows xp:

                                      But Qt5.6 still supports Xp so why compile your self? You add something ?

                                      Which version of 5.6? 5.6.3?

                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #28

                                      @LinArcX
                                      Yes. I saw someone write he used that version in 32 bit and it worked for
                                      Xp. I didnt personally tried it, though.

                                      1 Reply Last reply
                                      0
                                      • LinArcXL Offline
                                        LinArcXL Offline
                                        LinArcX
                                        wrote on last edited by LinArcX
                                        #29

                                        I have same issue with playing video with QtWebEngien and QtQuick. Both of them can't play video on windows xp.

                                        1 Reply Last reply
                                        0
                                        • LinArcXL Offline
                                          LinArcXL Offline
                                          LinArcX
                                          wrote on last edited by
                                          #30

                                          This is the output of running QtWebEngine application on real hardware(Windows xp):

                                          00000001	0.00000000	[2736] QFactoryLoader::QFactoryLoader() checking directory path "D:/release_webengine/platforms" ...	
                                          00000002	0.00167815	[2736] QFactoryLoader::QFactoryLoader() looking at "D:/release_webengine/platforms/qwindows.dll"	
                                          00000003	0.01299774	[2736] Found metadata in lib D:/release_webengine/platforms/qwindows.dll, metadata=	
                                          00000004	0.01299774	[2736] {	
                                          00000005	0.01299774	[2736]     "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",	
                                          00000006	0.01299774	[2736]     "MetaData": {	
                                          00000007	0.01299774	[2736]         "Keys": [	
                                          00000008	0.01299774	[2736]             "windows"	
                                          00000009	0.01299774	[2736]         ]	
                                          00000010	0.01299774	[2736]     },	
                                          00000011	0.01299774	[2736]     "className": "QWindowsIntegrationPlugin",	
                                          00000012	0.01299774	[2736]     "debug": false,	
                                          00000013	0.01299774	[2736]     "version": 328961	
                                          00000014	0.01299774	[2736] }	
                                          00000015	0.01299774	[2736] 	
                                          00000016	0.01299774	[2736] 	
                                          00000017	0.02331553	[2736] Got keys from plugin meta data ("windows")	
                                          00000018	0.05049497	[2736] loaded library "D:/release_webengine/platforms/qwindows.dll"	
                                          00000019	0.05494274	[2736] QFactoryLoader::QFactoryLoader() checking directory path "D:/release_webengine/platformthemes" ...	
                                          00000020	0.05584676	[2736] QFactoryLoader::QFactoryLoader() checking directory path "D:/release_webengine/platforminputcontexts" ...	
                                          00000021	4.12752199	[2736] class QWindowsEGLStaticContext *__cdecl QWindowsEGLStaticContext::create(class QFlags<enum QWindowsOpenGLTester::Renderer>): Could not initialize EGL display: error 0x3001	
                                          00000022	4.12752199	[2736] 	
                                          00000023	4.12766695	[2736] class QWindowsEGLStaticContext *__cdecl QWindowsEGLStaticContext::create(class QFlags<enum QWindowsOpenGLTester::Renderer>): When using ANGLE, check if d3dcompiler_4x.dll is available	
                                          00000024	4.64033127	[2736] QFactoryLoader::QFactoryLoader() checking directory path "D:/release_webengine/styles" ...	
                                          00000025	4.95253468	[2736] QFactoryLoader::QFactoryLoader() checking directory path "D:/release_webengine/accessiblebridge" ...
                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved