Author: stippi Date: 2010-09-06 21:09:16 +0200 (Mon, 06 Sep 2010) New Revision: 38551 Changeset: http://dev.haiku-os.org/changeset/38551 Ticket: http://dev.haiku-os.org/ticket/3855 Modified: haiku/trunk/src/apps/mediaplayer/media_node_framework/NodeManager.cpp Log: 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. Modified: haiku/trunk/src/apps/mediaplayer/media_node_framework/NodeManager.cpp =================================================================== --- haiku/trunk/src/apps/mediaplayer/media_node_framework/NodeManager.cpp 2010-09-06 19:06:46 UTC (rev 38550) +++ haiku/trunk/src/apps/mediaplayer/media_node_framework/NodeManager.cpp 2010-09-06 19:09:16 UTC (rev 38551) @@ -86,13 +86,13 @@ 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 @@ 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();