Enabled the code which sets the consumer run-mode based

on the current play back mode. I.e. paused or stopped
playback get's B_OFFLINE run-mode, which makes sure the
Consumer does not drop frames when they are too late.
When single stepping frames backwards, the producer may
have needed a lot of time to generate a frame and it may
arrive late, which is no problem when the video is paused.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38667 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2010-09-16 12:37:45 +00:00
parent 280a22fdec
commit 89f25d71bf
@@ -111,12 +111,17 @@ NodeManager::InitCheck()
void void
NodeManager::SetPlayMode(int32 mode, bool continuePlaying) NodeManager::SetPlayMode(int32 mode, bool continuePlaying)
{ {
// if (fMediaRoster && fMediaRoster->Lock()) { if (fMediaRoster != NULL && fMediaRoster->Lock()) {
// BMediaNode::run_mode runMode = mode > 0 ? BMediaNode::run_mode runMode = mode > 0 ?
// BMediaNode::B_DROP_DATA : BMediaNode::B_OFFLINE; BMediaNode::B_DROP_DATA : BMediaNode::B_OFFLINE;
// fMediaRoster->SetRunModeNode(fVideoConnection.consumer, runMode); status_t ret = fMediaRoster->SetRunModeNode(fVideoConnection.consumer,
// fMediaRoster->Unlock(); runMode);
// } if (ret != B_OK) {
printf("NodeManager::SetPlayMode(%ld), setting run mode failed: "
"%s\n", mode, strerror(ret));
}
fMediaRoster->Unlock();
}
PlaybackManager::SetPlayMode(mode, continuePlaying); PlaybackManager::SetPlayMode(mode, continuePlaying);
} }
@@ -690,8 +695,6 @@ NodeManager::_StartNodes()
bigtime_t perf = timeSource->PerformanceTimeFor(real + latency bigtime_t perf = timeSource->PerformanceTimeFor(real + latency
+ initLatency); + initLatency);
printf("performance time for %lld: %lld\n", real + latency
+ initLatency, perf);
timeSource->Release(); timeSource->Release();