Enable QSoundEffect with loopCount of Infinite to play

Previously if the loopCount property of a QSoundEffect was set to
QSoundEffect::Infinite then no sound would be played at all.  This is
because QSoundEffect::Infinite == -2 and playback was only continued on
values above 0.

Task-number: QTBUG-32882

Change-Id: I739919a3e538128fc16f26ede5eb6cc4f2eb29fb
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
WMF: use qFabs instead of fabsf.

Task-number: QTBUG-32360
Change-Id: Ibec3d044ac38f54abd895d56f1851011bf6b5272
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
WMF: fixed QMediaPlayer changing to EndOfMedia status too early.

It was changing to EndOfMedia status and explicitly stopping playback
when receiving the MEEndOfPresentation event from the WMF session.
However, this event means that all data has bean read from the source but
not necessarily played yet. According to the documentation, playback is
done when the MESessionEnded event is sent. It now reports the EndOfMedia
status at that moment instead. stop() is not explicitly called anymore since
MESessionEnded also implies the session has stopped.

Task-number: QTBUG-30825
Change-Id: I6c6c09e736fe33f7cf17c75038ea7be1b5701a1c
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Add changes-5.1.1 file.

Task-number: QTBUG-32808
Change-Id: I998548df399ec6d2dd6b061b5ba2c1ca451276bc
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Merge remote-tracking branch 'origin/release' into stable

Change-Id: Ibcde5cfcb97948f9e3f71a2d6b06397e1003aa3b
Fix file browser in qmlvideofx example.

Similar to de9092389f2e43370c2cfcd6759d08cc11da9a68 for qmlvideo.
Use QUrl::fromLocalFile() to get Windows drive handling
right. Emulate its behavior in QML code. Fix up() to terminate
correctly.

Task-number: QTBUG-32139
Change-Id: I36bafaa608ff054190dc76694f6254a74f3b513e
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Android: fixed media player buffering logic.

When the media is ready, the status should always transition to
LoadedMedia and then immediately to BufferingMedia or BufferedMedia.
Also, when the duration is queried before the media is ready but already
buffering, it should always return 0 to avoid errors from the Android
media player.

Task-number: QTBUG-32635
Change-Id: Ibcb9c23b4f64c4f9a1a8e0ef81989ae78cfb19ef
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Android: Use isValid() to check if the jobject is valid.

Change-Id: I5ec67b9b2abfae2e2c2a44f0bcc7c72cb54beb49
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
WMF and GStreamer: fixed incorrect frame startTime and endTime.

The QVideoFrame documentation explicitly says that the time is in
microseconds, however the GStreamer backend was setting the time in
milliseconds and the WMF backend in 100-nanosecond units.
With WMF, the time was missing from the QVideoFrame when presenting it to
the video surface.

Task-number: QTBUG-31731
Change-Id: I0638d2abf8eed25b3a531db67c19a18703e5b630
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Merge remote-tracking branch 'origin/stable' into dev

Change-Id: I469f258c4838f87edaedc8620d925a3c537d1619