From 07b5999701908598ef1ce868c060723a3a2b2d44 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 19 Oct 2010 17:53:51 +0000 Subject: fixed memory leak, added taglib bug workaround git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1948 90c681e8-e032-0410-971d-27865f9a5e38 --- .../Input/vorbis/translations/vorbis_plugin_cs.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_de.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_es.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_it.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_ja.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_lt.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_nl.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_pl.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_ru.ts | 16 ++++++------- .../Input/vorbis/translations/vorbis_plugin_tr.ts | 16 ++++++------- .../vorbis/translations/vorbis_plugin_uk_UA.ts | 16 ++++++------- .../vorbis/translations/vorbis_plugin_zh_CN.ts | 16 ++++++------- .../vorbis/translations/vorbis_plugin_zh_TW.ts | 16 ++++++------- src/plugins/Input/vorbis/vorbismetadatamodel.cpp | 27 ++++++++++++++-------- 14 files changed, 122 insertions(+), 113 deletions(-) (limited to 'src/plugins/Input') diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts index 2675e478d..051981d96 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Délka - + Sample rate Vzorkovací frekvence - + Hz Hz - + Channels Počet kanálů - + Bitrate Datový tok - + kbps kbps - + File size Velikost souboru - + KB KiB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts index 0abb8edd8..bc9b592f8 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Länge - + Sample rate Abtastrate - + Hz Hz - + Channels Kanäle - + Bitrate Bitrate - + kbps kbps - + File size Dateigröße - + KB KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_es.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_es.ts index 9b1d28cb8..26e734ecd 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_es.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_es.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Duración - + Sample rate Frecuencia - + Hz Hz - + Channels Canales - + Bitrate Tasa de bits - + kbps kbps - + File size Tamaño del archivo - + KB KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts index aa335b1ba..63c4a8ffb 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Durata - + Sample rate Campionamento - + Hz Hz - + Channels Canali - + Bitrate bit al secondo - + kbps kbps - + File size Dimensione file - + KB KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_ja.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_ja.ts index bd9c347a2..97fbe9ffe 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_ja.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_ja.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length 長さ - + Sample rate サンプルレート - + Hz Hz - + Channels チャンネル - + Bitrate ビットレート - + kbps キロビット毎秒 - + File size ファイルの大きさ - + KB KiB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts index b108fc784..d19c9bcc0 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Trukmė - + Sample rate Dažnis - + Hz Hz - + Channels Kanalai - + Bitrate Kokybė - + kbps kbps - + File size Bylos dydis - + KB KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_nl.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_nl.ts index 8cce3d32c..281b36684 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_nl.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_nl.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Duur - + Sample rate Sample frequentie - + Hz Hz - + Channels Kanalen - + Bitrate Bitsnelheid - + kbps kbps - + File size Bestandsnaam - + KB KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts index 77e61caca..b6d7f71e2 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Długość - + Sample rate Próbkowanie - + Hz - + Channels Kanały - + Bitrate Szybkość transmisji - + kbps - + File size Wielkość pliku - + KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts index 7e5bbd217..c334a0251 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Длительность - + Sample rate Дискретизация - + Hz Гц - + Channels Каналов - + Bitrate Битовая частота - + kbps Кб/с - + File size Размер файла - + KB КБ diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts index 6cb38d590..c3a171732 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length - + Sample rate - + Hz Hz - + Channels - + Bitrate - + kbps kbps - + File size - + KB KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts index 69a030d31..b2fb44162 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length Тривалість - + Sample rate Частота - + Hz Гц - + Channels Канали - + Bitrate Бітрейт - + kbps Кб/с - + File size Розмір файлу - + KB Кб diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts index 2344ea7b9..3bced0b09 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length - + Sample rate - + Hz Hz - + Channels - + Bitrate - + kbps kbps - + File size - + KB KB diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts index 2f8d0ab1f..b7662d7c2 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts @@ -37,42 +37,42 @@ VorbisMetaDataModel - + Length - + Sample rate - + Hz Hz - + Channels - + Bitrate - + kbps kbps - + File size - + KB KB diff --git a/src/plugins/Input/vorbis/vorbismetadatamodel.cpp b/src/plugins/Input/vorbis/vorbismetadatamodel.cpp index a7751b30d..321906f42 100644 --- a/src/plugins/Input/vorbis/vorbismetadatamodel.cpp +++ b/src/plugins/Input/vorbis/vorbismetadatamodel.cpp @@ -44,13 +44,16 @@ QHash VorbisMetaDataModel::audioProperties() { QHash ap; TagLib::Ogg::Vorbis::File f (m_path.toLocal8Bit()); - QString text = QString("%1").arg(f.audioProperties()->length()/60); - text +=":"+QString("%1").arg(f.audioProperties()->length()%60,2,10,QChar('0')); - ap.insert(tr("Length"), text); - ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(f.audioProperties()->sampleRate())); - ap.insert(tr("Channels"), QString("%1").arg(f.audioProperties()->channels())); - ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(f.audioProperties()->bitrate())); - ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(f.length()/1024)); + if(f.audioProperties()) + { + QString text = QString("%1").arg(f.audioProperties()->length()/60); + text +=":"+QString("%1").arg(f.audioProperties()->length()%60,2,10,QChar('0')); + ap.insert(tr("Length"), text); + ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(f.audioProperties()->sampleRate())); + ap.insert(tr("Channels"), QString("%1").arg(f.audioProperties()->channels())); + ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(f.audioProperties()->bitrate())); + ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(f.length()/1024)); + } return ap; } @@ -108,7 +111,7 @@ ulong VorbisMetaDataModel::readPictureBlockField(QByteArray data, int offset) VorbisCommentModel::VorbisCommentModel(const QString &path) : TagModel(TagModel::Save) { - m_file = new TagLib::Ogg::Vorbis::File (path.toLocal8Bit().constData()); + m_file = new TagLib::Ogg::Vorbis::File (path.toLocal8Bit().constData()); m_tag = m_file->tag(); } @@ -200,5 +203,11 @@ void VorbisCommentModel::setValue(Qmmp::MetaData key, const QString &value) void VorbisCommentModel::save() { - m_file->save(); + if(m_tag) + m_file->save(); + //taglib bug workarround + QString path = QString::fromLocal8Bit(m_file->name()); + delete m_file; + m_file = new TagLib::Ogg::Vorbis::File(path.toLocal8Bit()); + m_tag = m_file->tag(); } -- cgit v1.2.3-13-gbd6f