From 959a162c91097fe6ff3890c253aa09ab64691486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 6 Sep 2010 19:09:16 +0000 Subject: [PATCH] Always call PlaybackManager::Init() in FormatChanged(). This makes sure we don't deal with stale PlayingState and other outdated data when the Controller initializes to a new file, but does not need to teardown the old and setup new media nodes. Fixes ticket #3855. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38551 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../media_node_framework/NodeManager.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/apps/mediaplayer/media_node_framework/NodeManager.cpp b/src/apps/mediaplayer/media_node_framework/NodeManager.cpp index 252c155b46..04e9847a7a 100644 --- a/src/apps/mediaplayer/media_node_framework/NodeManager.cpp +++ b/src/apps/mediaplayer/media_node_framework/NodeManager.cpp @@ -86,13 +86,13 @@ NodeManager::Init(BRect videoBounds, float videoFrameRate, PlaybackManager::Init(videoFrameRate, loopingMode, loopingEnabled, speed); // get some objects from a derived class - if (!fVideoTarget) + if (fVideoTarget == NULL) fVideoTarget = CreateVideoTarget(); - if (!fVideoSupplier) + if (fVideoSupplier == NULL) fVideoSupplier = CreateVideoSupplier(); - if (!fAudioSupplier) + if (fAudioSupplier == NULL) fAudioSupplier = CreateAudioSupplier(); return FormatChanged(videoBounds, videoFrameRate, preferredVideoFormat, @@ -145,11 +145,8 @@ NodeManager::FormatChanged(BRect videoBounds, float videoFrameRate, return B_OK; } - if (videoFrameRate != FramesPerSecond()) { - TRACE(" -> need to Init()\n"); - PlaybackManager::Init(videoFrameRate, LoopMode(), IsLoopingEnabled(), - Speed(), MODE_PLAYING_PAUSED_FORWARD, CurrentFrame()); - } + PlaybackManager::Init(videoFrameRate, LoopMode(), IsLoopingEnabled(), + Speed(), MODE_PLAYING_PAUSED_FORWARD, CurrentFrame()); _StopNodes(); _TearDownNodes();