Commit Graph

186 Commits

Author SHA1 Message Date
Ling Hu
eb5b216ac4 Refactoring wmf plugin
make mf startup/shutdwon inside plugin instead of player component
make sourceresolver a common component for a wmf related tasks.

Change-Id: I49cdc4fa512a62398a68cd2be2f522f567d11c7c
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-29 05:59:46 +02:00
Ling Hu
340f18d4b5 Fixed a WMF seek bug.
Change-Id: I1f077a045dad94127e747dd3f8c8566559aef5a2
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-29 03:01:51 +02:00
Michael Goddard
b0809c027c Rename availabilityError to availability.
It's perhaps clearer in the usual case.

Change-Id: Id3cef82ac83f8c9b538b3315281664ce1c6a2b96
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-06-29 02:47:41 +02:00
Michael Goddard
bba28afe55 Rename a few controls.
The encoder controls could be confused with actual encoding, so make
clear they are just settings.  Also, the end point selector controls
were not named very well.

Change-Id: I27f8bf9c865c5f295abad97c01ef98752af42613
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-06-29 02:47:29 +02:00
Lev Zelenskiy
dcf79d4998 Read actual period size after initializing a stream.
QTBUG-23833

Change-Id: I2bd352cf34d12e1be22f640c47fc2388dc3a7f8a
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-28 09:17:47 +02:00
Thomas McGuire
a121e74710 Add blackberry backend
Change-Id: I88be743f0cad94d4beabdae917758be7e4293bfd
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-26 14:13:39 +02:00
Oswald Buddenhagen
b1a4d7f9fc build system cleanups
- load(qt_module) => load(qt_build_config)
- remove:
  - CONFIG+=module (obsolete)
  - code relating to module version headers (automated now)
  - %mastercontent assignment (automated now)
  - QT_BUILD_*_LIB defines (automated now)
  - pointless QPRO_PWD assignments
  - pointless DEFINES+=QT_MAKEDLL
  - pointless and commented out include and depend paths
  - qmake -project boilerplate

Change-Id: I8f4586403848fe8f2dff4e889b389956ffcdea59
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-25 11:44:40 +02:00
Oswald Buddenhagen
82ade38b11 switch to new-style configure tests
Change-Id: Ib56d0cb24065c1f990aee5d7f41bfedfe75332a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-25 10:40:03 +02:00
Ling Hu
1b7da9e0ad Fixed some crash with WMF backend
Change-Id: I721ba049e2ecafff53ee70d5b930fb52c15fbe09
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-25 06:39:08 +02:00
Toby Tomkins
6d301388e1 Fix namespace compilation.
Change-Id: Id8d71a48df20da16647834e8f9732012f26f928f
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-25 06:39:04 +02:00
Michael Goddard
be14e367fd Remove the USE_COCOA #ifdef, it's always defined now.
Change-Id: If3528cdfda647fa3cfba3c310bc9816b8b1e0344
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-20 07:59:05 +02:00
Ling Hu
bd071a3853 Enabled wmf plugin on Windows again
Change-Id: Ia1fe3ef6ec8f70888c7beb390678935ad9995a90
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-20 06:41:49 +02:00
Simon Hausmann
40a95ed42c Fix build on Windows with new qdatetime.h that doesn't redefine min/max
Windows system header files redefine min/max, unless NOMINMAX is defined.
In some cases we can simply include qt_windows.h, which does the trick,
in other cases including qt_windows.h produces different compilation
errors and it's simpler to just do the NOMINMAX trick.

Change-Id: I3cf81bab7c239363adfa274f158bdf999d1d3ecd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-13 12:19:17 +02:00
Ling Hu
931c2d3ffe Enable auto resume of playback for gstreamer mediaplayer
The resource policy now supports implicit auto-resume,
so it is better to cooperate with that in mediaplayer
to enable auto resume playback after resource lost.

Change-Id: Iba0d28e64fa864dd6332a62e915316d48a12a533
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-12 06:33:09 +02:00
Kent Hansen
2d8f81b857 Fix compilation without QtWidgets and QtOpenGL on Mac
Change-Id: I3cff7e41d27955e37bc8207e4820fdc21ce75f7b
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-07 09:37:07 +02:00
Dmytro Poplavskiy
62749d654d Removed encoding options from Audio/Video encoding controls
They are replaced with encoding options from
QAudio/Video/ImageEncoderSettings.
This also allows to specify options without
requesting controls.

Change-Id: I507e68cdb8cb46325689804d27c6d0561cada50b
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-07 08:28:08 +02:00
Lars Knoll
487010e579 Remove the last remainders of the old plugin system
Port the last two currently unused plugins (v4l and wmf) over to the new plugin
format.

Fix documentation that still mentioned Q_EXPORT_PLUGIN.

Change-Id: I18200dd792e8973687e92180fc41d11395b35132
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-05 12:44:29 +02:00
Kent Hansen
71e25920da Avoid string-based, dynamic lookup of signals
Qt5 has a new function QMetaMethod::fromSignal() for obtaining
the meta-method that corresponds to a particular signal (member
function).

This also avoids calling the virtual metaObject() function to
resolve the meta-method every time the signal is emitted; it is
known at compile-time which class the signals are defined in,
so it's safe to retain the meta-methods across calls.

Change-Id: I47328ec2dfc335c570fb18bcd304a2ee405bfd6e
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-05 04:20:47 +02:00
Johannes Zellner
a95de846d9 Add gstreamer.json to OTHER_FILES
Change-Id: Ic063a2bd96c9445b6d1af049df6cf3e33572d547
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-01 00:10:47 +02:00
Johannes Zellner
2564dbec68 Fix compilation when appsrc is not available.
Change-Id: I96c9aad94b5eb0734854bc7cf0126cad6841c0cd
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-05-21 20:28:56 +02:00
Lev Zelenskiy
8ce488249e GStreamer player session: remove code for old playbin.
We only support 'playbin2'.

Change-Id: Ibe35f71377862cb83742c2f9b606c5e2fdd5199d
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-14 05:37:09 +02:00
Lev Zelenskiy
db9a6de400 QAudioOutput: low-latency related changes.
- Decrease timer period to 10ms;
- Set PulseAudio buffer size if specified by the user;
- Set PulseAudio buffer size to 40ms if not specified;
- Always request 1 chunk of data at a time in pull mode;

Change-Id: If95c097c67c3342f733bde9e699518741d7ef991
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-14 05:34:42 +02:00
Lev Zelenskiy
da12ea2e80 Update duration information after switching to PLAYING state.
For rtsp streams duration information might not be available
until playback starts.

Change-Id: Id8829408a4bd2c0fc6a89f2d059d23a5a95d940e
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-11 07:10:27 +02:00
Lev Zelenskiy
26e4c8cff7 When resource is lost pause the pipeline instead of stopping it.
Change-Id: Iccbf2f820ec6373d5853accc064dad659858514c
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-11 07:09:49 +02:00
Lev Zelenskiy
3d0dc61b9f QGStreamerPlayerSession: unref pads after using them.
Change-Id: I3eec73eca5c2da3c449f362da8639a6dfb52a9e9
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-11 04:42:39 +02:00
Lev Zelenskiy
4bb755598b QGstreamerMetaDataProvider: fix keys not mapped properly.
Add a key which is mapped against the QGstreamerMetaDataKeyLookup,
not the original Gstreamer key.

Change-Id: I2e20b102e97b9a3a7909ff925f195cd0bdff1775
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-11 04:40:55 +02:00
Dmytro Poplavskiy
69c1ecbffd Gst played: removed GST_SEEK_FLAG_ACCURATE flag
Forcing accurate seeking may be very slow for some files,
it's not intended to be used with media players.

Change-Id: I9fe759f6effa447a800aeea321cc46617c64866f
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-10 05:44:46 +02:00
Thiago Macieira
b2b92dad82 Change uses of {to,from}Ascii to {to,from}Latin1
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.

Task-number: QTBUG-21872
Change-Id: Ic591779a3431999c007fb0ff362c7e25ce54097e
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-05-04 13:36:08 +02:00
Dmytro Poplavskiy
b36e2f5209 Replaced QMediaRecorderControl::play/stop/pause with setState
This allows to introduce new states without breaking BC.

Change-Id: I03c064cec92d6745b251a51cfb301e7f01f4b765
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-02 04:59:17 +02:00
Dmytro Poplavskiy
b7935a84d7 Added QMediaRecorder::status property
QMediaRecorder::state property represents the user request and
changed synchronously during record(), pause() or stop() calls.

Recorder status is changed asynchronously
and represents the actual status of media recorder.

This also makes API more consistent with QMediaPlayer and QCamera.

Change-Id: I80b4aaa70bb88e555c492908da8c29d0fc5ed5ea
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-02 03:15:01 +02:00
Jonathan Liu
641474ab10 Fix MinGW-w64 compilation
Change-Id: I812b53e822947a9f85d6523722c6a4f9e57e0426
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-30 11:04:05 +02:00
Jonas Rabbe
a3b6eabd45 Split gstreamer plugin into smaller plugins providing fewer services
The gstreamer blob has been split into four plugins: audiodecoder,
camerabin, mediacapture, and mediaplayer.
Note: camerabin is still disabled because it is untested camerabin2
implementation.
A new qmake configuration use_gstreamer_camera has been introduced
and is needed for the mediacapture plugin to expose the camera
service. This configuration has been disabled by default.
Shared functionality has been moved to the internal gsttools library.

Change-Id: Ifb2604f440cfa97513d39f5d7978766c88eaec45
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-27 09:22:09 +02:00
Michael Goddard
2a7c2e695b Make sure the audio/video availability information changes atomically.
So there's a consistent picture of the stream availability.

Change-Id: Id7ea166353c0151fcc11105a1e233e9fe8df9cc6
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-04-27 05:05:30 +02:00
Thomas McGuire
7c84225cc8 Move QVideoWindowControl out of widgets.
There is no widget dependency in it, and this enables the QML
Video element to support video overlays later.

Change-Id: I7ebcde350f9595a9f7c319663ff745930535a8a7
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-25 04:02:15 +02:00
Lev Zelenskiy
1a71385d6a Emit connection-failed signal if gst_pad_alloc_buffer fails.
Buffer allocation might fail for requested format.
We need to emit connection-failed signal
and allow backend to insert colorspace transformation element.

Change-Id: I9a101bb3c027f150c68bbeaba8ab932deded47ea
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-20 08:47:03 +02:00
Michael Goddard
5f7b64346d Expose the audio category information for streams.
QAudioOutput and QSoundEffect now have a category property so that
system volume mixing or processing can be applied.

Initially just pulseaudio supports this but Windows Vista etc should also
work.

Change-Id: I6855b08367e5a055ac7dfcffd644c98bfd7c5a4e
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-04-16 10:56:34 +02:00
bigbearzhu
8441d2e32e buffer should only be available when m_buffersAvailable > 0.
Change-Id: I730fcbf6aa4fc446d12c64fcb7cfd410be96a20d
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-16 09:44:47 +02:00
Lev Zelenskiy
1b94f984c9 GstVideoConnector: make sure downstream filter is in correct state.
When requesting a buffer from downstream filter,
check if downstream element is in NULL state,
and wait for up to 1 second for it to switch.
Otherwise gst_pad_alloc_buffer returns GST_FLOW_WRONG_STATE and
pipeline stalls.

Change-Id: Ic0539c41638ab3bfb548a30043ebe925675b0b6f
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-04-16 03:29:40 +02:00
Thomas Senyk
02efdccae9 add #include <unistd.h> to classes which use ::getpid
I got  "error: ‘::getpid’ has not been declared" and solved it with
adding #include <unistd.h>

Updated version of change 23032.
Now including <sys/types.h> as well.

Change-Id: I969845e1c4d5b72a223f6f4e0050b2fb342b8f17
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-13 03:28:29 +02:00
bigbearzhu
e91e63435f Translated corresponding Gstreamer errors to QAudioDecoder::FormatError
Change-Id: I34834075ea98c163251e7a9aca1fb7bc486ad7e9
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-13 03:28:21 +02:00
Michael Goddard
e057fd9e8a Move QAudioDecoder to public.
To get better feedback between alpha & beta.

Change-Id: I3620825fb9c2bb9de69951cf1d583b191d62cb0d
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-04-11 03:32:00 +02:00
Lev Zelenskiy
2acb594de2 GStreamer backend: set initial volume and mute values.
For each stream set initial volume to 100 and mute state to FALSE.

Change-Id: I529a82c12f0fd65277f97193b3feed7f9782e4c0
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-05 05:52:19 +02:00
Lev Zelenskiy
cc33b63fa5 Reset playbin state to NULL on end of stream signal.
According to GStreamer documentation "playbin should be set
back to READY or NULL state, then the "uri" property should be set
to the new location and then playbin be set to PLAYING state again."
We reset playbin to NULL state and then call setMedia() again
in case playback is restarted.

Change-Id: If7efbf8d88e0aad461c3d1d8b802c6621af221f7
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-04-05 02:40:17 +02:00
bigbearzhu
df3f5d790f Fixed major mem leak of unfreed GstTagList when playing ogg files.
Could cause serious leak if ogg files contain coverart image.
Should use gst_tag_list_fee to free the used taglist.

Change-Id: I8f7b799729b84ad9a2ca45bc3e31f37a987a5885
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-04 02:46:58 +02:00
Lev Zelenskiy
d8b688f8af Fixed: Streams information is not updated properly for RTSP streams.
Changes to QGstreamerPlayerSession:
Handle video-changed, audio-changed, and text-changed signals.
Call getStreamsInfo() to update streams information.

Change-Id: I8bfead3268771245635424b5f1debff624bbe038
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-28 08:09:58 +02:00
Yuchen Deng
6522fecfb1 Build fix on Windows
Change-Id: I2666a81837dc78342b03a7cb5a33b406fd917661
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-27 06:28:25 +02:00
Ling Hu
6e177b4dce Minor improvements on resource-policy interfaces
Change-Id: I3e9c7c4d1fca90e0fb97b0058e9b5a5e34940025
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-26 09:14:30 +02:00
Ling Hu
dceabd4b5c Make gstreamer player backend reserve/release video resource.
Use request/release of various video related controls as an indication for the decision.

Change-Id: I3a2a288c7c46ca62459896745bbdda26961bb181
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-23 09:53:57 +01:00
Ling Hu
7e877a76db Implemented availability control for gstreamer player backend
Change-Id: I6d736b90ad59e258eb6f20befea8cfe1afce423a
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-23 09:53:54 +01:00
Ling Hu
138242fb2d Added resource policy support though internal plugin system
Change-Id: I374be17d49b6a5eed0b1ed94d0b9ca5f9a2caa9b
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-23 09:53:49 +01:00