diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-12-15 15:42:33 +0100 |
---|---|---|
committer | Piotr Srebrny <piotr.srebrny@qt.io> | 2023-01-04 15:35:23 +0100 |
commit | 31411c025a823536c5b4e5da6230eab728bbe344 (patch) | |
tree | e1bebfc6698d03dcc976e73c8ebd9da25e71b6c7 /src/plugins/multimedia/gstreamer/audio/qgstreameraudiodecoder.cpp | |
parent | e98cfba8b1ef3d1c0fa4fccc2f2e12379e16db7b (diff) |
Fix memleak in QGstCaps
gst_device_get_caps and gst_pad_query_caps require decreasing of
reference count when caps are not longer needed. This was not done
with QGstCaps. This patch adds reference counting on QGstCaps and
remove QGstCapsMutable as it was based on a missconception. GstCaps can
be mutated only when refernce count is 1. This was not ensured with
QGstCapsMutable.
Change-Id: Id058a0a916b5f76eef758a099791bec7cc917af9
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
(cherry picked from commit f0ae787ec3d087a8afac45b1473a22c535a44dc3)
Diffstat (limited to 'src/plugins/multimedia/gstreamer/audio/qgstreameraudiodecoder.cpp')
-rw-r--r-- | src/plugins/multimedia/gstreamer/audio/qgstreameraudiodecoder.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/plugins/multimedia/gstreamer/audio/qgstreameraudiodecoder.cpp b/src/plugins/multimedia/gstreamer/audio/qgstreameraudiodecoder.cpp index 0c1b13ebb..5dd6ca7f8 100644 --- a/src/plugins/multimedia/gstreamer/audio/qgstreameraudiodecoder.cpp +++ b/src/plugins/multimedia/gstreamer/audio/qgstreameraudiodecoder.cpp @@ -290,7 +290,7 @@ void QGstreamerAudioDecoder::start() if (m_appSink) { if (mFormat.isValid()) { setAudioFlags(false); - QGstMutableCaps caps = QGstUtils::capsForAudioFormat(mFormat); + auto caps = QGstUtils::capsForAudioFormat(mFormat); gst_app_sink_set_caps(m_appSink, caps.get()); } else { // We want whatever the native audio format is |