Merge remote-tracking branch 'origin/stable' into dev

Change-Id: I6b92013d9fb14b11141d1a15c183776b2b3309fa
This commit is contained in:
Frederik Gladhorn
2013-03-27 14:31:37 +01:00
7 changed files with 27 additions and 14 deletions

View File

@@ -153,13 +153,15 @@ void QWaveDecoder::handleData()
chunk descriptor;
peekChunk(&descriptor);
if (source->bytesAvailable() < qint64(descriptor.size + sizeof(chunk)))
quint32 rawChunkSize = descriptor.size + sizeof(chunk);
if (source->bytesAvailable() < qint64(rawChunkSize))
return;
WAVEHeader wave;
source->read(reinterpret_cast<char *>(&wave), sizeof(WAVEHeader));
if (descriptor.size > sizeof(WAVEHeader))
discardBytes(descriptor.size - sizeof(WAVEHeader));
if (rawChunkSize > sizeof(WAVEHeader))
discardBytes(rawChunkSize - sizeof(WAVEHeader));
// Swizzle this
if (bigEndian) {

View File

@@ -190,7 +190,7 @@ QM3uPlaylistPlugin::~QM3uPlaylistPlugin()
bool QM3uPlaylistPlugin::canRead(QIODevice *device, const QByteArray &format) const
{
return device->isReadable() && (format == "m3u" || format.isEmpty());
return device->isReadable() && (format == "m3u" || format == "m3u8" || format.isEmpty());
}
bool QM3uPlaylistPlugin::canRead(const QUrl& location, const QByteArray &format) const
@@ -198,18 +198,18 @@ bool QM3uPlaylistPlugin::canRead(const QUrl& location, const QByteArray &format)
if (!QFileInfo(location.toLocalFile()).isReadable())
return false;
if (format == "m3u")
if (format == "m3u" || format == "m3u8")
return true;
if (!format.isEmpty())
return false;
else
return location.toLocalFile().toLower().endsWith(QLatin1String("m3u"));
QString localFile = location.toLocalFile().toLower();
return localFile.endsWith(QLatin1String("m3u")) || localFile.endsWith(QLatin1String("m3u8"));
}
bool QM3uPlaylistPlugin::canWrite(QIODevice *device, const QByteArray &format) const
{
return device->isOpen() && device->isWritable() && format == "m3u";
return device->isOpen() && device->isWritable() && (format == "m3u" || format == "m3u8");
}
QMediaPlaylistReader *QM3uPlaylistPlugin::createReader(QIODevice *device, const QByteArray &format)