diff options
-rw-r--r-- | engines/titanic/support/avi_surface.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp index 38f44271f4..5b11c7799e 100644 --- a/engines/titanic/support/avi_surface.cpp +++ b/engines/titanic/support/avi_surface.cpp @@ -221,7 +221,8 @@ void AVISurface::setupDecompressor() { _decoder->getVideoTrack(idx).getPixelFormat()); bool flag = false; - if (idx == 0 && _videoSurface) { + if (idx == 0 && _videoSurface && + _videoSurface->getPitch() == _movieFrameSurface[idx]->pitch) { const Graphics::PixelFormat &ff = _decoder->getVideoTrack(0).getPixelFormat(); const int vDepth = _videoSurface->getPixelDepth(); @@ -293,11 +294,10 @@ bool AVISurface::renderFrame() { if (!_framePixels) { if (_videoSurface->lock()) { - if (_streamCount == 1) { - // Original seems to call a stubbed empty method here. - // Likely this form of blitting to surface wasn't needed - } - + // Blit the frame directly to the video surface + assert(_streamCount == 1); + _videoSurface->blitFrom(Point(0, 0), &_movieFrameSurface[0]->rawSurface()); + _videoSurface->unlock(); } } else { |