Qt Multimedia

From Qt Wiki
Jump to navigation Jump to search

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…