Details
-
Sub-task
-
Resolution: Done
-
P2: Important
-
None
Description
As a part of making multimedia API more component oriented, need to remove dependencies.
Currently QGraphicsVideoItem, QVideoWidget, QML VideoOutput components depend on QMediaPlayer and QMediaService. (While QMediaPlayer also depends on QMediaService),
and not possible to use them without QMediaService.
These objects (called as video outputs in terms of QMediaPlayer) are not theoretically related to backends, need to make them usable without QMediaService.
Motivation:
1. There are 2 ways how to render video: native window and video frames.
2. There are 3 layers: renderers/consumers <=> the pipeline controls <=> video producers/backends.
3. QVideoWidget and VideoOutput both support native windows and video frames. QGraphicsVideoItem supports only video frames.
4. There is API to handle video frames that called QAbstractVideoSurface. All of these components and backends use it.
QAbstractVideoSurface might be used to link all components together without tight dependency.
All rendering components might provide the video surface to the pipeline controls, which will proxy it to video producers.
Anyway this is how it is implemented today, but internally.
Suggesting to allow users to explicitly control this.
Attachments
Issue Links
- relates to
-
QTBUG-32939 multiple VideoOutput QML elements with same source don't work
- Closed
For Gerrit Dashboard: QTBUG-80431 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
278610,40 | Expose video surfaces in rendering components | 5.15 | qt/qtmultimedia | Status: MERGED | +2 | 0 |