Details
-
Task
-
Resolution: Done
-
P3: Somewhat important
-
None
-
None
-
None
-
27e3fa054 (dev), 37e7b776b (6.8)
-
Multimedia wk 39-40, Multimedia wk 41-42, Multimedia wk 43-44
Description
gstreamer provides a high-level API to obtain metadata. https://gstreamer.freedesktop.org/documentation/pbutils/gstdiscoverer.html?gi-language=c
We should add a private API to wrap this API, as it allows improvements to QMediaPlayer.
struct QGstDiscovererStreamInfo { int streamNumber{}; QString streamID; QGstTagListHandle tags; QGstCaps caps; }; struct QGstDiscovererVideoInfo : QGstDiscovererStreamInfo { QSize size; int bitDepth{}; Fraction framerate{}; Fraction pixelAspectRatio{}; bool isInterlaced{}; int bitrate{}; int maxBitrate{}; bool isImage{}; }; struct QGstDiscovererAudioInfo : QGstDiscovererStreamInfo { int channels{}; uint64_t channelMask{}; int sampleRate{}; int bitsPerSample{}; int bitrate{}; int maxBitrate{}; QLocale::Language language{}; }; struct QGstDiscovererSubtitleInfo : QGstDiscovererStreamInfo { QLocale::Language language{}; }; struct QGstDiscovererContainerInfo : QGstDiscovererStreamInfo { QGstTagListHandle tags; }; struct QGstDiscovererInfo { bool isLive{}; bool isSeekable{}; std::optional<std::chrono::nanoseconds> duration; std::optional<QGstDiscovererContainerInfo> containerInfo; QGstTagListHandle tags; std::vector<QGstDiscovererVideoInfo> videoStreams; std::vector<QGstDiscovererAudioInfo> audioStreams; std::vector<QGstDiscovererSubtitleInfo> subtitleStreams; std::vector<QGstDiscovererContainerInfo> containerStreams; }; ---- QGstDiscoverer discoverer; QGstDiscovererInfo result = discoverer.discover(aUrl);
Attachments
Issue Links
- depends on
-
QTBUG-129467 [gstreamer] Replace appsrc via uri handler
-
- Closed
-
For Gerrit Dashboard: QTBUG-129466 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
588329,18 | GStreamer: introduce discoverer API use | dev | qt/qtmultimedia | Status: MERGED | +2 | -1 |
602808,2 | GStreamer: introduce discoverer API use | 6.8 | qt/qtmultimedia | Status: MERGED | +2 | 0 |