/usr/include/Qt5GStreamer/QGst/message.h is in libqt5gstreamer-dev 1.2.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | /*
Copyright (C) 2009-2010 George Kiagiadakis <kiagiadakis.george@gmail.com>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef QGST_MESSAGE_H
#define QGST_MESSAGE_H
#include "clocktime.h"
#include "miniobject.h"
#include "structure.h"
#include "taglist.h"
namespace QGst {
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for GstMessage
*
* Messages are lightweight objects to signal the application of pipeline events. They
* are posted by objects in the pipeline and are passed to the application using the Bus.
*
* Messages are implemented as a subclass of MiniObject with a generic GstStructure as the
* content. This allows for writing custom messages without requiring an API change while
* allowing a wide range of different types of messages.
*
* In these bindings, for convenience, each message type has its own Message subclass. This
* does not reflect 1-1 the native C API, where there is only one Message class with tens of
* 'new_foo' and 'parse_foo' methods. You can use RefPointer::dynamicCast() to cast a MessagePtr
* to a RefPointer of one of the Message subclasses and it will behave as expected (i.e. it will
* only succeed if the message type matches the message type that the subclass handles). Note
* however that the Message subclasses \em cannot be used with Value::get(), since a GValue
* will actually contain a GstMessage (the subclasses do not exist in C) and Value::get()
* is not able to do dynamic casts. As a result of that, Message subclasses also \em cannot be
* used as arguments in slots connected to GObject signals, even though you may know that your
* slot will only be called with that type of message.
*/
class QTGSTREAMER_EXPORT Message : public MiniObject
{
QGST_WRAPPER(Message)
public:
ObjectPtr source() const;
quint64 timestamp() const;
QString typeName() const;
MessageType type() const;
StructureConstPtr internalStructure();
quint32 sequenceNumber() const;
void setSequenceNumber(quint32 num);
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageEos
*/
class QTGSTREAMER_EXPORT EosMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Eos, Message)
public:
static EosMessagePtr create(const ObjectPtr & source);
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageError
*/
class QTGSTREAMER_EXPORT ErrorMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Error, Message)
public:
static ErrorMessagePtr create(const ObjectPtr & source,
const QGlib::Error & error, const char *debug);
QGlib::Error error() const;
QString debugMessage() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageWarning
*/
class QTGSTREAMER_EXPORT WarningMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Warning, Message)
public:
static WarningMessagePtr create(const ObjectPtr & source,
const QGlib::Error & error, const char *debug);
QGlib::Error error() const;
QString debugMessage() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageInfo
*/
class QTGSTREAMER_EXPORT InfoMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Info, Message)
public:
static InfoMessagePtr create(const ObjectPtr & source,
const QGlib::Error & error, const char *debug);
QGlib::Error error() const;
QString debugMessage() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageTag
*/
class QTGSTREAMER_EXPORT TagMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Tag, Message)
public:
static TagMessagePtr create(const ObjectPtr & source, const TagList & taglist);
TagList taglist() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageBuffering
*/
class QTGSTREAMER_EXPORT BufferingMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Buffering, Message)
public:
static BufferingMessagePtr create(const ObjectPtr & source, int percent);
int percent() const;
BufferingMode mode() const;
int averageInputRate() const;
int averageOutputRate() const;
qint64 bufferingTimeLeft() const;
void setStats(BufferingMode mode, int avgIn, int avgOut, qint64 bufferingLeft);
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageStateChanged
*/
class QTGSTREAMER_EXPORT StateChangedMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(StateChanged, Message)
public:
static StateChangedMessagePtr create(const ObjectPtr & source,
State oldState, State newState, State pending);
State oldState() const;
State newState() const;
State pendingState() const;
};
//won't do: STATE_DIRTY (deprecated)
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageStepDone
*/
class QTGSTREAMER_EXPORT StepDoneMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(StepDone, Message)
public:
static StepDoneMessagePtr create(const ObjectPtr & source, Format format, quint64 amount,
double rate, bool flush, bool intermediate, quint64 duration, bool eos);
Format format() const;
quint64 amount() const;
double rate() const;
bool isFlushingStep() const;
bool isIntermediateStep() const;
quint64 duration() const;
bool causedEos() const;
};
//TODO CLOCK_PROVIDE, CLOCK_LOST, NEW_CLOCK
//maybe do: STRUCTURE_CHANGE (internal)
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageStreamStatus
*/
class QTGSTREAMER_EXPORT StreamStatusMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(StreamStatus, Message)
public:
static StreamStatusMessagePtr create(const ObjectPtr & source,
StreamStatusType type, const ElementPtr & owner);
StreamStatusType statusType() const;
ElementPtr owner() const;
QGlib::Value streamStatusObject() const;
void setStreamStatusObject(const QGlib::Value & object);
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageApplication
*/
class QTGSTREAMER_EXPORT ApplicationMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Application, Message)
public:
static ApplicationMessagePtr create(const ObjectPtr & source,
const Structure & structure = Structure());
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageElement
*/
class QTGSTREAMER_EXPORT ElementMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Element, Message)
public:
static ElementMessagePtr create(const ObjectPtr & source,
const Structure & structure = Structure());
};
//maybe do: SEGMENT_START (internal)
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageSegmentDone
*/
class QTGSTREAMER_EXPORT SegmentDoneMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(SegmentDone, Message)
public:
static SegmentDoneMessagePtr create(const ObjectPtr & source, Format format, qint64 position);
Format format() const;
qint64 position() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageDuration
*/
class QTGSTREAMER_EXPORT DurationChangedMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(DurationChanged, Message)
public:
static DurationChangedMessagePtr create(const ObjectPtr & source);
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageLatency
*/
class QTGSTREAMER_EXPORT LatencyMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Latency, Message)
public:
static LatencyMessagePtr create(const ObjectPtr & source);
};
//maybe do: ASYNC_START (internal)
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageAsyncDone
*/
class QTGSTREAMER_EXPORT AsyncDoneMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(AsyncDone, Message)
public:
static AsyncDoneMessagePtr create(const ObjectPtr & source, ClockTime running_time);
ClockTime runningTime() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageRequestState
*/
class QTGSTREAMER_EXPORT RequestStateMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(RequestState, Message)
public:
static RequestStateMessagePtr create(const ObjectPtr & source, State state);
State state() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageStepStart
*/
class QTGSTREAMER_EXPORT StepStartMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(StepStart, Message)
public:
static StepStartMessagePtr create(const ObjectPtr & source, bool active, Format format,
quint64 amount, double rate, bool flush, bool intermediate);
bool isActive() const;
Format format() const;
quint64 amount() const;
double rate() const;
bool isFlushingStep() const;
bool isIntermediateStep() const;
};
/*! \headerfile message.h <QGst/Message>
* \brief Wrapper class for messages of type QGst::MessageQos
*/
class QTGSTREAMER_EXPORT QosMessage : public Message
{
QGST_WRAPPER_FAKE_SUBCLASS(Qos, Message)
public:
static QosMessagePtr create(const ObjectPtr & source, bool live, quint64 runningTime,
quint64 streamTime, quint64 timestamp, quint64 duration);
bool live() const;
quint64 runningTime() const;
quint64 streamTime() const;
quint64 timestamp() const;
quint64 duration() const;
qint64 jitter() const;
double proportion() const;
int quality() const;
void setValues(qint64 jitter, double proportion, int quality);
Format format() const;
quint64 processed() const;
quint64 dropped() const;
void setStats(Format format, quint64 processed, quint64 dropped);
};
} //namespace QGst
QGST_REGISTER_TYPE(QGst::Message)
QGST_REGISTER_SUBCLASS(Message, Eos)
QGST_REGISTER_SUBCLASS(Message, Error)
QGST_REGISTER_SUBCLASS(Message, Warning)
QGST_REGISTER_SUBCLASS(Message, Info)
QGST_REGISTER_SUBCLASS(Message, Tag)
QGST_REGISTER_SUBCLASS(Message, Buffering)
QGST_REGISTER_SUBCLASS(Message, StateChanged)
QGST_REGISTER_SUBCLASS(Message, StepDone)
QGST_REGISTER_SUBCLASS(Message, StreamStatus)
QGST_REGISTER_SUBCLASS(Message, Application)
QGST_REGISTER_SUBCLASS(Message, Element)
QGST_REGISTER_SUBCLASS(Message, SegmentDone)
QGST_REGISTER_SUBCLASS(Message, DurationChanged)
QGST_REGISTER_SUBCLASS(Message, Latency)
QGST_REGISTER_SUBCLASS(Message, AsyncDone)
QGST_REGISTER_SUBCLASS(Message, RequestState)
QGST_REGISTER_SUBCLASS(Message, StepStart)
QGST_REGISTER_SUBCLASS(Message, Qos)
#endif
|