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

Change-Id: I48a140d1bbe82ab65e54683d77aea8c97c06ec80
This commit is contained in:
Frederik Gladhorn
2013-06-27 13:00:02 +02:00
30 changed files with 119 additions and 54 deletions

38
dist/changes-5.1.0 vendored Normal file
View 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

View File

@@ -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");

View File

@@ -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

View File

@@ -1,7 +1,7 @@
TEMPLATE = app
TARGET = qmlvideo
QT += quick
QT += quick multimedia
LOCAL_SOURCES = main.cpp
LOCAL_HEADERS = trace.h

View File

@@ -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");

View File

@@ -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

View File

@@ -1,7 +1,7 @@
TEMPLATE = app
TARGET = qmlvideofx
QT += quick
QT += quick multimedia
SOURCES += filereader.cpp main.cpp
HEADERS += filereader.h trace.h

View File

@@ -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

View File

@@ -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();

View File

@@ -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());
}
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.mediaplayer"]
"Keys": ["androidmultimedia"],
"Services": ["org.qt-project.qt.mediaplayer"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.audiosource"]
"Keys": ["audiocapture"],
"Services": ["org.qt-project.qt.audiosource"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.camera"]
"Keys": ["avfoundationcamera"],
"Services": ["org.qt-project.qt.camera"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.mediaplayer"]
"Keys": ["avfoundationmediaplayer"],
"Services": ["org.qt-project.qt.mediaplayer"]
}

View File

@@ -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"]
}

View File

@@ -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"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.camera"]
"Keys": ["directshow"],
"Services": ["org.qt-project.qt.camera"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.audiodecode"]
"Keys": ["gstreameraudiodecode"],
"Services": ["org.qt-project.qt.audiodecode"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.camera"]
"Keys": ["gstreamercamerabin"],
"Services": ["org.qt-project.qt.camera"]
}

View File

@@ -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"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.audiosource"]
"Keys": ["gstreamermediacapture"],
"Services": ["org.qt-project.qt.audiosource"]
}

View File

@@ -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"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.mediaplayer"]
"Keys": ["gstreamermediaplayer"],
"Services": ["org.qt-project.qt.mediaplayer"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.mediaplayer"]
"Keys": ["qt7"],
"Services": ["org.qt-project.qt.mediaplayer"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.radio"]
"Keys": ["v4l"],
"Services": ["org.qt-project.qt.radio"]
}

View File

@@ -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"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.mediaplayer"]
"Keys": ["mockserviceplugin1"],
"Services": ["org.qt-project.qt.mediaplayer"]
}

View File

@@ -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"]
}

View File

@@ -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"]
}

View File

@@ -1,3 +1,4 @@
{
"Keys": ["org.qt-project.qt.mediaplayer"]
"Keys": ["mockserviceplugin4"],
"Services": ["org.qt-project.qt.mediaplayer"]
}