Qt 5.4 Multimedia Backends: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
mNo edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=Qt Multimedia Backends=
For most features, Qt Multimedia builds upon the multimedia framework of the underlying system. Therefore there are several multimedia backends based on different technologies and <span class="caps">API</span>s. The glue between platform specific libraries and Qt Multimedia is contained in a plugin. There are currently three kinds of plugins in Qt Multimedia:


For most features, Qt Multimedia builds upon the multimedia framework of the underlying system. Therefore there are several multimedia backends based on different technologies and APIs. The glue between platform specific libraries and Qt Multimedia is contained in a plugin. There are currently three kinds of plugins in Qt Multimedia:
* MediaService plugins, to provide media player, camera, radio, and recording features
* MediaService plugins, to provide media player, camera, radio, and recording features
* Audio plugins, to provide low-latency audio support
* Audio plugins, to provide low-latency audio support
* PlaylistFormat plugins, to support a specific playlist file format
* PlaylistFormat plugins, to support a specific playlist file format


Plugins do not necessarily implement all possible features and different backends have different capabilities.<br /> The following tables give an overview of what is supported by each backend in Qt 5.4.
Plugins do not necessarily implement all possible features and different backends have different capabilities.
The following tables give an overview of what is supported by each backend in Qt 5.4.


==MediaService plugins==
== MediaService plugins ==


====Supported media player features by backend====
==== Supported media player features by backend ====


{| class="infotable line"
{| class="wikitable"
|- style="background: #009900"
|
!
! DirectShow (Windows)  
! DirectShow (Windows)
! Media Foundation (Windows)  
! Media Foundation (Windows)
! AV Foundation (Mac OS / iOS)  
! AV Foundation (Mac OS / iOS)
! GStreamer (Unix)  
! GStreamer (Unix)
! Android  
! Android
! BlackBerry  
! BlackBerry
|-
|-
| MediaPlayer control
| MediaPlayer control  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| <span class="caps">URL</span> source (local and remote)
| URL source (local and remote)  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Stream source
| Stream source  
| X
| X  
| X
|
| X
| X
|
|  
| X
|
|
|
|-
|-
| Metadata
| Metadata  
| X
| X  
| X
| X  
| partial
| partial  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Playback rate
| Playback rate  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|
|  
| X
| X  
|-
|-
| Track selection
| Track selection  
|
|  
|
|  
|
|  
| X
| X  
|
|  
|
|  
|-
|-
| HW decoding
| HW decoding  
|
|  
| Only when using Angle
| Only when using Angle  
| X
| X  
|
|  
| X
| X  
| X
| X  
|-
|-
| Video window control
| Video window control  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|
|  
| X
| X  
|-
|-
| Video widget control
| Video widget control  
|
|  
|
|  
| X
| X  
| X
| X  
|
|  
|
|  
|-
|-
| Video renderer control (includes OpenGL textures)
| Video renderer control (includes OpenGL textures)  
| X
| X  
| X
| X  
| X (only Mac OS)
| X (only Mac OS)  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Audio probe
| Audio probe  
|
|  
| X
| X  
|
|  
| X
| X  
|
|  
|
|  
|-
|-
| Video Probe
| Video Probe  
|
|  
| X
| X  
|
|  
| X
| X  
|
|  
|
|  
|}
|}


====Supported camera features by backend====
==== Supported camera features by backend ====


{| class="infotable line"
{|class="wikitable"
|- style="background: #009900"
|
!
! DirectShow (Windows)  
! DirectShow (Windows)
! Media Foundation (Windows)  
! Media Foundation (Windows)
! AV Foundation (Mac OS / iOS)  
! AV Foundation (Mac OS / iOS)
! GStreamer (Unix)  
! GStreamer (Unix)
! Android  
! Android
! BlackBerry  
! BlackBerry
|-
|-
| Camera control
| Camera control  
| X
| X  
|
|  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Video window control
| Video window control  
|
|  
|
|  
|
|  
| X
| X  
|
|  
|
|  
|-
|-
| Video widget control
| Video widget control  
| X
| X  
|
|  
|
|  
| X
| X  
|
|  
|
|  
|-
|-
| Video renderer control (includes OpenGL textures)
| Video renderer control (includes OpenGL textures)  
| X
| X  
|
|  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| ViewFinder settings
| ViewFinder settings  
|
|  
|
|  
|
|  
| resolution
| resolution  
|
|  
| resolution, framerate, pixel format
| resolution, framerate, pixel format  
|-
|-
| Image capture
| Image capture  
| X
| X  
|
|  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Capture destination
| Capture destination  
| File
| File  
|
|  
| File
| File  
| File, Buffer
| File, Buffer  
| File, Buffer
| File, Buffer  
| File, Buffer
| File, Buffer  
|-
|-
| Image settings
| Image settings  
|
|  
|
|  
|
|  
| resolution
| resolution  
| resolution, quality
| resolution, quality  
| resolution, quality
| resolution, quality  
|-
|-
| Zoom
| Zoom  
|
|  
|
|  
|
|  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Flash
| Flash  
|
|  
|
|  
|
|  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Focus
| Focus  
|
|  
|
|  
|
|  
| only focused notification
| only focused notification  
| mode, custom point
| mode, custom point  
| mode, custom point
| mode, custom point  
|-
|-
| Exposure
| Exposure  
|
|  
|
|  
|
|  
| Scene mode, compensation, <span class="caps">ISO</span>, aperture, ShutterSpeed
| Scene mode, compensation, ISO, aperture, ShutterSpeed  
| Scene mode, compensation
| Scene mode, compensation  
| Scene mode
| Scene mode  
|-
|-
| Image Processing
| Image Processing  
|
|  
|
|  
|
|  
| White Balance, Contrast, Brightness, Saturation,
| White Balance, Contrast, Brightness, Saturation,  
| White Balance
| White Balance  
| White Balance
| White Balance  
|-
|-
| Locks
| Locks  
|
|  
|
|  
|
|  
| Focus
| Focus  
| Focus, Exposure, White Balance
| Focus, Exposure, White Balance  
| Focus, Exposure, White Balance
| Focus, Exposure, White Balance  
|}
|}


====Supported recording features by backend====
==== Supported recording features by backend ====


{| class="infotable line"
{| class="wikitable"
|- style="background: #009900"
|
!
! DirectShow (Windows)  
! DirectShow (Windows)
! Media Foundation (Windows)  
! Media Foundation (Windows)
! AV Foundation (Mac OS / iOS)  
! AV Foundation (Mac OS / iOS)
! GStreamer (Unix)  
! GStreamer (Unix)
! Android  
! Android
! BlackBerry  
! BlackBerry
|-
|-
| Record camera
| Record camera  
|
|  
|
|  
| X
| X  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Record audio
| Record audio  
| Fallback to audio backend
| Fallback to audio backend  
| Fallback to audio backend
| Fallback to audio backend  
| Fallback to audio backend
| Fallback to audio backend  
| X
| X  
| X
| X  
| Fallback to audio backend
| Fallback to audio backend  
|-
|-
| MetaData writer
| MetaData writer  
|
|  
|
|  
|
|  
| X
| X  
|
|  
|
|  
|-
|-
| Audio encoder settings
| Audio encoder settings  
|
|  
|
|  
|
|  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Video encoder settings
| Video encoder settings  
|
|  
|
|  
|
|  
| X
| X  
| X
| X  
| X
| X  
|-
|-
| Container settings
| Container settings  
|
|  
|
|  
|
|  
| X
| X  
| X
| X  
|
|  
|}
|}


====Supported audio decoding features by backend {| class="infotable line" |- style="background: #009900" !  ! DirectShow (Windows) ! Media Foundation (Windows) ! AV Foundation (Mac OS / iOS) ! GStreamer (Unix) ! Android ! BlackBerry |- | Decode audio | | X | | X | | |}====
==== Supported audio decoding features by backend ====
{| class="wikitable"
|  
! DirectShow (Windows)  
! Media Foundation (Windows)  
! AV Foundation (Mac OS / iOS)  
! GStreamer (Unix)  
! Android  
! BlackBerry  
|-
| Decode audio  
|  
| X  
|  
| X  
|  
|  
|}


==Audio plugins==
== Audio plugins ==


Audio backends implement QAudioInput, QAudioOutput, QAudioDeviceInfo and QSoundEffect
Audio backends implement QAudioInput, QAudioOutput, QAudioDeviceInfo and QSoundEffect


Here is the list of the current audio backends:
Here is the list of the current audio backends:
* Windows Multimedia
* Windows Multimedia
* CoreAudio (Mac OS / iOS)
* CoreAudio (Mac OS / iOS)
Line 319: Line 331:
* Alsa (Unix)
* Alsa (Unix)
* OpenSL ES (Android)
* OpenSL ES (Android)
* <span class="caps">QNX</span>
* QNX
 
==PlaylistFormat plugins==
 
Only m3u is supported at the moment.
 
===Categories:===


* [[:Category:Developing Qt|Developing_Qt]]
== PlaylistFormat plugins ==
** [[:Category:Developing Qt::Qt Multimedia|Qt_Multimedia]]

Latest revision as of 11:18, 14 July 2015

For most features, Qt Multimedia builds upon the multimedia framework of the underlying system. Therefore there are several multimedia backends based on different technologies and APIs. The glue between platform specific libraries and Qt Multimedia is contained in a plugin. There are currently three kinds of plugins in Qt Multimedia:

  • MediaService plugins, to provide media player, camera, radio, and recording features
  • Audio plugins, to provide low-latency audio support
  • PlaylistFormat plugins, to support a specific playlist file format

Plugins do not necessarily implement all possible features and different backends have different capabilities. The following tables give an overview of what is supported by each backend in Qt 5.4.

MediaService plugins

Supported media player features by backend

DirectShow (Windows) Media Foundation (Windows) AV Foundation (Mac OS / iOS) GStreamer (Unix) Android BlackBerry
MediaPlayer control X X X X X X
URL source (local and remote) X X X X X X
Stream source X X X
Metadata X X partial X X X
Playback rate X X X X X
Track selection X
HW decoding Only when using Angle X X X
Video window control X X X X X
Video widget control X X
Video renderer control (includes OpenGL textures) X X X (only Mac OS) X X X
Audio probe X X
Video Probe X X

Supported camera features by backend

DirectShow (Windows) Media Foundation (Windows) AV Foundation (Mac OS / iOS) GStreamer (Unix) Android BlackBerry
Camera control X X X X X
Video window control X
Video widget control X X
Video renderer control (includes OpenGL textures) X X X X X
ViewFinder settings resolution resolution, framerate, pixel format
Image capture X X X X X
Capture destination File File File, Buffer File, Buffer File, Buffer
Image settings resolution resolution, quality resolution, quality
Zoom X X X
Flash X X X
Focus only focused notification mode, custom point mode, custom point
Exposure Scene mode, compensation, ISO, aperture, ShutterSpeed Scene mode, compensation Scene mode
Image Processing White Balance, Contrast, Brightness, Saturation, White Balance White Balance
Locks Focus Focus, Exposure, White Balance Focus, Exposure, White Balance

Supported recording features by backend

DirectShow (Windows) Media Foundation (Windows) AV Foundation (Mac OS / iOS) GStreamer (Unix) Android BlackBerry
Record camera X X X X
Record audio Fallback to audio backend Fallback to audio backend Fallback to audio backend X X Fallback to audio backend
MetaData writer X
Audio encoder settings X X X
Video encoder settings X X X
Container settings X X

Supported audio decoding features by backend

DirectShow (Windows) Media Foundation (Windows) AV Foundation (Mac OS / iOS) GStreamer (Unix) Android BlackBerry
Decode audio X X

Audio plugins

Audio backends implement QAudioInput, QAudioOutput, QAudioDeviceInfo and QSoundEffect

Here is the list of the current audio backends:

  • Windows Multimedia
  • CoreAudio (Mac OS / iOS)
  • PulseAudio (Unix)
  • Alsa (Unix)
  • OpenSL ES (Android)
  • QNX

PlaylistFormat plugins