Commit Graph

32 Commits

Author SHA1 Message Date
Juho Hämäläinen
1d2a4045a2 Do not try to acquire resources in setMedia() in mediaplayer.
Acquire() is called in play() anyway.

Change-Id: I4c6688006d74490d774813b3f1fb381d915ffe23
2016-10-06 21:36:18 +00:00
Juho Hämäläinen
dc7453c28a Add resource release timer when pausing or stopping media.
If media is paused, stopped, or end of media, if state hasn't changed to
playing state, release the resources. The idea with the timer is that if
for example media player is playing one song which ends, there won't be
release()/acquire() unnecessarily if next song is immediately set as
media and started playing.
2016-10-06 21:36:18 +00:00
Yoann Lopes
69cc0fb330 GStreamer: emit mediaStatus changes before state changes
This makes sure all mediaStatus changes are emitted, even when some
action is done on the media player as a result of a state change.

Task-number: QTBUG-49578
Change-Id: I60153cd8e1d665797a25549ab81afcfb553ce2cc
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2016-10-06 10:30:07 +00:00
Yoann Lopes
63cff37741 QMediaPlayer: handle resource files in a cross-platform way.
It was the backend's responsibility to handle resource files in an
appropriate way. In practice, it was either not handled at all,
or implemented in an almost identical manner in every backend
that does handle it.
This is now dealt with in QMediaPlayer, always passing to the
backend something it will be able to play. If the backend has the
StreamPlayback capability, we pass a QFile from which it streams
the data. If it doesn't, we copy the resource to a temporary
file and pass its path to the backend.

Task-number: QTBUG-36175
Task-number: QTBUG-42263
Task-number: QTBUG-43839
Change-Id: I57b355c72692d02661baeaf74e66581ca0a0bd1d
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Peng Wu <peng.wu@intopalo.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-04-07 17:21:47 +00:00
Antti Kokko
bbfccc7135 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Change-Id: I1c6faa4f59f8eca54f01ef20941fa60161dd7872
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2015-02-12 10:27:47 +00:00
Yoann Lopes
108dda7a90 GStreamer: port to 1.0.
0.10 is still used by default.
To enable GStreamer 1.0, pass GST_VERSION=1.0 to qmake
for qtmultimedia.pro.

Contributions from:
Andrew den Exter <andrew.den.exter@qinetic.com.au>
Ilya Smelykh <ilya@videoexpertsgroup.com>
Jim Hodapp <jim.hodapp@canonical.com>
Sergio Schvezov <sergio.schvezov@canonical.com>

Change-Id: I72a46d1170a8794a149bdb5e20767afcc5b7587c
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
2014-11-27 23:30:05 +01:00
Andrew den Exter
3b20608fe3 Ensure pre-roll frames are displayed when gstreamer backend is paused.
Perform a seek before transitioning from the stopped state to paused or
playing to force the pipeline to resupply the video sink with any
pre-roll buffer it may have previously ignored during loading.  And
don't assume showPrerollFrames to be true if the current state is not
stopped as the policy handling may have prevented an effectual state
change.

Change-Id: I288a70bc4da32f3534eab4b14702ca8f8fdb4222
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-09-12 14:32:42 +02:00
Antti Kokko
2732e23887 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3 & LICENSE.GPLv2
- Removed LICENSE.GPL

Change-Id: Ied06887225df341064c12bcc14c259ae74116f2e
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
2014-08-24 17:30:13 +02:00
Yoann Lopes
a7f924186c GStreamer: fix looping a media when it's loaded from qrc.
When playing a media for the second time, the backend resets the
the media by calling setMedia() with the same value.
The problem is that setMedia() clears the previous media, which is
a QFile in this case and is the one we are trying to set again...
The QFile was deleted, causing the current media to be a dangling
pointer.

Change-Id: I6854b40212fd084d1e31e756a040a02ad103b7ba
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-07-03 15:45:46 +02:00
Zhang Xingtao
9a4dd5fe8e fix: 'm_state' was not declared in this scope
Error occurred when building with DEBUG_PLAYBIN defined.
It should be m_currentState from context.

Change-Id: Iad59966ca19c9d1b589fc8641599494436a0a5f3
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Jing Bai <doris.bai@gmail.com>
2014-03-28 11:22:19 +01:00
Sergio Ahumada
399500f87e Update copyright year in Digia's license headers
Change-Id: Ia8c1c38aba1544603fada8c414cc856f365fd15b
Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2013-01-10 17:56:01 +01:00
Andras Becsi
78ce69d3dd Remove nonfunctional mediaDownloadEnabled property
I suppose this was introduced after an API freeze to try
to support on-disk buffering but since the code does not
set the GST_PLAY_FLAG_DOWNLOAD flag on the player element
the feature is not only undocumented but also nonfunctional.

If on-disk buffering is needed we should add proper
API to enable/disable it for all backends which might
be possible with Qt 5.1 the earliest.

Change-Id: I6b42a06166509db0023a3e0263ecc3a36f0d2bdb
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
2012-11-20 16:26:21 +01:00
Iikka Eklund
dcbbad869e Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: Id77334cfb15de096941c88e32d04ca07b4eb4709
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-24 09:05:51 +02:00
Dmytro Poplavskiy
f844d6d9da Gst player backend: removed fifo based stream playback fallback
It was used on systems without appsrc element support,
but since the appsrc is part of base elements for a long,
thre is a very little value in fifo based fallback.

Change-Id: I162233cbb55821443c892f00ebd29c0498ae7152
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-07-19 09:08:50 +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
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
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
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
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
Lev Zelenskiy
10b0063401 Move most of playlist API to private.
Moved objects either not needed to be public or require API review/redesign.

Change-Id: Ibeb8b8c9c9a74bea32191c119fa4daaffde57c17
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-06 07:54:47 +01:00
Michael Goddard
5ed255ead6 Don't reset saved playback position if playback resource is denied.
Resource denied and resource lost should be handled differently,
on resource lost the current playback position should be preserved,
while on resource denied player state should be changed to paused
with pending position unchanged.

(from qtmobility, SHA1 4e457432ef0f50cb91a1043f0390427cafcaef0d)

Change-Id: I5ce755409c430598d68ee6a6a90f9d0858ea9da9
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-27 05:26:47 +01:00
Lev Zelenskiy
39c96db2b3 Changes to QMediaPlayer GStreamer backend to allow setPosition before pause
Do not display prerolled frames in stopped state.
Instead store prerolled frame and display it only after switching to
pause or playback state.
Added new unit test with a sample video file to check this functionality.

Change-Id: I3fd159a199b65ca10fdf9843af5675c5ae9dad05
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 08:56:34 +01:00
Jason McDonald
5e801e2793 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I20e5215108c6ebd5f8474fed5c3665118e4791e6
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 07:08:05 +01:00
Jason McDonald
6390157fd7 Update obsolete contact address.
Replace Nokia contact email address with Qt Project website.

Change-Id: Ie8cd560b6d9a2c6e552b6be1ad8bc96c80a6535c
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:21:51 +01:00
Jason McDonald
0dca769d5a Update year in Nokia copyright headers.
Update headers from before 2011 that were missed in the previous commit.

Change-Id: Ib0fd91a39ffc57117fe01280e34519c3f914fac0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-12 01:08:31 +01:00
Toby Tomkins
581564c990 Fixed QtMultimedia core namespace compilation.
Change-Id: Ie276a7766bd26f3e49b2bc9c1a28ec96f1e3e4b0
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-11-25 06:52:21 +01:00
Dmytro Poplavskiy
7941413f3f Gst player backend: don't show the first frame when resuming playback.
It's necessary to temporarily disable show-preroll-frame of video sink,
load pipeline to paused state, seek to requested position,
and after seeking is finished (position updated) playback is started
with show-preroll-frame restored.

Task-number: MOBILITY-3030
Reviewed-by: Jonas Rabbe
Change-Id: Ide1e6d909dd53f670229c293bc6be496a54e8626
(cherry picked from commit 625cce87e28fc7b5ec8785824affb3129fd3607b)
Reviewed-on: http://codereview.qt-project.org/5500
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2011-09-27 01:06:04 +02:00
Michael Goddard
fdac892bbc Remove most of the "mobility" references.
Docs still need some fixing, but there are some legitimate usages of
it there.

Change-Id: I94c7b68788ce97829711a4384884d7e52fe84162
Reviewed-on: http://codereview.qt.nokia.com/1736
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2011-07-19 08:40:59 +02:00
Jyri Tahtela
a925bb4a9e Update licenseheader text in source files for qtmultimediakit Qt module
Replace old license header with correct one.

Change-Id: Ibff8fbea6595bb80f1122d55db2194accd319308
Reviewed-on: http://codereview.qt.nokia.com/1318
Reviewed-by: Jyri Tahtela <jyri.tahtela@nokia.com>
2011-07-08 07:59:00 +02:00
Ling Hu
ca25844e52 Fix playback problem with RTSP streaming for QMediaPlayer(gstreamer)
Change-Id: Ie920cbb5a377e810aee3e106bb50deb46365ce3b
Reviewed-by:Michael Goddard
(cherry picked from commit 05841ae6a9e0ffac623f9b00565bf33a52a22ecd)
Reviewed-on: http://codereview.qt.nokia.com/983
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-07-05 06:50:04 +02:00
Michael Goddard
2a34e88c1e Initial copy of QtMultimediaKit.
Comes from original repo, with SHA1:
2c82d5611655e5967f5c5095af50c0991c4378b2
2011-06-29 13:38:46 +10:00