PDA

View Full Version : Memory leak in QTGstreamer 0.10



Monalisa
19th February 2014, 06:29
I am using QTGstreamer in my application to play media files of .webm & .flv formats. The movies of length 5-10 secs play in a loop continuously.
I have observed huge memory leak while playing these small movies. Instead if I play a long (approx 1 hour) movie, the leak is almost negligible.
Please suggest some solution.

stampede
19th February 2014, 08:04
Show some relevant code or post an example that we can compile and reproduce this issue.

Monalisa
19th February 2014, 09:07
mediaapp.cpp:


MediaApp::MediaApp(QWidget *parent)
: QWidget(parent)
{
//create the player
m_player = new Player(this);
connect(m_player, SIGNAL(stateChanged()), this, SLOT(onStateChanged()));

//create the UI
QVBoxLayout *appLayout = new QVBoxLayout;
appLayout->setContentsMargins(0, 0, 0, 0);
appLayout->addWidget(m_player);

setLayout(appLayout);
}

void MediaApp :: openFile(const QString & fileName)
{
m_player->stop();
m_player->setUri(fileName);
m_player->play();
}


player.cpp:


Player :: Player(QWidget *parent)
: QGst :: Ui :: VideoWidget(parent)
{
}


void Player :: setUri(const QString & uri)
{
QString realUri = uri;

//if uri is not a real uri, assume it is a file path
if (realUri.indexOf("://") < 0) {
realUri = QUrl :: fromLocalFile(realUri).toEncoded();
}

if (!m_pipeline)
{
m_pipeline = QGst :: ElementFactory :: make("playbin2").dynamicCast<QGst :: Pipeline>();
if (m_pipeline)
{
//let the video widget watch the pipeline for new video sinks
watchPipeline(m_pipeline);
//watch the bus for messages
QGst :: BusPtr bus = m_pipeline->bus();
bus->addSignalWatch();
QGlib::connect(bus, "message", this, &Player :: onBusMessage);
}
else
{
qCritical() << "Failed to create the pipeline";
}
}

if (m_pipeline)
{
m_pipeline->setProperty("uri", realUri);
}
}




void Player :: play()
{
if (m_pipeline) {
m_pipeline->setState(QGst::StatePlaying);
}
}





void Player :: onBusMessage(const QGst::MessagePtr & message)
{
switch (message->type()) {
case QGst :: MessageEos: //End of stream. We reached the end of the file.
{
if (m_pipeline)
{
m_pipeline->setState(QGst::StateNull);
m_pipeline->setState(QGst::StatePlaying);
}
}
break;
default:
break;
}
}

Monalisa
27th February 2014, 12:51
Please help me in resolving memory leak issue

d_stranz
1st March 2014, 18:25
m_pipeline = QGst :: ElementFactory :: make("playbin2").dynamicCast<QGst :: Pipeline>();

This looks like it allocates memory for "m_pipeline". Your code does not show a destructor for your Player class, so if you aren't deleting the m_pipeline somewhere else, that's probably your leak. I don't see anywhere that you do delete it, although your code is impossible to read since you didn't use [CODE] tags.

Monalisa
3rd March 2014, 08:14
I am attaching my code again,

m_pipeline = QGst :: ElementFactory :: make("playbin2").dynamicCast<QGst :: Pipeline>(); is allocating memory but only only throughout the application. can you please suggest how to deallocate memory in its destructor.

[MAIN.CPP]


#include "mediaapp.h"
#include <QtGui/QApplication>
#include <QGst/init.h>

int main (int argc, char *argv [] )
{
QApplication app ( argc, argv );
QGst :: init ( &argc, &argv );

MediaApp media;
media .show();
media .openFile ("file://XYZ.webm");
return app .exec();
}



[MEDIAAPP.H]


#ifndef MEDIAAPP_H_
#define MEDIAAPP_H_

#include <QtGui/QWidget>
#include <QtGui/QStyle>
#include <QtCore/QTimer>

class Player;
class QBoxLayout;
class QTimer;

class MediaApp : public QWidget
{
Q_OBJECT
public:
MediaApp(QWidget *parent = 0);
~MediaApp();
void openFile(const QString & fileName);



private Q_SLOTS:
void onStateChanged();

private:
void createUI(QBoxLayout *appLayout);
Player *m_player;
};




[MEDIAAPP.CPP]


#include "mediaapp.h"
#include "player.h"
#include <QtGui/QBoxLayout>

MediaApp::MediaApp (QWidget *parent)
: QWidget (parent)
{
//create the player
m_player = new Player (this);
connect (m_player, SIGNAL ( stateChanged() ), this, SLOT( onStateChanged() ) );

//create the UI
QVBoxLayout *appLayout = new QVBoxLayout;
appLayout ->setContentsMargins (0, 0, 0, 0);
appLayout ->addWidget (m_player);

setLayout (appLayout);
setWindowFlags (Qt::FramelessWindowHint);/* enable this for frameless window */
}

MediaApp::~MediaApp()
{
delete m_player;
}

void MediaApp::openFile(const QString & fileName)
{
m_player->stop();
m_player->setUri(fileName);
m_player->play();
}




[PLAYER.H]


#ifndef PLAYER_H_
#define PLAYER_H_

#include <QtCore/QTimer>
#include <QtCore/QTime>
#include <QGst/Pipeline>
#include <QGst/Ui/VideoWidget>

class Player : public QGst :: Ui :: VideoWidget
{
Q_OBJECT
public:
Player(QWidget *parent = 0);
~Player();

void setUri(const QString & uri);
QGst :: State state() const;

public Q_SLOTS:
void play();

Q_SIGNALS:
void positionChanged();
void stateChanged();

private:
void onBusMessage(const QGst :: MessagePtr & message);
void handlePipelineStateChange(const QGst :: StateChangedMessagePtr & scm);

QGst :: PipelinePtr m_pipeline;
QTimer m_positionTimer;
};

#endif /* PLAYER_H_ */




[PLAYER.CPP]


#include "player.h"
#include <QtCore/QDir>
#include <QtCore/QUrl>
#include <QGlib/Connect>
#include <QGlib/Error>
#include <QGst/Pipeline>
#include <QGst/ElementFactory>
#include <QGst/Bus>
#include <QGst/Message>
#include <QGst/Query>
#include <QGst/ClockTime>
#include <QGst/Event>
#include <QGst/StreamVolume>

Player::Player(QWidget *parent)
: QGst :: Ui :: VideoWidget(parent)
{
//this timer is used to tell the ui to change its position slider & label
//every 100 ms, but only when the pipeline is playing
// connect ( &m_positionTimer, SIGNAL ( timeout () ), this, SIGNAL ( positionChanged () ) );
}

Player :: ~Player ()
{
if (m_pipeline) {
m_pipeline ->setState (QGst :: StateNull );
stopPipelineWatch ();
}
}

void Player :: setUri (const QString & uri)
{
QString realUri = uri;
//if uri is not a real uri, assume it is a file path
if (realUri.indexOf("://") < 0) {
realUri = QUrl :: fromLocalFile (realUri) .toEncoded();
}


if ( !m_pipeline )
{
m_pipeline = QGst :: ElementFactory :: make ("playbin2") .dynamicCast <QGst::Pipeline>();
if (m_pipeline)
{
//let the video widget watch the pipeline for new video sinks
watchPipeline (m_pipeline);
//watch the bus for messages
QGst :: BusPtr bus = m_pipeline ->bus();
bus ->addSignalWatch();
QGlib :: connect (bus, "message", this, &Player :: onBusMessage);
}
else
{
qCritical() << "Failed to create the pipeline";
}
}

if (m_pipeline)
{
m_pipeline- >setProperty ("uri", realUri);
}
}


QGst :: State Player :: state() const
{
return m_pipeline ? m_pipeline->currentState() : QGst :: StateNull;
}

void Player :: play()
{
if (m_pipeline)
{
m_pipeline ->setState(QGst :: StatePlaying);
}
}

void Player::onBusMessage(const QGst::MessagePtr & message)
{
switch ( message->type()) {
case QGst :: MessageEos : //End of stream. We reached the end of the file.
{
if (m_pipeline)
{
m_pipeline->setState(QGst::StateNull);
m_pipeline->setState(QGst::StatePlaying);
}
}
break;
default:
break;
}
}

Monalisa
6th March 2014, 06:04
Can some body compile the above code and help me in identifying the cause for memory leak.

ChrisW67
6th March 2014, 21:39
There is no obvious smoking gun in your code. Run your program in valgrind and identify what is leaking. If it truly is huge then it should stand out clearly in the typical valgrind noise. We do not have exactly the same environment as you so any result we get may not be applicable in your case.
http://valgrind.org/docs/manual/QuickStart.html

Monalisa
10th March 2014, 11:01
I used valgrind to run my code, it shows



==8624== Invalid read of size 4
==8624== at 0x84A30D3: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84A5464: FcConfigFilename (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE265: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE484: FcInit (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x5BC33D9: ??? (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.1)
==8624== by 0x5B509C3: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.1)
==8624== by 0x5B51283: QApplication::QApplication(int&, char**, int) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.1)
==8624== by 0x404C53: main (in /data/homedirs/MB104598/Workspace/huclient/huvideo/Release/huvideo)
==8624== Address 0xb1c23d4 is 20 bytes inside a block of size 22 alloc'd
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x84A302C: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84A5464: FcConfigFilename (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE265: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE484: FcInit (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x5BC33D9: ??? (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.1)
==8624== by 0x5B509C3: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.1)
==8624== by 0x5B51283: QApplication::QApplication(int&, char**, int) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.1)
==8624== by 0x404C53: main (in /data/homedirs/MB104598/Workspace/huclient/huvideo/Release/huvideo)
==8624==
==8624== Invalid read of size 4
==8624== at 0x84A30E8: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84A5464: FcConfigFilename (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B90FD: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0xA4DD6F3: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DE950: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DB7C6: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DD17A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4E075C: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0x84B8B70: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE265: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== Address 0xb1ca590 is 16 bytes inside a block of size 18 alloc'd
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x84A302C: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84A5464: FcConfigFilename (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B90FD: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0xA4DD6F3: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DE950: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DB7C6: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DD17A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4E075C: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0x84B8B70: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624==
==8624== Invalid read of size 4
==8624== at 0x84A30E8: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8E77: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B90FD: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0xA4DD6F3: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DE950: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DB7C6: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DD17A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4E075C: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0x84B8B70: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE265: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== Address 0xb1e0128 is 40 bytes inside a block of size 42 alloc'd
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x84A302C: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8E77: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B90FD: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0xA4DD6F3: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DE950: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DB7C6: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DD17A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4E075C: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0x84B8B70: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624==
==8624== Invalid read of size 4
==8624== at 0x84A30D3: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8E77: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B90FD: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0xA4DD6F3: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DE950: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DB7C6: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DD17A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4E075C: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0x84B8B70: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE265: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== Address 0xb213934 is 36 bytes inside a block of size 39 alloc'd
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x84A302C: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8A15: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B8E77: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84B90FD: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0xA4DD6F3: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DE950: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DB7C6: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4DD17A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0xA4E075C: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
==8624== by 0x84B8B70: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
==8624== by 0x84AE176: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)



Please help if you can make out anything.

Thanks

ChrisW67
10th March 2014, 21:43
There are no memory leaks in that output, but it also does not mention any code over which you have control.
Is that the entire output of:

valgrind --leakcheck=yes ./yourprogram

http://valgrind.org/docs/manual/quick-start.html#quick-start.mcrun

Monalisa
11th March 2014, 08:31
No, entire output is longer than 10000 character, I am posting the ending part




==8624== 705,063 bytes in 1 blocks are possibly lost in loss record 10,332 of 10,336
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x1BE06BDD: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE085DF: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE0B817: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE65778: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE6C5CE: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE5F6B1: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE05545: vpx_codec_decode (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1B9E67F7: ??? (in /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstvp8.so)
==8624== by 0x1BBF290A: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x1BBF618C: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x7FFC229: ??? (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624==
==8624== 705,063 bytes in 1 blocks are possibly lost in loss record 10,333 of 10,336
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x1BE06BDD: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE085DF: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE0B849: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE65778: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE6C5CE: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE5F6B1: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE05545: vpx_codec_decode (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1B9E67F7: ??? (in /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstvp8.so)
==8624== by 0x1BBF290A: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x1BBF618C: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x7FFC229: ??? (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624==
==8624== 705,063 bytes in 1 blocks are possibly lost in loss record 10,334 of 10,336
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x1BE06BDD: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE085DF: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE0B87B: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE65778: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE6C5CE: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE5F6B1: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE05545: vpx_codec_decode (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1B9E67F7: ??? (in /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstvp8.so)
==8624== by 0x1BBF290A: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x1BBF618C: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x7FFC229: ??? (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624==
==8624== 705,063 bytes in 1 blocks are possibly lost in loss record 10,335 of 10,336
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x1BE06BDD: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE085DF: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE0B909: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE65778: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE6C5CE: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE5F6B1: ??? (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1BE05545: vpx_codec_decode (in /usr/lib/libvpx.so.1.0.0)
==8624== by 0x1B9E67F7: ??? (in /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstvp8.so)
==8624== by 0x1BBF290A: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x1BBF618C: ??? (in /usr/lib/x86_64-linux-gnu/libgstbasevideo-0.10.so.0.0.0)
==8624== by 0x7FFC229: ??? (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624==
==8624== 1,409,024 bytes in 43 blocks are possibly lost in loss record 10,336 of 10,336
==8624== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8624== by 0x77AFA38: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3200.4)
==8624== by 0x1D12064A: ??? (in /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstvideoscale.so)
==8624== by 0x19807B79: ??? (in /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0.30.0)
==8624== by 0x19807E13: ??? (in /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0.30.0)
==8624== by 0x19808009: ??? (in /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0.30.0)
==8624== by 0x1980982C: ??? (in /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0.30.0)
==8624== by 0x7FFC229: ??? (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624== by 0x7FFFAE5: gst_pad_push (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624== by 0x198098C7: ??? (in /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0.30.0)
==8624== by 0x7FFC229: ??? (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624== by 0x7FFFAE5: gst_pad_push (in /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
==8624==
==8624== LEAK SUMMARY:
==8624== definitely lost: 21,075 bytes in 11 blocks
==8624== indirectly lost: 11,328 bytes in 352 blocks
==8624== possibly lost: 8,015,388 bytes in 12,686 blocks
==8624== still reachable: 3,241,022 bytes in 18,205 blocks
==8624== suppressed: 0 bytes in 0 blocks
==8624== Reachable blocks (those to which a pointer was found) are not shown.
==8624== To see them, rerun with: --leak-check=full --show-reachable=yes
==8624==
==8624== For counts of detected and suppressed errors, rerun with: -v
==8624== ERROR SUMMARY: 2610 errors from 2594 contexts (suppressed: 2 from 2)

Monalisa
27th March 2014, 14:27
Can any body help me on this..

wysota
27th March 2014, 14:45
There is no Qt code in this report so I don't know why you claim Qt leaks any memory. You can ask this on some GStreamer site however I wouldn't be suprised if these were false positives.