| 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
|
|
|
|
|
|
|
|
| |
This ensures that Phonon::MediaObject::setNextSource is called before
the first clip finishes playback, and therefore that the next clip
is played once the first finishes.
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The crash occured since d->cancelAction is child of d->cancelButton,
which is essentially same as d->cancel pointer. Due to parent/child
relationship, deleting d->cancel deleted also chilren including
cancelAction. Then explicitly deleting already deleted
d->cancelAction (dangling pointer) caused KERN-EXEC 3 crash.
There is no need to delete d->cancelAction since it is deleted via
parent/child relationship.
Task-number: QTBUG-6109
Reviewed-by: Miikka Heikkinen
|
|
|
|
|
|
|
| |
The following warning was reported by Symbian compilers:
tools\xmlpatterns\main.cpp:83: warning: illegal empty declaration
Reviewed-by: TrustMe
|
|\
| |
| |
| | |
4.6-staging2
|
| |
| |
| |
| |
| |
| |
| | |
Defining QT_USE_MATH_H_FLOATS will enable single precision math
functions that are called via Qt wrappers (qSin, qCos ...).
Reviewed-by: axis
|
| |
| |
| |
| | |
RevBy: Trust me
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-6211
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
bindTexture() flipped images in-place, to reduce data copying.
But there is one case where the in-place is worse: when the
QImage is not detached. In that case, the flip was copying
the entire image and then flipping the lines, effectively
processing the contents twice. The new version uses mirrored()
to reduce the overhead for non-detached images.
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We cannot call realloc with aalloc smaller than asize.
Also include obvious optimisation: take the qMin computation out of
the loop.
Task-number: QTBUG-6416
Reviewed-by: Thiago
|
| |
| |
| |
| |
| |
| |
| |
| | |
Otherwise the list grow and waste memory and CPU each time the
stylesheet is changed or the widget is shown
Reviewed-by: Thierry
Task-number: QTBUG-6409
|
| |
| |
| |
| |
| |
| |
| | |
This happened when inserting the gap over a place holder item.
Task-number: QTBUG-6107
Reviewed-by: Gabi
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Olivier
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
On X11, Font might have a foundry within bracket.
This foundry is set by the font combobox, and makes the font
comparison fail.
Make sure the other attributes (size, bold, ...) are preserved
when the font is changed.
Reviewed-by: Gabriel
|
| |/
| |
| |
| |
| | |
Reviewed-by: Olivier
Task-number: QTBUG-6284
|
| |\
| | |
| | |
| | | |
4.6-staging2
|
| | |\ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|