示例#1
0
	void SourceObject::handleMessage (GstMessage_ptr msgPtr)
	{
		const auto message = msgPtr.get ();

		AsyncHandlers_ (message);

		switch (GST_MESSAGE_TYPE (message))
		{
		case GST_MESSAGE_ERROR:
			HandleErrorMsg (message);
			break;
		case GST_MESSAGE_TAG:
			HandleTagMsg (message);
			break;
		case GST_MESSAGE_NEW_CLOCK:
		case GST_MESSAGE_ASYNC_DONE:
			break;
		case GST_MESSAGE_BUFFERING:
			HandleBufferingMsg (message);
			break;
		case GST_MESSAGE_STATE_CHANGED:
			HandleStateChangeMsg (message);
			break;
		case GST_MESSAGE_DURATION:
			QTimer::singleShot (0,
					this,
					SLOT (updateTotalTime ()));
			break;
		case GST_MESSAGE_ELEMENT:
			HandleElementMsg (message);
			break;
		case GST_MESSAGE_EOS:
			HandleEosMsg (message);
			break;
		case GST_MESSAGE_STREAM_STATUS:
			HandleStreamStatusMsg (message);
			break;
		case GST_MESSAGE_WARNING:
			HandleWarningMsg (message);
			break;
		case GST_MESSAGE_LATENCY:
			gst_bin_recalculate_latency (GST_BIN (Dec_));
			break;
		case GST_MESSAGE_QOS:
			break;
#if GST_VERSION_MAJOR >= 1
		case GST_MESSAGE_STREAM_START:
			setActualSource (CurrentSource_);
			emit currentSourceChanged (CurrentSource_);
			break;
#endif
		default:
			qDebug () << Q_FUNC_INFO << GST_MESSAGE_TYPE (message);
			break;
		}
	}
示例#2
0
	void RgAnalyser::handleMessage (GstMessage_ptr msgPtr)
	{
		const auto message = msgPtr.get ();

		switch (GST_MESSAGE_TYPE (message))
		{
		case GST_MESSAGE_TAG:
			HandleTagMsg (message);
			break;
		case GST_MESSAGE_ERROR:
			HandleErrorMsg (message);
			break;
		case GST_MESSAGE_EOS:
			HandleEosMsg (message);
			break;
		default:
			break;
		}
	}