Fix a memory leak in CmaRootObject.
Assign a thread name for easy debugging.
This commit is contained in:
@@ -78,7 +78,7 @@ void AVDecoder::getVideoMetadata(metadata_t &metadata)
|
|||||||
if((entry = av_dict_get(file_metadata, "title", NULL, 0)) != NULL) {
|
if((entry = av_dict_get(file_metadata, "title", NULL, 0)) != NULL) {
|
||||||
metadata.data.video.title = strdup(entry->value);
|
metadata.data.video.title = strdup(entry->value);
|
||||||
} else {
|
} else {
|
||||||
metadata.data.video.title = metadata.name;
|
metadata.data.video.title = strdup(metadata.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
metadata.data.video.tracks->data.track_video.duration = pFormatCtx->duration / 1000;
|
metadata.data.video.tracks->data.track_video.duration = pFormatCtx->duration / 1000;
|
||||||
|
@@ -29,10 +29,14 @@ void BaseWorker::onFinished()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseWorker::start()
|
void BaseWorker::start(const char *thread_name)
|
||||||
{
|
{
|
||||||
thread = new QThread();
|
thread = new QThread();
|
||||||
|
|
||||||
|
if(thread_name) {
|
||||||
|
thread->setObjectName(thread_name);
|
||||||
|
}
|
||||||
|
|
||||||
// Move this service to a new thread
|
// Move this service to a new thread
|
||||||
this->moveToThread(thread);
|
this->moveToThread(thread);
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@ class BaseWorker : public QObject
|
|||||||
public:
|
public:
|
||||||
explicit BaseWorker(QObject *parent = 0);
|
explicit BaseWorker(QObject *parent = 0);
|
||||||
|
|
||||||
void start();
|
void start(const char *thread_name = NULL);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QThread *thread;
|
QThread *thread;
|
||||||
|
@@ -71,7 +71,7 @@ vita_device_t *CmaClient::getDeviceConnection()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
qDebug("No Vita detected via USB, attempt %i", ++num_tries);
|
qDebug("No Vita detected via USB, attempt %i", ++num_tries);
|
||||||
vita = VitaMTP_Get_First_Wireless_Vita(&host, 0, 0, CmaClient::deviceRegistered, CmaClient::generatePin);
|
vita = VitaMTP_Get_First_Wireless_Vita(&host, 0, 3, CmaClient::deviceRegistered, CmaClient::generatePin);
|
||||||
if(vita || !active) {
|
if(vita || !active) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,7 @@ void CMARootObject::initObject(const QString &path)
|
|||||||
case VITA_OHFI_MUSIC:
|
case VITA_OHFI_MUSIC:
|
||||||
metadata.dataType = Music;
|
metadata.dataType = Music;
|
||||||
this->path = path;
|
this->path = path;
|
||||||
num_filters = 1;
|
num_filters = 2;
|
||||||
filters = new metadata_t[2];
|
filters = new metadata_t[2];
|
||||||
//createFilter(&filters[0], "Artists", VITA_DIR_TYPE_MASK_MUSIC | VITA_DIR_TYPE_MASK_ROOT | VITA_DIR_TYPE_MASK_ARTISTS);
|
//createFilter(&filters[0], "Artists", VITA_DIR_TYPE_MASK_MUSIC | VITA_DIR_TYPE_MASK_ROOT | VITA_DIR_TYPE_MASK_ARTISTS);
|
||||||
createFilter(&filters[0], "Albums", VITA_DIR_TYPE_MASK_MUSIC | VITA_DIR_TYPE_MASK_ROOT | VITA_DIR_TYPE_MASK_ALBUMS);
|
createFilter(&filters[0], "Albums", VITA_DIR_TYPE_MASK_MUSIC | VITA_DIR_TYPE_MASK_ROOT | VITA_DIR_TYPE_MASK_ALBUMS);
|
||||||
|
@@ -165,6 +165,8 @@ void Database::destroy()
|
|||||||
QMutexLocker locker(&mutex);
|
QMutexLocker locker(&mutex);
|
||||||
|
|
||||||
for(map_list::iterator root = object_list.begin(); root != object_list.end(); ++root) {
|
for(map_list::iterator root = object_list.begin(); root != object_list.end(); ++root) {
|
||||||
|
CMARootObject *first = static_cast<CMARootObject *>((*root).takeFirst());
|
||||||
|
delete first;
|
||||||
qDeleteAll(*root);
|
qDeleteAll(*root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -66,7 +66,7 @@ void MainWidget::dialogResult(int result)
|
|||||||
void MainWidget::startServer()
|
void MainWidget::startServer()
|
||||||
{
|
{
|
||||||
qDebug("Starting cma event loop");
|
qDebug("Starting cma event loop");
|
||||||
clientLoop.start();
|
clientLoop.start("CmaClient");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::stopServer()
|
void MainWidget::stopServer()
|
||||||
|
Reference in New Issue
Block a user