47 type(GST_MESSAGE_TYPE(msg)),
48 source(GST_MESSAGE_SRC_NAME(msg)),
53 case GST_MESSAGE_UNKNOWN:
54 throw std::runtime_error(
"Cannot construct message for type unknown");
56 case GST_MESSAGE_ERROR:
58 gst_message_parse_error(
60 &
detail.error_warning_info.error,
61 &
detail.error_warning_info.debug);
64 g_error_free(
detail.error_warning_info.error);
65 g_free(
detail.error_warning_info.debug);
69 case GST_MESSAGE_WARNING:
70 gst_message_parse_warning(
72 &
detail.error_warning_info.error,
73 &
detail.error_warning_info.debug);
76 g_error_free(
detail.error_warning_info.error);
77 g_free(
detail.error_warning_info.debug);
80 case GST_MESSAGE_INFO:
81 gst_message_parse_info(
83 &
detail.error_warning_info.error,
84 &
detail.error_warning_info.debug);
87 g_error_free(
detail.error_warning_info.error);
88 g_free(
detail.error_warning_info.debug);
92 gst_message_parse_tag(
97 gst_tag_list_unref(
detail.tag.tag_list);
100 case GST_MESSAGE_BUFFERING:
101 gst_message_parse_buffering(
103 &
detail.buffering.percent);
105 case GST_MESSAGE_STATE_CHANGED:
106 gst_message_parse_state_changed(
108 &
detail.state_changed.old_state,
109 &
detail.state_changed.new_state,
110 &
detail.state_changed.pending_state);
112 case GST_MESSAGE_STEP_DONE:
113 gst_message_parse_step_done(
119 &
detail.step_done.intermediate,
120 &
detail.step_done.duration,
124 case GST_MESSAGE_CLOCK_PROVIDE:
125 gst_message_parse_clock_provide(
127 &
detail.clock_provide.clock,
128 &
detail.clock_provide.ready);
130 case GST_MESSAGE_CLOCK_LOST:
131 gst_message_parse_clock_lost(
133 &
detail.clock_lost.clock);
135 case GST_MESSAGE_NEW_CLOCK:
136 gst_message_parse_new_clock(
140 case GST_MESSAGE_SEGMENT_START:
141 gst_message_parse_segment_start(
143 &
detail.segment_start.format,
144 &
detail.segment_start.position);
146 case GST_MESSAGE_SEGMENT_DONE:
147 gst_message_parse_segment_done(
149 &
detail.segment_done.format,
150 &
detail.segment_done.position);
152 case GST_MESSAGE_ASYNC_DONE:
153 gst_message_parse_async_done(
155 &
detail.async_done.running_time);
157 case GST_MESSAGE_STEP_START:
158 gst_message_parse_step_start(
160 &
detail.step_start.active,
161 &
detail.step_start.format,
162 &
detail.step_start.amount,
165 &
detail.step_start.intermediate);
167 case GST_MESSAGE_QOS:
168 gst_message_parse_qos(