Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
mfaudiodecodercontrol_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef MFAUDIODECODERCONTROL_H
5#define MFAUDIODECODERCONTROL_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
19#include <private/qplatformaudiodecoder_p.h>
20#include <sourceresolver_p.h>
21#include <private/qwindowsresampler_p.h>
22
24
26{
28public:
31
32 QUrl source() const override { return m_source; }
33 void setSource(const QUrl &fileName) override;
34
35 QIODevice* sourceDevice() const override { return m_device; }
36 void setSourceDevice(QIODevice *device) override;
37
38 void start() override;
39 void stop() override;
40
41 QAudioFormat audioFormat() const override { return m_outputFormat; }
42 void setAudioFormat(const QAudioFormat &format) override;
43
44 QAudioBuffer read() override;
45 bool bufferAvailable() const override { return m_audioBuffer.sampleCount() > 0; }
46
47 qint64 position() const override { return m_position; }
48 qint64 duration() const override { return m_duration; }
49
50private Q_SLOTS:
52 void handleMediaSourceError(long hr);
53 void handleNewSample(ComPtr<IMFSample>);
54 void handleSourceFinished();
55
56private:
57 void startReadingSource(IMFMediaSource *source);
58
59 std::unique_ptr<MFDecoderSourceReader> m_decoderSourceReader;
60 SourceResolver *m_sourceResolver;
61 QWindowsResampler m_resampler;
62 QUrl m_source;
63 QIODevice *m_device = nullptr;
64 QAudioFormat m_outputFormat;
65 QAudioBuffer m_audioBuffer;
66 qint64 m_duration = -1;
67 qint64 m_position = -1;
68 bool m_loadingSource = false;
69 bool m_deferredStart = false;
70};
71
72QT_END_NAMESPACE
73
74#endif//MFAUDIODECODERCONTROL_H
qint64 duration() const override
void setAudioFormat(const QAudioFormat &format) override
bool bufferAvailable() const override
QUrl source() const override
void setSourceDevice(QIODevice *device) override
QAudioFormat audioFormat() const override
QAudioBuffer read() override
qint64 position() const override
QIODevice * sourceDevice() const override
bool streamPlaybackSupported() const override
bool isAudioAvailable() const override
void handleError(QMediaPlayer::Error errorCode, const QString &errorString, bool isFatal)
qreal playbackRate() const override
QMediaPlayer::PlaybackState state() const override
QMediaMetaData metaData() const override
const QIODevice * mediaStream() const override
void pause() override
void setActiveTrack(TrackType type, int index) override
void setAudioOutput(QPlatformAudioOutput *output) override
QMediaMetaData trackMetaData(TrackType type, int trackNumber) override
void setPlaybackRate(qreal rate) override
void setMedia(const QUrl &media, QIODevice *stream) override
void play() override
QMediaPlayer::MediaStatus mediaStatus() const override
int activeTrack(TrackType type) override
QUrl media() const override
QMediaTimeRange availablePlaybackRanges() const override
MFPlayerControl(QMediaPlayer *player)
float bufferProgress() const override
void setVideoSink(QVideoSink *sink) override
bool isVideoAvailable() const override
void handleSeekableUpdate(bool seekable)
qint64 duration() const override
qint64 position() const override
void handleDurationUpdate(qint64 duration)
int trackCount(TrackType type) override
void setPosition(qint64 position) override
bool isSeekable() const override
void stop() override
The QAudioFormat class stores audio stream parameter information.
int capture(const QString &fileName) override
virtual ~QWindowsImageCapture()
QImageEncoderSettings imageSettings() const override
void setImageSettings(const QImageEncoderSettings &settings) override
void setCaptureSession(QPlatformMediaCaptureSession *session)
bool isReadyForCapture() const override
QPlatformImageCapture * imageCapture() override
void setCamera(QPlatformCamera *camera) override
void setAudioInput(QPlatformAudioInput *) override
QPlatformCamera * camera() override
QPlatformMediaRecorder * mediaRecorder() override
void setImageCapture(QPlatformImageCapture *imageCapture) override
void setAudioOutput(QPlatformAudioOutput *output) override
void setMediaRecorder(QPlatformMediaRecorder *recorder) override
QWindowsMediaDeviceSession * session() const
void setMetaData(const QMediaMetaData &metaData) override
QMediaRecorder::RecorderState state() const override
void setCaptureSession(QPlatformMediaCaptureSession *session)
QMediaMetaData metaData() const override
bool isLocationWritable(const QUrl &location) const override
qint64 duration() const override
void record(QMediaEncoderSettings &settings) override
QPlatformMediaFormatInfo * createFormatInfo() override
QMaybe< QPlatformCamera * > createCamera(QCamera *camera) override
QMaybe< QPlatformMediaRecorder * > createRecorder(QMediaRecorder *recorder) override
QMaybe< QPlatformMediaCaptureSession * > createCaptureSession() override
QPlatformVideoDevices * createVideoDevices() override
QMaybe< QPlatformMediaPlayer * > createPlayer(QMediaPlayer *parent) override
QMaybe< QPlatformImageCapture * > createImageCapture(QImageCapture *imageCapture) override
QMaybe< QPlatformVideoSink * > createVideoSink(QVideoSink *sink) override
QMaybe< QPlatformAudioDecoder * > createAudioDecoder(QAudioDecoder *decoder) override
Combined button and popup list for selecting options.