File indexing completed on 2025-01-19 03:57:05

0001 /*********************************************************
0002  * Copyright (C) 2021, Val Doroshchuk <valbok@gmail.com> *
0003  *                                                       *
0004  * This file is part of QtAVPlayer.                      *
0005  * Free Qt Media Player based on FFmpeg.                 *
0006  *********************************************************/
0007 
0008 #ifndef QAVFIODEVICE_P_H
0009 #define QAVFIODEVICE_P_H
0010 
0011 #include <QtAVPlayer/qtavplayerglobal.h>
0012 #include <QIODevice>
0013 #include <QSharedPointer>
0014 #include <memory>
0015 
0016 QT_BEGIN_NAMESPACE
0017 
0018 struct AVIOContext;
0019 class QAVIODevicePrivate;
0020 class QAVIODevice : public QObject
0021 {
0022 public:
0023     QAVIODevice(const QSharedPointer<QIODevice> &device, QObject *parent = nullptr);
0024     ~QAVIODevice();
0025 
0026     AVIOContext *ctx() const;
0027     void abort(bool aborted);
0028 
0029     void setBufferSize(size_t size);
0030     size_t bufferSize() const;
0031 
0032 protected:
0033     std::unique_ptr<QAVIODevicePrivate> d_ptr;
0034 
0035 private:
0036     Q_DECLARE_PRIVATE(QAVIODevice)
0037 };
0038 
0039 QT_END_NAMESPACE
0040 
0041 #endif