Skip to content
Snippets Groups Projects
Commit da5d0412 authored by Andreas Traczyk's avatar Andreas Traczyk
Browse files

videoprovider: do not remove the FrameObject when unsubscribing

The end of the lifetime of the FrameObject should be determined by the underlying renderer.

Change-Id: I91026764a20a8451d6e71ffa98ee8cbea55272c4
parent 5a48bccd
No related branches found
No related tags found
No related merge requests found
......@@ -103,27 +103,16 @@ VideoProvider::subscribe(QObject* obj, const QString& id)
void
VideoProvider::unsubscribe(QObject* obj)
{
QString id;
renderersMutex_.lockForRead();
QReadLocker lk(&renderersMutex_);
for (auto& pair : renderers_) {
QWriteLocker lock(&pair.second.subscribersMutex);
if (pair.second.subscribers.remove(static_cast<QVideoSink*>(obj))) {
qDebug().noquote() << QString("Removed sink: 0x%1 from subscribers for id: %2")
.arg((quintptr) obj, QT_POINTER_SIZE, 16, QChar('0'))
.arg(pair.first);
if (!pair.second.active && pair.second.subscribers.isEmpty())
id = pair.first;
break;
return;
}
}
renderersMutex_.unlock();
if (!id.isEmpty()) {
renderersMutex_.lockForWrite();
renderers_.erase(id);
renderersMutex_.unlock();
}
}
QString
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment