Qt Multimedia: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Cleanup)
m (Remove category (There are no other pages in that category))
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{LangSwitch}}
{{LangSwitch}}
[[Category:Developing_Qt::Qt_Multimedia]]
 
__TOC__
__TOC__
The purpose of this page is to give an overview of the current state of Qt Multimedia in Qt 5 and propose a roadmap for future releases.
The purpose of this page is to give an overview of the current state of Qt Multimedia in Qt 5 and propose a roadmap for future releases.
Line 19: Line 19:


Most backend auto-tests are marked as insignificant and are not run on the CI system. These tests should make sure Qt Multimedia behaves consistently across all backends.
Most backend auto-tests are marked as insignificant and are not run on the CI system. These tests should make sure Qt Multimedia behaves consistently across all backends.
* Port the GStreamer backend to GStreamer 1.0 (currently 0.10).
This would allow to get out-of-the-box support for HW-accelerated video decoding with VA-API. Some work has to be done to benefit from this in QtQuick.
* Add camera support in the WMF plugin
Qt Multimedia currently falls back to the DirectShow plugin for camera support on Windows, but that plugin has an incomplete implementation and DirectShow is being gradually deprecated by Microsoft anyway.
* Make the WMF plugin compile with MinGW.
The Media Foundation headers are incomplete in MinGW, making it impossible to build the plugin. The DirectShow plugin is built instead when using MinGW. We should probably generate these headers ourselves and include them in Qt.
* Deprecate QuickTime 7 plugin
AVFoundation is available since MacOS 10.7. Deprecate the QuickTime 7 plugin for 5.2.


=== Normal priority ===
=== Normal priority ===
Line 41: Line 25:
** Playlist support
** Playlist support
** QAudioRecorder has no QML equivalent
** QAudioRecorder has no QML equivalent
** There is no way to select which physical camera to use with the Camera item
** Add a way to query supported values for camera parameters such as capture resolution, ISO, flash modes and so on…
** Add a way to query supported values for camera parameters such as capture resolution, ISO, flash modes and so on…


Line 52: Line 35:
Several control classes, such as QCameraFeedbackControl or QMediaGaplessPlaybackControl, exist but are not used anywhere. Should we remove these or should we use them where needed.
Several control classes, such as QCameraFeedbackControl or QMediaGaplessPlaybackControl, exist but are not used anywhere. Should we remove these or should we use them where needed.
Additionally, some controls have missing signals and missing virtual destructors…
Additionally, some controls have missing signals and missing virtual destructors…
* What to do with the DirectShow plugin?
It is the only multimedia backend available on Windows XP. Additionally DirectShow has virtually support for any existing codec (through third-party codecs). Media Foundation lacks this extensive codec support. It probably can't go away for now, should it be improved or left as is?
It could be shipped together with the WMF plugin and the right plugin would be selected at run-time depending on the needed codec.


=== Unprioritized ===
=== Unprioritized ===

Latest revision as of 03:28, 20 April 2016

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

The purpose of this page is to give an overview of the current state of Qt Multimedia in Qt 5 and propose a roadmap for future releases.

For an API overview, please see Qt Multimedia Overview

For an overview of what is currently supported by each multimedia backend, see Qt Multimedia Backends

Planning

High priority

  • Improve documentation.

Some classes have incomplete documentation and out of date code snippets. It would also be nice to add QML demos showing MediaPlayer and Camera features.

  • Improve auto-tests.

Most backend auto-tests are marked as insignificant and are not run on the CI system. These tests should make sure Qt Multimedia behaves consistently across all backends.

Normal priority

  • Add missing APIs to QML Multimedia Items
    • Playlist support
    • QAudioRecorder has no QML equivalent
    • Add a way to query supported values for camera parameters such as capture resolution, ISO, flash modes and so on…
  • Fullscreen video window support in QML

Multimedia backends often have optimizations for rendering video inside a window or a fullscreen window (rather than in a texture or in main memory; especially true on mobile platforms). There could be an API in the VideoOutput item to enable fullscreen but also to choose the kind of surface the video should be rendered into. The implementation is already partly done as a fallback for backends that don't support rendering to a texture or to main memory. Currently this fallback always puts the video window on top of the QML scene, there should be a way to have the window behind the QML scene as well.

  • Backend API cleanup

Several control classes, such as QCameraFeedbackControl or QMediaGaplessPlaybackControl, exist but are not used anywhere. Should we remove these or should we use them where needed. Additionally, some controls have missing signals and missing virtual destructors…

Unprioritized

  • Single cross-platform backend

Instead of having a different backend for each platform, we could use a single cross-platform backend. It would eliminate inconsistencies across platforms and reduce code maintenance. The single backend could be GStreamer (might not perform well everywhere) or libVLC (legal issues with codecs?).

  • New features
    • Subtitle support
    • Multiple tracks (or streams) support in QMediaPlayer. Some media containers can have multiple video, audio and subtitle tracks. Add a way to list them and select the active one.
    • QMediaPlayer playback loops
    • We have QAudioDecoder, in a similar fashion we could have QVideoDecoder
    • New QAudioEncoder and QVideoEncoder classes
    • Video thumbnail API
    • Audio effects API. e.g. equalizer, bass boost, reverb, etc…