aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp')
-rw-r--r--src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp12
1 files changed, 12 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);