Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-31800

WMF backend on Windows with OpenGL - video playback is broken

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.3.0
    • 5.1.0 Beta 1, 5.2.1
    • Multimedia
    • Windows 7, 64 bit using Qt 5.1.0 beta1 msvc2010 opengl x86, nvidia Geforce GTX 560M, intel i7 processor, 12 GB ram
    • 04edeafade9058bde6d6dd58e6b1a89bace2fd50

    Description

      During developing an application which amongst other things plays back
      video files using the Qt 5.1 beta version on Windows 7, I've run into a
      serious problem with the media backend.

      To reproduce this: use for example "Big buck bunny" from here, http://www.bigbuckbunny.org/index.php/download/
      Take the 854x480p h264 file.

      Use the CuteTime demo player from here:
      https://github.com/nezticle/cutetime
      as it shows the same issue that I get in my own player.

      Playback starts OK but if you let it play until 3:34, it will play in
      "fast-forward", with a mismatch between true video position and the one reported by QMediaplayer. Trying to seek before this happens will make the video hang. Before 3:34 there will be the occational video stutter, with this debug output appearing on the console:
      currentPresentTime = 102.334 and sampleTime is 102.249

      This only happens using the OpenGL build, not if you use the
      Angle-build. The issue always happens at about 3:34 into the film, also
      with my own video files. I have not been able to reproduce this using
      one of the example players that come with Qt, it seems like it is
      somehow triggered by having more than just a video item on the screen
      using Quick2 (such as a text label with the current media position).

      I've briefly looked into the WMF backend code and found that there is
      indeed some ifdef's concerning the use of either OpenGL or Angle.

      Quoting Yoann Lopes from the qt mailinglist:

      This is a known issue.

      Angle and OpenGL builds use different decoding pipelines. With Angle, the plugin can do hardware decoding using DXVA, while when using pure OpenGL it is not possible and the pipeline is setup with a custom video sink (software decoding) that is known to be buggy...

      If you can, use the Angle build. Not only you'll get better performance but it will also be much more stable.

      The problem you are reporting should probably be fixed anyway, please create a bug report.

      Attachments

        For Gerrit Dashboard: QTBUG-31800
        # Subject Branch Project Status CR V

        Activity

          People

            ylopes Yoann Lopes
            pyrrhula Ola Røer Thorsen
            Votes:
            6 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes