Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I48a140d1bbe82ab65e54683d77aea8c97c06ec80
This commit is contained in:
38
dist/changes-5.1.0
vendored
Normal file
38
dist/changes-5.1.0
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
Qt 5.1 introduces many new features and improvements as well as bugfixes
|
||||
over the 5.0.x series. For more details, refer to the online documentation
|
||||
included in this distribution. The documentation is also available online:
|
||||
|
||||
http://qt-project.org/doc/qt-5.1
|
||||
|
||||
The Qt version 5.1 series is binary compatible with the 5.0.x series.
|
||||
Applications compiled for 5.0 will continue to run with 5.1.
|
||||
|
||||
Some of the changes listed in this file include issue tracking numbers
|
||||
corresponding to tasks in the Qt Bug Tracker:
|
||||
|
||||
http://bugreports.qt-project.org/
|
||||
|
||||
Each of these identifiers can be entered in the bug tracker to obtain more
|
||||
information about a particular change.
|
||||
|
||||
****************************************************************************
|
||||
* General *
|
||||
****************************************************************************
|
||||
|
||||
- Fixed signal not being emitted in QDeclarativeCameraFocus.
|
||||
- Decouple qmediametadata.h from qmultimedia.h
|
||||
- Reset VideoSurface pointer when deleted
|
||||
- Fix crash on idle status change with 64 bit architectures.
|
||||
- Add support for m3u8 playlist formats
|
||||
- Fix calculation bug in QWaveDecoder.
|
||||
|
||||
- [QTBUG-28047] Make directshow-plugin available.
|
||||
- [QTBUG-28589] Add error handling in image capturing in camera
|
||||
- [QTBUG-30411] AVFoundation: Emit error when media fails to load
|
||||
|
||||
Qt for Android
|
||||
--------------
|
||||
|
||||
- Add libQt5MultimediaQuick_p to the list of dependencies.
|
||||
- Fixed crash when resetting the video surface.
|
||||
- Add MediaPlayer support for Android
|
||||
@@ -132,10 +132,10 @@ int main(int argc, char *argv[])
|
||||
QUrl videoPath;
|
||||
const QStringList moviesLocation = QStandardPaths::standardLocations(QStandardPaths::MoviesLocation);
|
||||
if (moviesLocation.isEmpty()) {
|
||||
QUrl appPath(QString("file:///%1").arg(app.applicationDirPath()));
|
||||
QUrl appPath(QString("file://%1").arg(app.applicationDirPath()));
|
||||
videoPath = appPath.resolved(QUrl("./"));
|
||||
} else
|
||||
videoPath = QString("file:///%1").arg(moviesLocation.first());
|
||||
videoPath = QString("file://%1").arg(moviesLocation.first());
|
||||
viewer.rootContext()->setContextProperty("videoPath", videoPath);
|
||||
|
||||
QMetaObject::invokeMethod(rootObject, "init");
|
||||
|
||||
@@ -101,7 +101,7 @@ Rectangle {
|
||||
Rectangle {
|
||||
id: wrapper
|
||||
function launch() {
|
||||
var path = "file:///" + filePath;
|
||||
var path = "file://" + filePath;
|
||||
if (folders.isFolder(index))
|
||||
down(path);
|
||||
else
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
TEMPLATE = app
|
||||
TARGET = qmlvideo
|
||||
|
||||
QT += quick
|
||||
QT += quick multimedia
|
||||
|
||||
LOCAL_SOURCES = main.cpp
|
||||
LOCAL_HEADERS = trace.h
|
||||
|
||||
@@ -116,13 +116,13 @@ int main(int argc, char *argv[])
|
||||
FileReader fileReader;
|
||||
viewer.rootContext()->setContextProperty("fileReader", &fileReader);
|
||||
|
||||
QUrl appPath(QString("file:///%1").arg(app.applicationDirPath()));
|
||||
QUrl appPath(QString("file://%1").arg(app.applicationDirPath()));
|
||||
QUrl imagePath;
|
||||
const QStringList picturesLocation = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation);
|
||||
if (picturesLocation.isEmpty())
|
||||
imagePath = appPath.resolved(QUrl("images"));
|
||||
else
|
||||
imagePath = QString("file:///%1").arg(picturesLocation.first());
|
||||
imagePath = QString("file://%1").arg(picturesLocation.first());
|
||||
viewer.rootContext()->setContextProperty("imagePath", imagePath);
|
||||
|
||||
QUrl videoPath;
|
||||
@@ -130,7 +130,7 @@ int main(int argc, char *argv[])
|
||||
if (moviesLocation.isEmpty())
|
||||
videoPath = appPath.resolved(QUrl("./"));
|
||||
else
|
||||
videoPath = QString("file:///%1").arg(moviesLocation.first());
|
||||
videoPath = QString("file://%1").arg(moviesLocation.first());
|
||||
viewer.rootContext()->setContextProperty("videoPath", videoPath);
|
||||
|
||||
viewer.setTitle("qmlvideofx");
|
||||
|
||||
@@ -102,7 +102,7 @@ Rectangle {
|
||||
Rectangle {
|
||||
id: wrapper
|
||||
function launch() {
|
||||
var path = "file:///" + filePath
|
||||
var path = "file://" + filePath
|
||||
if (folders.isFolder(index))
|
||||
down(path);
|
||||
else
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
TEMPLATE = app
|
||||
TARGET = qmlvideofx
|
||||
|
||||
QT += quick
|
||||
QT += quick multimedia
|
||||
|
||||
SOURCES += filereader.cpp main.cpp
|
||||
HEADERS += filereader.h trace.h
|
||||
|
||||
@@ -469,20 +469,22 @@ QList<QByteArray> QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode)
|
||||
|
||||
QByteArray QAudioDeviceInfoInternal::defaultOutputDevice()
|
||||
{
|
||||
QList<QByteArray> list = availableDevices(QAudio::AudioOutput);
|
||||
if (list.size() > 0)
|
||||
return list.at(0);
|
||||
else
|
||||
return QByteArray();
|
||||
QByteArray defaultDevice;
|
||||
QDataStream ds(&defaultDevice, QIODevice::WriteOnly);
|
||||
ds << quint32(WAVE_MAPPER) // device ID for default device
|
||||
<< QStringLiteral("Default Output Device");
|
||||
|
||||
return defaultDevice;
|
||||
}
|
||||
|
||||
QByteArray QAudioDeviceInfoInternal::defaultInputDevice()
|
||||
{
|
||||
QList<QByteArray> list = availableDevices(QAudio::AudioInput);
|
||||
if (list.size() > 0)
|
||||
return list.at(0);
|
||||
else
|
||||
return QByteArray();
|
||||
QByteArray defaultDevice;
|
||||
QDataStream ds(&defaultDevice, QIODevice::WriteOnly);
|
||||
ds << quint32(WAVE_MAPPER) // device ID for default device
|
||||
<< QStringLiteral("Default Input Device");
|
||||
|
||||
return defaultDevice;
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
@@ -127,7 +127,12 @@ void QMediaPluginLoader::loadMetadata()
|
||||
qDebug() << "QMediaPluginLoader: Inserted index " << i << " into metadata: " << jsonobj;
|
||||
#endif
|
||||
|
||||
QJsonArray arr = jsonobj.value(QStringLiteral("Keys")).toArray();
|
||||
QJsonArray arr = jsonobj.value(QStringLiteral("Services")).toArray();
|
||||
// Preserve compatibility with older plugins (made before 5.1) in which
|
||||
// services were declared in the 'Keys' property
|
||||
if (arr.isEmpty())
|
||||
arr = jsonobj.value(QStringLiteral("Keys")).toArray();
|
||||
|
||||
foreach (QJsonValue value, arr) {
|
||||
QString key = value.toString();
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
try {
|
||||
mApplicationContext = activity.getApplicationContext();
|
||||
} catch(final Exception e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
currentPosition = getCurrentPosition();
|
||||
}
|
||||
} catch (final InterruptedException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -262,7 +262,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
progressThread.start();
|
||||
} catch (final IllegalStateException e) {
|
||||
reset();
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,7 +276,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
super.pause();
|
||||
} catch (final IllegalStateException e) {
|
||||
reset();
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -289,7 +289,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
try {
|
||||
super.stop();
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
} finally {
|
||||
reset();
|
||||
}
|
||||
@@ -305,7 +305,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
super.seekTo(msec);
|
||||
onMediaPlayerInfoNative(MEDIA_PLAYER_PROGRESS, msec, mID);
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -320,7 +320,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
try {
|
||||
playing = super.isPlaying();
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
|
||||
return playing;
|
||||
@@ -345,13 +345,13 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
/* MEDIA_ERROR_UNSUPPORTED= */ -1010,
|
||||
mID);
|
||||
} catch (final IllegalArgumentException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
} catch (final SecurityException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
} catch (final NullPointerException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -366,7 +366,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
try {
|
||||
currentPosition = super.getCurrentPosition();
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
|
||||
return currentPosition;
|
||||
@@ -383,7 +383,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
try {
|
||||
duration = super.getDuration();
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
|
||||
return duration;
|
||||
@@ -415,7 +415,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer
|
||||
if (!mMuted)
|
||||
mVolume = volume;
|
||||
} catch (final IllegalStateException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
Log.d(TAG, "" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["androidmultimedia"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.audiosource"]
|
||||
"Keys": ["audiocapture"],
|
||||
"Services": ["org.qt-project.qt.audiosource"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.camera"]
|
||||
"Keys": ["avfoundationcamera"],
|
||||
"Services": ["org.qt-project.qt.camera"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["avfoundationmediaplayer"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["blackberrymultimedia"],
|
||||
"Services": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["directshow"],
|
||||
"Services": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.camera"]
|
||||
"Keys": ["directshow"],
|
||||
"Services": ["org.qt-project.qt.camera"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.audiodecode"]
|
||||
"Keys": ["gstreameraudiodecode"],
|
||||
"Services": ["org.qt-project.qt.audiodecode"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.camera"]
|
||||
"Keys": ["gstreamercamerabin"],
|
||||
"Services": ["org.qt-project.qt.camera"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource", "org.qt-project.qt.camera", "org.qt-project.qt.audiodecode"]
|
||||
"Keys": ["gstreamer"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource", "org.qt-project.qt.camera", "org.qt-project.qt.audiodecode"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.audiosource"]
|
||||
"Keys": ["gstreamermediacapture"],
|
||||
"Services": ["org.qt-project.qt.audiosource"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.audiosource", "org.qt-project.qt.camera"]
|
||||
"Keys": ["gstreamermediacapture"]
|
||||
"Services": ["org.qt-project.qt.audiosource", "org.qt-project.qt.camera"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["gstreamermediaplayer"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["qt7"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.radio"]
|
||||
"Keys": ["v4l"],
|
||||
"Services": ["org.qt-project.qt.radio"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiodecode"]
|
||||
"Keys": ["windowsmediafoundation"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiodecode"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["mockserviceplugin1"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.radio"]
|
||||
"Keys": ["mockserviceplugin2"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.radio"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource"]
|
||||
"Keys": ["mockserviceplugin3"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"Keys": ["org.qt-project.qt.mediaplayer"]
|
||||
"Keys": ["mockserviceplugin4"],
|
||||
"Services": ["org.qt-project.qt.mediaplayer"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user