- 
    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
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);
- 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 |