| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| |
| |
| |
| | |
This pointer is guaranteed not to be null by the check in
AbstractAudioEffect::setParameterValue.
Task-number: QTBUG-4659
Reviewed-by: trustme
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
By refactoring the static capabilities / parameters interface
exposed by AbstractAudioEffect-derived classes to the EffectFactory,
the latter's implementation no longer needs access to the headers
for native effect classes.
Previously, during the initialization phase, the EffectFactory
tried to create an instance of each native effect class, in order to
determine whether that effect is supported. This is now done inside
the backend class for each effect, thereby improving encapsulation.
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When applying effects to an audio stream, we must ensure that the MMF
utility API (CMdaAudioPlayerUtility or CVideoPlayerUtility) instance has
loaded a controller before calling attempting to create a CAudioEffect-
derived object. If the controller has not been loaded, construction of
the effect object will fail. Even if we mitigate against this, calling
CAudioEffect::ApplyL() will only have an effect if there is a controller
object - or more precisely, a DevSound instance - on which to apply the
effect.
This patch delays construction of the effect object until the MediaObject
has transitioned out of the LoadingState, indicating that an underlying
DevSound instance will have been created.
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change is to work around a limitation in the Phonon::EffectWidget
class. This widget only displays sliders for parameters with numeric
values if the variant type of the parameter is QReal and the range is
exactly -1.0 to +1.0; otherwise, a spinbox is displayed. This is
rather inconvenient for many effects, such as the audio equalizer, for
which a slider is a much more natural UI control.
The MMF backend therefore reports the type of numeric parameters to
be QReal, and the range to be -1.0 to +1.0. Internally, the integer
range for the parameter is stored. Changes to the parameter value are
converted from the client-side, floating point representation to the
internal, integer representation.
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| | |
This improves the small-screen layout of the equalizer
configuration dialog.
Task-number: QTBUG-4659
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch addresses the following deficiencies in the existing
implementation of audio effects:
1. Native effect objects (e.g. CAudioEqualizer, CBassBoost etc)
were created frequently, just in order to check whether a given
effect is supported, or retrieve the list of parameters which it
requires. Although this is in part due to a deficiency in the
S60 audio effects API (it doesn't have a 'capability query' concept),
it can be improved by using caching. This patch introduces a
singleton EffectFactory object, which lazily initializes a data
structure containing information about support and parameters.
2. In order to either query effect support, the native effect object
ultimately needs to access a DevSound instance. Previously, the
effect object was provided with a CMdaAudioPlayerUtility object.
If this player utility has not loaded an MMF controller plugin
*before* the effects object makes any calls to the player utility,
incorrect results will be returned. This was observed in the
previous code. For querying, we don't actually need to load an
MMF controller; instead, we would like to directly provide a
CMMFDevSound instance to the effect object. Unfortunately, this
API is not available in public S60 SDKs, so we must use the next
lowest interface available, namely CMdaAudioOutputStream.
By making this change, this patch ensures that support and parameter
queries made via the EffectFactory will return the correct result.
At this point, however, effect settings made via the Phonon API
are not actually applied to the audio output. Fixing this will
require notifying the audio effects backend nodes of state changes
in the MediaObject.
Task-number: QTBUG-4659
Reviewed-by: Espen Riskedal
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some instances of the changeState signal declaration had the newState and
oldState parameters in the wrong order. While this has no effect on the
behaviour of the code, it can be confusing to developers reading it.
Reviewed-by: trustme
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4659
Reviewed-by: trustme
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Removed calls to the video overload of the audio effect
constructors, e.g. CAudioEqualizer::NewL(VideoPlayerUtility&)
Task-number: QTBUG-7223
Reviewed-by: trustme
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-4663
Reviewed-by: Frans Englich
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The following source types are handled in MediaObject::createPlayer
Invalid, Disc, Stream, Empty
The code removed in this patch is therefore never executed.
Reviewed-by: Frans Englich
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-6214
Reviewed-by: Frans Englich
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The main changes are:
1. MediaObject emits prefinishMark at the appropriate instant
2. MediaObject emits aboutToFinish at the appropriate instant
3. MediaObject switches to next source when playback completes
Task-number: QTBUG-6214
Reviewed-by: Frans Englich
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Modified the sequence of calls made to the MMF APIs when seeking
during ongoing playback. This fixes a bug found during early testing
of streaming playback, whereby playback would not resume following
the seeking operation. This was due to an interaction between the
pause / seek / play operations, and the buffering callbacks received
from the MMF, which caused the backend to enter an incorrect state.
Task-number: QTBUG-4660
Reviewed-by: Frans Englich
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When clips are buffering (either at the start of playback, or
during playback, when buffer levels drop due to e.g. CPU, file system
or network load), the backend receives notification from the MMF.
While buffering is ongoing, the backend periodically queries the
filling status and emits a signal.
Task-number: QTBUG-4660
Reviewed-by: Frans Englich
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Because the MIME type of the stream cannot always be deduced from the
URL, we assume that it is a video stream. This is based on the
assumption that the video controllers will be capable of parsing
the container formats for audio-only, as well as video clips. Note
that this assumption may not hold on all devices.
Note that most implementations of the MMF client APIs do not support
HTTP streaming (a.k.a. progressive download). The backend has therefore
only been tested with RTSP streams - see the JIRA entry for further
details.
Task-number: QTBUG-4660
Reviewed-by: Frans Englich
|
| |\
| | |
| | |
| | | |
mmfphonon
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Consistently capitalize error sentences
* Simplify & fix code/documentation.
Task-number: QTBUG-4994
Reviewed-by: TrustMe
|
| | |
| | |
| | |
| | | |
Reviewed-by: Frans Englich
|
| |/
| |
| |
| | |
Reviewed-by: Frans Englich
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the mediaplayer receives a state change into the ErrorState, it
calls pause() on the media object. Previously, this caused the
backend to transition into PausedState. When the mediaplayer subsequently
called errorString() to retrieve the error message, an empty string was
returned because the backend was no longer in the ErrorState.
Task-number: QTBUG-4994
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Note that changing Utils from a namespace into a class, and then
using Q_DECLARE_TR_FUNCTIONS in the class declaration, was necessary
in order to be able to call tr(...) from the implementation of
Utils::symbianErrorToString.
Task-number: QTBUG-4994
Reviewed-by: Oswald Buddenhagen
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/global/qglobal.h
src/gui/dialogs/qfiledialog_win.cpp
src/plugins/qpluginbase.pri
src/qbase.pri
tests/auto/selftests/expected_cmptest.txt
tests/auto/selftests/expected_crashes_3.txt
tests/auto/selftests/expected_longstring.txt
tests/auto/selftests/expected_maxwarnings.txt
tests/auto/selftests/expected_skip.txt
tools/assistant/tools/assistant/doc/assistant.qdocconf
tools/qdoc3/test/assistant.qdocconf
tools/qdoc3/test/designer.qdocconf
tools/qdoc3/test/linguist.qdocconf
tools/qdoc3/test/qmake.qdocconf
tools/qdoc3/test/qt-build-docs.qdocconf
tools/qdoc3/test/qt.qdocconf
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The CVideoPlayerUtility API requires both a native window handle
and an absolute screen rectangle in order to define the location
of the rendered video output. On certain devices, such as the
Nokia E75, which runs S60 3.2, if the absolute rectangle extends
outside the physical screen extent, no video is rendered.
This change works around this defect in the platform by clipping
the video rectangle to the physical screen extent.
Task-number: QTBUG-5467
Reviewed-by: trustme
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-5467
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order to prevent flicker or - on some versions of the platform -
video disappearing from the screen altogether, the video controller's
DSA session must be suspended while the window control is redrawn.
Task-number: QTBUG-5467
Reviewed-by: Jason Barron
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Certain S60 video stacks require the screen region in which video
will be rendered to be painted with a zero brush (opaque black for
EColor16MU displays; transparent black for EColor16MA / EColor16MAP).
Task-number: QTBUG-5467
Reviewed-by: Jason Barron
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
doc/src/modules.qdoc
examples/assistant/simpletextviewer/findfiledialog.cpp
examples/webkit/fancybrowser/mainwindow.cpp
src/gui/widgets/qtabbar.cpp
src/gui/widgets/qtabbar_p.h
tests/auto/qpixmap/tst_qpixmap.cpp
tools/assistant/compat/helpdialog.cpp
tools/assistant/compat/tabbedbrowser.cpp
translations/translations.pri
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was introduced by d0b0b525de.
The use of QT_NO_DEBUG macros causes release-armv5 builds to fail
when the -release option is passed to configure.
This change causes the debugging code (ObjectDump and related
classes) to be included in release builds, although these functions
are not executed.
This is a temporary fix; task QTBUG-6012 has been created for
re-removing this code from release builds.
Reviewed-by: Frans Englich
|
| |\ |
|
| | |
| | |
| | |
| | | |
Over src/ tools/ examples/ and demos/
|
| |\ \
| | |/ |
|
| | |\ |
|
| | | |\ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Reviewed-by: paul
|
| | | |\ \
| | | | | |
| | | | | |
| | | | | | |
4.6-staging2
|
| | | | |\ \ |
|
| | |\ \ \ \ \
| | | | |/ / /
| | | |/| | | |
|
| | | |\ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Conflicts:
src/gui/painting/qblendfunctions.cpp
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Task-number: QTBUG-5355
Reviewed-by: TrustMe
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
- Replaced VolumeObserver and VideoOutputObserver interfaces with
signals.
- Added signals for propagating changes in aspect ratio and scale mode
from VideoOutput to VideoPlayer.
- Removed VideoPlayer::getNativeWindowSystemHandles. Interaction with
window system is moved into VideoOutput, so that VideoPlayer is better
focussed on its main task: interacting with CVideoPlayerUtility.
- WId changes, resize and move events received by the VideoOutput
widget cause it to emit a videoWindowChanged signal. This is received
by the VideoPlayer, which triggers a call to updateVideoRect. The
main task of this function is to calculate the scale factors which are
provided to the MMF via CVideoPlayerUtility::SetScaleFactorL. Note
that:
i) This function must be called both before and after the call
to SetDisplayWindowL. For changes in aspect ratio or scale
mode, setting the scale mode after updating the display window
is sufficient. However, testing showed that, when switching in
or out of full-screen mode, two calls were necessary in order
to preserve the correct aspect ratio.
ii) The screen rectangle passed to the MMF is still the full
window extent; it is not the region in which video will
actually be rendered. The post-processor will fill in the
remainder of the window with a background colour (typically
black). If, on the other hand, we passed in the actual video
display rectangle, we would need to do this background painting
in the widget. This in turn would require a change to QtGui:
at present, we can only disable blitting on a per-widget basis
(by setting QWExtra::disableBlit). If we needed to paint the
borders of the video window, disableBlit would need to contain
the actual DSA region, rather than just a single boolean flag.
Task-number: QTBUG-5585
Reviewed-by: Frans Englich
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
When qmediaplayer receives a stateChanged(ErrorState) signal, it first
displays a dialog, and then calls pause() on the media object. This
change allows that pause command to be executed on the underlying MMF
client API.
Reviewed-by: Frans Englich
|