21 #ifndef QTAV_MediaIO_H 22 #define QTAV_MediaIO_H 26 #include <QtCore/QStringList> 27 #include <QtCore/QObject> 56 static QStringList builtInNames();
63 static MediaIO* createForProtocol(
const QString& protocol);
70 static MediaIO* createForUrl(
const QString& url);
73 virtual QString name()
const = 0;
79 void setUrl(
const QString& url = QString());
91 virtual const QStringList& protocols()
const;
92 virtual bool isSeekable()
const = 0;
98 virtual qint64 read(
char *data, qint64 maxSize) = 0;
103 virtual qint64
write(
const char* data, qint64 maxSize) {
113 virtual bool seek(qint64 offset,
int from = SEEK_SET) = 0;
119 virtual qint64 position()
const = 0;
124 virtual qint64
size()
const = 0;
138 static void registerAll();
139 template<
class C>
static bool Register(MediaIOId
id,
const char* name) {
return Register(
id, create<C>, name);}
140 static MediaIO* create(MediaIOId
id);
141 static MediaIO* create(
const char* name);
147 static MediaIOId* next(MediaIOId*
id = 0);
148 static const char* name(MediaIOId
id);
149 static MediaIOId id(
const char* name);
151 template<
class C>
static MediaIO* create() {
return new C();}
152 typedef MediaIO* (*MediaIOCreator)();
153 static bool Register(MediaIOId
id, MediaIOCreator,
const char *name);
160 virtual void onUrlChanged();
170 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) 171 #include <QtCore/QMetaType> 173 Q_DECLARE_METATYPE(QIODevice*)
175 #endif // QTAV_MediaIO_H
#define Q_AV_EXPORT
Definition: QtAV_Global.h:40
#define DPTR_DECLARE_PRIVATE(Class)
Definition: dptr.h:107
size_t size
Definition: mem.h:207
#define DPTR_DECLARE(Class)
Definition: dptr.h:105
AudioOutput ao; ao.setAudioFormat(fmt); ao.open(); while (has_data) { data = read_data(ao->bufferSize...
Definition: AudioDecoder.h:31
int MediaIOId
MediaIO Built-in io (use MediaIO::create(name), example: MediaIO *qio = MediaIO::create("QIODevice"))...
Definition: MediaIO.h:41
Q_DECL_DEPRECATED typedef MediaIO AVInput
Definition: MediaIO.h:167