22 #ifndef QTAV_AVPLAYER_H 23 #define QTAV_AVPLAYER_H 26 #include <QtCore/QHash> 27 #include <QtCore/QScopedPointer> 65 Q_PROPERTY(
bool relativeTimeMode READ relativeTimeMode WRITE setRelativeTimeMode NOTIFY relativeTimeModeChanged)
66 Q_PROPERTY(
bool autoLoad READ isAutoLoad WRITE setAutoLoad NOTIFY autoLoadChanged)
67 Q_PROPERTY(
bool asyncLoad READ isAsyncLoad WRITE setAsyncLoad NOTIFY asyncLoadChanged)
68 Q_PROPERTY(qreal bufferProgress READ bufferProgress NOTIFY bufferProgressChanged)
69 Q_PROPERTY(
bool seekable READ isSeekable NOTIFY seekableChanged)
70 Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged)
71 Q_PROPERTY(qint64 position READ position WRITE setPosition NOTIFY positionChanged)
72 Q_PROPERTY(qint64 startPosition READ startPosition WRITE setStartPosition NOTIFY startPositionChanged)
73 Q_PROPERTY(qint64 stopPosition READ stopPosition WRITE setStopPosition NOTIFY stopPositionChanged)
74 Q_PROPERTY(qint64 repeat READ repeat WRITE setRepeat NOTIFY repeatChanged)
75 Q_PROPERTY(
int currentRepeat READ currentRepeat NOTIFY currentRepeatChanged)
76 Q_PROPERTY(qint64 interruptTimeout READ interruptTimeout WRITE setInterruptTimeout NOTIFY interruptTimeoutChanged)
77 Q_PROPERTY(
bool interruptOnTimeout READ isInterruptOnTimeout WRITE setInterruptOnTimeout NOTIFY interruptOnTimeoutChanged)
78 Q_PROPERTY(
int notifyInterval READ notifyInterval WRITE setNotifyInterval NOTIFY notifyIntervalChanged)
79 Q_PROPERTY(
int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged)
80 Q_PROPERTY(
int contrast READ contrast WRITE setContrast NOTIFY contrastChanged)
81 Q_PROPERTY(
int saturation READ saturation WRITE setSaturation NOTIFY saturationChanged)
82 Q_PROPERTY(
State state READ state WRITE setState NOTIFY stateChanged)
83 Q_PROPERTY(
QtAV::
MediaStatus mediaStatus READ mediaStatus NOTIFY mediaStatusChanged)
84 Q_PROPERTY(
QtAV::MediaEndAction mediaEndAction READ mediaEndAction WRITE setMediaEndAction NOTIFY mediaEndActionChanged)
98 static const QStringList& supportedProtocols();
100 explicit AVPlayer(QObject *parent = 0);
117 void setFile(
const QString& path);
118 QString file()
const;
123 void setIODevice(QIODevice* device);
131 bool isLoaded()
const;
136 void setAsyncLoad(
bool value =
true);
137 bool isAsyncLoad()
const;
145 void setAutoLoad(
bool value =
true);
146 bool isAutoLoad()
const;
157 bool relativeTimeMode()
const;
159 qint64 absoluteMediaStartPosition()
const;
160 qreal durationF()
const;
161 qint64 duration()
const;
166 qint64 mediaStartPosition()
const;
168 qint64 mediaStopPosition()
const;
169 qreal mediaStartPositionF()
const;
170 qreal mediaStopPositionF()
const;
172 qint64 startPosition()
const;
178 qint64 stopPosition()
const;
179 qint64 position()
const;
182 int currentRepeat()
const;
193 bool setExternalAudio(
const QString& file);
194 QString externalAudio()
const;
202 const QVariantList& externalAudioTracks()
const;
203 const QVariantList& internalAudioTracks()
const;
211 bool setAudioStream(
const QString& file,
int n = 0);
224 bool setAudioStream(
int n);
226 bool setVideoStream(
int n);
235 const QVariantList& internalSubtitleTracks()
const;
236 bool setSubtitleStream(
int n);
237 int currentAudioStream()
const;
238 int currentVideoStream()
const;
239 int currentSubtitleStream()
const;
240 int audioStreamCount()
const;
241 int videoStreamCount()
const;
242 int subtitleStreamCount()
const;
254 void play(
const QString& path);
255 bool isPlaying()
const;
256 bool isPaused()
const;
264 void setState(
State value);
269 void clearVideoRenderers();
272 QList<VideoRenderer*> videoOutputs();
285 void setSpeed(qreal speed);
294 void setInterruptTimeout(qint64 ms);
296 qint64 interruptTimeout()
const;
301 void setInterruptOnTimeout(
bool value);
302 bool isInterruptOnTimeout()
const;
312 void setFrameRate(qreal value);
313 qreal forcedFrameRate()
const;
324 bool installFilter(
AudioFilter* filter,
int index = 0x7FFFFFFF);
325 bool installFilter(
VideoFilter* filter,
int index = 0x7FFFFFFF);
328 QList<Filter*> audioFilters()
const;
329 QList<Filter*> videoFilters()
const;
336 void setPriority(
const QVector<VideoDecoderId>& ids);
342 void setVideoDecoderPriority(
const QStringList& names);
343 QStringList videoDecoderPriority()
const;
351 int brightness()
const;
352 int contrast()
const;
354 int saturation()
const;
363 void setOptionsForFormat(
const QVariantHash &dict);
364 QVariantHash optionsForFormat()
const;
377 void setOptionsForAudioCodec(
const QVariantHash &dict);
378 QVariantHash optionsForAudioCodec()
const;
379 void setOptionsForVideoCodec(
const QVariantHash& dict);
380 QVariantHash optionsForVideoCodec()
const;
388 MediaEndAction mediaEndAction()
const;
389 void setMediaEndAction(MediaEndAction value);
402 void pause(
bool p =
true);
424 void setRelativeTimeMode(
bool value);
432 void setRepeat(
int max);
445 void setStartPosition(qint64 pos);
452 void setStopPosition(qint64 pos = std::numeric_limits<qint64>::max());
457 void setTimeRange(qint64 start, qint64 stop = std::numeric_limits<qint64>::max());
459 bool isSeekable()
const;
465 void setPosition(qint64 position);
467 void seek(qint64 pos);
478 qreal bufferProgress()
const;
484 qreal bufferSpeed()
const;
489 qint64 buffered()
const;
498 void setBufferValue(qint64 value);
499 int bufferValue()
const;
506 void setNotifyInterval(
int msec);
508 int notifyInterval()
const;
509 void updateClock(qint64 msecs);
511 void setBrightness(
int val);
512 void setContrast(
int val);
513 void setHue(
int val);
514 void setSaturation(
int val);
517 void bufferProgressChanged(qreal);
518 void relativeTimeModeChanged();
519 void autoLoadChanged();
520 void asyncLoadChanged();
522 void sourceChanged();
525 void mediaEndActionChanged(QtAV::MediaEndAction action);
529 void durationChanged(qint64);
538 void stoppedAt(qint64 position);
540 void speedChanged(qreal speed);
541 void repeatChanged(
int r);
542 void currentRepeatChanged(
int r);
543 void startPositionChanged(qint64 position);
544 void stopPositionChanged(qint64 position);
545 void seekableChanged();
551 void seekFinished(qint64 position);
552 void positionChanged(qint64 position);
553 void interruptTimeoutChanged();
554 void interruptOnTimeoutChanged();
555 void notifyIntervalChanged();
556 void brightnessChanged(
int val);
557 void contrastChanged(
int val);
558 void hueChanged(
int val);
559 void saturationChanged(
int val);
560 void subtitleStreamChanged(
int value);
565 void internalAudioTracksChanged(
const QVariantList& tracks);
566 void externalAudioTracksChanged(
const QVariantList& tracks);
567 void internalSubtitleTracksChanged(
const QVariantList& tracks);
573 void internalSubtitleHeaderRead(
const QByteArray& codec,
const QByteArray& data);
574 void internalSubtitlePacketRead(
int track,
const QtAV::Packet& packet);
578 void stopFromDemuxerThread();
579 void aboutToQuitApp();
581 void startNotifyTimer();
582 void stopNotifyTimer();
585 void onSeekFinished(qint64 value);
586 void tryClearVideoRenderers();
589 virtual void timerEvent(QTimerEvent *);
596 qint64 normalizedPosition(qint64 pos);
598 QScopedPointer<Private> d;
602 #endif // QTAV_AVPLAYER_H
#define Q_AV_EXPORT
Definition: QtAV_Global.h:40
Definition: VideoCapture.h:34
State
The State enum The playback state.
Definition: AVPlayer.h:91
Definition: AudioOutput.h:45
Definition: AVPlayer.h:92
SeekType
Definition: QtAV_Global.h:114
BufferMode
Definition: QtAV_Global.h:96
The AVPlayer class Preload:
Definition: AVPlayer.h:62
Definition: AVPlayer.h:93
Definition: Statistics.h:35
AudioOutput ao; ao.setAudioFormat(fmt); ao.open(); while (has_data) { data = read_data(ao->bufferSize...
Definition: AudioDecoder.h:31
MediaStatus
Definition: QtAV_Global.h:83
Definition: VideoRenderer.h:51