summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/phonon/qt7/backend.mm
diff options
context:
space:
mode:
authorGareth Stockwell <ext-gareth.stockwell@nokia.com>2009-11-06 17:00:12 (GMT)
committerGareth Stockwell <ext-gareth.stockwell@nokia.com>2009-11-13 16:28:27 (GMT)
commit3328e0ee94b94c83fe9d64f741bede6725f5c952 (patch)
tree616c02a944a96c75181bae060c3c028e47b2b4bd /src/3rdparty/phonon/qt7/backend.mm
parentb880e4d85caf17e43eb3bd4c9f358ca6f181a790 (diff)
downloadQt-3328e0ee94b94c83fe9d64f741bede6725f5c952.zip
Qt-3328e0ee94b94c83fe9d64f741bede6725f5c952.tar.gz
Qt-3328e0ee94b94c83fe9d64f741bede6725f5c952.tar.bz2
Implemented aspect ratio and scale mode handling in Phonon MMF backend
- 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
Diffstat (limited to 'src/3rdparty/phonon/qt7/backend.mm')
0 files changed, 0 insertions, 0 deletions