00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef QGST_UTILS_APPLICATIONSOURCE_H
00019 #define QGST_UTILS_APPLICATIONSOURCE_H
00020
00021 #include "global.h"
00022 #include "../element.h"
00023 #include "../buffer.h"
00024
00025 namespace QGst {
00026 namespace Utils {
00027
00089 class QTGSTREAMERUTILS_EXPORT ApplicationSource
00090 {
00091 public:
00092 ApplicationSource();
00093 virtual ~ApplicationSource();
00094
00096 ElementPtr element() const;
00097
00099 void setElement(const ElementPtr & appsrc);
00100
00101
00103 CapsPtr caps() const;
00104
00109 void setCaps(const CapsPtr & caps);
00110
00111
00113 quint64 minLatency() const;
00114
00116 quint64 maxLatency() const;
00117
00120 void setLatency(quint64 min, quint64 max);
00121
00122
00125 qint64 size() const;
00126
00129 void setSize(qint64 size);
00130
00131
00133 AppStreamType streamType() const;
00134
00137 void setStreamType(AppStreamType type);
00138
00139
00141 quint64 maxBytes() const;
00142
00146 void setMaxBytes(quint64 max);
00147
00148
00151 bool blockEnabled() const;
00152
00155 void enableBlock(bool enable);
00156
00157
00159 bool isLive() const;
00160
00162 void setLive(bool islive);
00163
00164
00167 uint minPercent() const;
00168
00171 void setMinPercent(uint min);
00172
00173
00174 Format format() const;
00175 void setFormat(Format f);
00176
00177
00185 FlowReturn pushBuffer(const BufferPtr & buffer);
00186
00193 FlowReturn endOfStream();
00194
00195 protected:
00199 virtual void needData(uint length);
00200
00204 virtual void enoughData();
00205
00209 virtual bool seekData(quint64 offset);
00210
00211 private:
00212
00213 virtual void reservedVirtual1() {}
00214 virtual void reservedVirtual2() {}
00215 virtual void reservedVirtual3() {}
00216 virtual void reservedVirtual4() {}
00217
00218 private:
00219 struct Priv;
00220 friend struct Priv;
00221 Priv *const d;
00222 Q_DISABLE_COPY(ApplicationSource)
00223 };
00224
00225 }
00226 }
00227
00228 #endif // QGST_UTILS_APPLICATIONSOURCE_H