19 #ifndef GSTREAMER_BUS_H_
20 #define GSTREAMER_BUS_H_
22 #include <core/property.h>
26 #include <boost/flyweight.hpp>
46 type(GST_MESSAGE_TYPE(msg)),
47 source(GST_MESSAGE_SRC_NAME(msg)),
52 case GST_MESSAGE_UNKNOWN:
53 throw std::runtime_error(
"Cannot construct message for type unknown");
55 case GST_MESSAGE_ERROR:
57 gst_message_parse_error(
68 case GST_MESSAGE_WARNING:
69 gst_message_parse_warning(
79 case GST_MESSAGE_INFO:
80 gst_message_parse_info(
91 gst_message_parse_tag(
99 case GST_MESSAGE_BUFFERING:
100 gst_message_parse_buffering(
104 case GST_MESSAGE_STATE_CHANGED:
105 gst_message_parse_state_changed(
111 case GST_MESSAGE_STEP_DONE:
112 gst_message_parse_step_done(
123 case GST_MESSAGE_CLOCK_PROVIDE:
124 gst_message_parse_clock_provide(
129 case GST_MESSAGE_CLOCK_LOST:
130 gst_message_parse_clock_lost(
134 case GST_MESSAGE_NEW_CLOCK:
135 gst_message_parse_new_clock(
139 case GST_MESSAGE_SEGMENT_START:
140 gst_message_parse_segment_start(
145 case GST_MESSAGE_SEGMENT_DONE:
146 gst_message_parse_segment_done(
151 case GST_MESSAGE_ASYNC_DONE:
152 gst_message_parse_async_done(
156 case GST_MESSAGE_STEP_START:
157 gst_message_parse_step_start(
166 case GST_MESSAGE_QOS:
167 gst_message_parse_qos(
278 auto thiz =
static_cast<Bus*
>(data);
280 thiz->on_new_message(message);
288 throw std::runtime_error(
"Cannot create Bus instance if underlying instance is NULL.");
290 gst_bus_set_sync_handler(
299 gst_object_unref(
bus);
307 #endif // GSTREAMER_BUS_H_
core::Signal< Message > on_new_message
struct gstreamer::Bus::Message::Detail::@10 async_done
struct gstreamer::Bus::Message::Detail::@2 buffering_stats
struct gstreamer::Bus::Message::Detail::@5 clock_provide
struct gstreamer::Bus::Message::Detail::@9 segment_done
static GstBusSyncReply sync_handler(GstBus *bus, GstMessage *msg, gpointer data)
struct gstreamer::Bus::Message::Detail::@1 buffering
struct gstreamer::Bus::Message::Detail::@4 step_done
union gstreamer::Bus::Message::Detail detail
struct gstreamer::Bus::Message::Detail::@3 step_start
struct gstreamer::Bus::Message::Detail::@7 clock_new
std::function< void()> cleanup
struct gstreamer::Bus::Message::Detail::Tag tag
boost::flyweight< std::string > source
struct gstreamer::Bus::Message::Detail::ErrorWarningInfo error_warning_info
struct gstreamer::Bus::Message::Detail::@6 clock_lost
GstClockTime running_time
GstBufferingMode buffering_mode
struct gstreamer::Bus::Message::Detail::@8 segment_start
struct gstreamer::Bus::Message::Detail::StateChanged state_changed
struct gstreamer::Bus::Message::Detail::@11 qos