diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-10 19:12:40 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-10 19:12:40 +0000 |
| commit | 707762b07352f5fa6cf8221ae15e1c5bd738a3d9 (patch) | |
| tree | 0c30d7477c87552020d464ad84deb1c6cd7c2db3 | |
| parent | 9fc03abe76a9a5d075760f9ed1aaaa7619576962 (diff) | |
| download | qmmp-707762b07352f5fa6cf8221ae15e1c5bd738a3d9.tar.gz qmmp-707762b07352f5fa6cf8221ae15e1c5bd738a3d9.tar.bz2 qmmp-707762b07352f5fa6cf8221ae15e1c5bd738a3d9.zip | |
ffmpeg: fixed invalid tracks handling
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9723 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp | 12 | ||||
| -rw-r--r-- | src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp index b1f9228ee..bab1b9980 100644 --- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp +++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp @@ -250,6 +250,12 @@ QList<TrackInfo *> DecoderFFmpegFactory::createPlayList(const QString &path, Tra delete info; return parser.createPlayList(trackNumber); } + else if(trackNumber > 0 && path.startsWith("ffmpeg://")) //invalid track + { + avformat_close_input(&in); + delete info; + return QList<TrackInfo*>(); + } AVDictionaryEntry *album = av_dict_get(in->metadata,"album",nullptr,0); AVDictionaryEntry *album_artist = av_dict_get(in->metadata,"album_artist",nullptr,0); @@ -303,6 +309,12 @@ QList<TrackInfo *> DecoderFFmpegFactory::createPlayList(const QString &path, Tra delete info; return tracks; } + else if(trackNumber > 0 && path.startsWith("m4b://")) //invalid chapter + { + avformat_close_input(&in); + delete info; + return QList<TrackInfo*>(); + } } avformat_close_input(&in); diff --git a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp index e8af72d9d..724c69d33 100644 --- a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp +++ b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp @@ -36,6 +36,11 @@ FFmpegMetaDataModel::FFmpegMetaDataModel(const QString &path) : MetaDataModel(tr filePath.remove("ffmpeg://"); filePath.remove(QRegularExpression("#\\d+$")); } + else if(path.startsWith("m4b://")) + { + filePath.remove("m4b://"); + filePath.remove(QRegularExpression("#\\d+$")); + } #ifdef Q_OS_WIN if (avformat_open_input(&in, filePath.toUtf8().constData(), nullptr, nullptr) < 0) |
