Commit Graph

26 Commits

Author SHA1 Message Date
Frederik Gladhorn
fb0620219b Merge remote-tracking branch 'origin/release' into stable
Change-Id: I53a7a2a3e096f76d50f2bb3ae125f6022de5c3f5
2013-12-03 18:22:20 +01:00
Christian Strømme
186aca3ba7 Android: Add missing 'L' prefix and ';' postfix in areaToRect()
While it works just fine without the post-/prefix, they are suppose
to be there...

Change-Id: I99365d37c70c65ccf0713d6b2d8330030b265e8e
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-12-03 14:10:56 +01:00
Yoann Lopes
fd3efc0163 Android: print a warning when using SurfaceTexture on Android 2.3.
SurfaceTexture is available since Android 3.0, print a warning when
camera preview or video playback is used on an older Android version.

Task-number: QTBUG-35075
Change-Id: Ie04c62df99048a25e8fd971e0708157d0d32c503
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-30 17:58:40 +01:00
Yoann Lopes
301baf2b68 Android: use correct format when capturing a picture to a buffer.
Don't decode the JPEG data to raw RGB using QImage. QCameraImageCapture
reports anyway that JPEG is the only supported buffer format.

Change-Id: Ib17760e4361b004775c002b686ef7529b3768aab
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-11-06 14:28:16 +01:00
Yoann Lopes
2412c298d4 Android: fix two race conditions in the media player.
start() could be called before the media player was marked as prepared.
When changing media, setMediaPath() could be called before the media
player was reset.

Task-number: QTBUG-34558
Change-Id: I886fd5f5008f76dcbc88c57d7b16a439b394d4a7
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-11-06 14:24:35 +01:00
Yoann Lopes
30cf028fb1 Android: fix camera preview showing black frames after restarting it.
Clear the camera preview size when stopping the preview in order to
force it to be reset when starting it again.

Task-number: QTBUG-34346
Change-Id: I0edf8d996348745b9aa7cf0790c16b6cd813b33b
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-29 20:26:24 +01:00
Friedemann Kleint
98a6eefda9 Add Linguist comment for translation of Drive-mode.
Translators not familiar with cameras might mistake it for
something related to driving a car.

Change-Id: If54a563a32af537d291b79253056b7b57e108f5b
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-10-15 15:38:55 +02:00
Yoann Lopes
b49746b588 Android: fix media recording location.
When letting the plugin decide where to save the recorded media, doing
several recordings would always use the same output file instead of
creating a different one every time.

Change-Id: If352257d6c91ada8565c1463820321f84c9bb92f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-09 18:02:44 +02:00
Yoann Lopes
28df116570 Android: fixed image capture preview.
We used to generate the capture preview from the video output, grabbing
the pixels of the last frame (in a FBO). This is not possible anymore,
we instead query the camera for a preview frame, which is in the NV21
format and needs to be converted to RGB.

Change-Id: I1c728b3a708a6f052a83aebf9f15f511eab7a02f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-01 17:26:31 +02:00
Yoann Lopes
be7a6241e7 Android: refactor video renderer.
Removed the overhead of having to create a shared OpenGL context in the GUI
thread and pre-render the frame into a FBO.

We now directly render the GL_TEXTURE_EXTERNAL_OES in the QtQuick render
thread, using an Android-specific QSGVideoNode.
We also use a callback from the render thread to create the texture from
there and not have to create a separate shared OpenGL context.

Change-Id: I6c8eb94b47d0a03329c912701b8af3fb5ebd1876
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-01 17:26:21 +02:00
Yoann Lopes
2162d9a2cc Android: fix plugin json metadata.
Change-Id: I0f2feca44843760df13a938d9190daf2d447d645
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-09-26 12:26:18 +02:00
Christian Strømme
ac029c65f2 Android: Adapt the multimedia plugin to new QJNI API
Change-Id: Id87f5518724eed6c9de6d5d3b8141860bd511643
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-20 10:11:50 +02:00
Yoann Lopes
17480111ed Android: fix compilation on x86.
Task-number: QTBUG-33554
Change-Id: I4da7410d3b77ec6d72a73d3b6ceb7b76bb48d2b7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-19 14:44:17 +02:00
Yoann Lopes
0a7882f6b3 Android: added camera support.
This patch includes all camera features: viewport, settings, image
capture, and video recording.
It also adds support for QAudioRecorder.

Change-Id: Ib962177cc8de4bac03f42a2bc0f534e03464bbfc
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-09-12 12:56:57 +02:00
Christian Strømme
ca769ba264 Android: Use isValid() to check if the jobject is valid.
Change-Id: I5ec67b9b2abfae2e2c2a44f0bcc7c72cb54beb49
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-08-21 13:31:53 +02:00
Yoann Lopes
4585518d52 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>
2013-08-19 15:31:21 +02:00
Christian Strømme
6c941c6c2b Android: Make it possible for MediaPlayer to read from assets.
The Android MediaPlayer doesn't handle assets automatically, so we need to
open it and pass it in as a file descriptor.

Task-number: QTBUG-31422
Change-Id: Ic29c0ab6348d760cf21aa89ae423d41e15523976
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-07-09 14:46:49 +02:00
Yoann Lopes
5e7e8e04d1 Android: wait to have a valid video surface before loading a media.
Setting the video surface on the Android media player after it has
loaded the media doesn't work on some hardware.

Change-Id: I5e621a34ace9de458bfc65bfac8fa50c29cee9a5
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-07-09 09:41:32 +02:00
Yoann Lopes
1dfbe44d90 Android: release the Android media player before destroying it.
Change-Id: I18715efd7ff346a9f6f2214727ec66ee79ad0d33
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-07-09 09:41:17 +02:00
Yoann Lopes
e25db62a59 Multimedia plugins now have a unique JSON metadata 'Keys' property.
They previously had the multimedia services they provided as keys. This
was a problem when several plugins were available on the same platform,
providing the same multimedia service, but with different features or
capabilities. Since they had the same key, only the first plugin in the
directory was loaded.

Nevertheless, it was actually working until commit 732dcfe7 in qtbase,
as all plugins were loaded even when sharing the same key.

The services a multimedia plugin provides are now declared in the
'Services' property. To preserve compatibility with third-party plugins,
if that new property doesn't exist it falls back to the 'Keys' property.

Task-number: QTBUG-31868
Task-number: QTBUG-31476
Change-Id: Ic3ba32eeef21b69b922bd3d4feb111101559d132
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-06-21 12:07:00 +02:00
Christian Strømme
16a775d47a Android: Fix for uncaught java exception.
If an exception's getMessage() function returns a null object, we can't
send it directly to the Log function, as it will throw an exception...
To avoid this we can prepend the string from getMessage() with an empty
string.

Change-Id: Ie026cbf9af133352919a4536c152b6d35cb8c0a7
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-06-13 17:56:04 +02:00
Yoann Lopes
5c087bb615 Android: fixed crash when resetting the video surface.
Change-Id: I64a28cbcb8a48d13a9e1c98005da9f4cce821cb4
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-05-22 12:56:07 +02:00
Sze Howe Koh
f4348fe3ae Decouple qmediametadata.h from qmultimedia.h
qmultimedia.h is included in more places, but qmediametadata.h is
larger. This patch should reduce unnecessary #include-ing.

Change-Id: I4a3d174bafc555d794bb75087c1f6b79745ae903
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-05-14 11:27:05 +02:00
Eskil Abrahamsen Blomfeldt
8e202bcad1 Make it possible to bundle Android builds
We need to adapt to the way the jar builds are split on Android,
into a jar file which can be bundled and one which can be distributed
and loaded on the classpath.

We also need to add meta-information about which plugins the
module depends on so that they can be bundled as well.

Task-number: QTBUG-30751
Change-Id: I5cca51c3732ce72985df29672a219c3fd4fe7bac
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-05-03 14:46:15 +02:00
BogDan Vatra
8960e47c24 Install the jar file
Change-Id: Ife46aba11920c5109d974f9e388e49320bf1a95a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-02 10:35:30 +02:00
Christian Strømme
909a09069f Android multimedia plug-in.
Adds MediaPlayer support for Android.

Change-Id: I4c7b1e19927b2e50b227f3a3b3f7ca2e99397618
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-03-06 00:23:50 +01:00