Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.6.1
-
None
-
Ubuntu 16.10, Qt 5.6.1 from repo, and same builder from sources, GStreamer 1.0 from repo.
-
f6838120ead0361463c800c25a711b799fae29ee
Description
Hello!
When I use QCamera and USB Web camera, and if there are any delays in the main thread (the GUI thread). I have this message in the console, and stop the video playback.
CameraBin error: "Internal data flow error."
There is no call any slots, not caused stateChanged, statusChanged, QCamera :: Error (QCamera :: error). Ie, there is no way to handle this situation, and start the camera again. The situation occurs 1 minute after loading Unity, if the program is started, also when the GUI thread has some delay for more than 1 second, also when entering or exiting the Suspend mode.
In code this point:
/plugin/gstreamer/camerabin/camerabinsession.cpp:
Bool CameraBinSession :: processBusMessage (const QGstreamerMessage & message)
{
GstMessage * gm = message.rawMessage ();
If (gm) {
If (GST_MESSAGE_TYPE (gm) == GST_MESSAGE_ERROR) {
GError * err;
Gchar * debug;
Gst_message_parse_error (gm, & err, & debug);
QString message;
If (err && err-> message)
{ Message = QString :: fromUtf8 (err-> message); QWarning () << "CameraBin error:" << message; }// !!! Actually, this condition is not fulfilled, as a result of which an error is not set:
// only report error messager from camerabin
If (GST_MESSAGE_SRC (gm) == GST_OBJECT_CAST (m_camerabin))