From ad355ec79d49bfe0a2c2ce329f9bf691d46a1950 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 3 Oct 2016 22:11:48 -0400 Subject: [PATCH] TITANIC: Fix playback of single-stream videos --- engines/titanic/support/avi_surface.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp index 38f44271f4f..5b11c7799e9 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 {