aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-12-09 19:55:31 +0100
committerghost <andreas.monzner@multimedia-labs.de>2009-12-09 19:55:31 +0100
commit67a9cce495c089020439834bb27cd148296c3655 (patch)
tree6af7b7729bd3020872c473db52fc797a269979e2 /lib
parentd4426631ae17978c6bb8121e1ca826e16eccc6de (diff)
parent2eccebcc6bac4cd66864de0342fe4eede4029537 (diff)
downloadenigma2-67a9cce495c089020439834bb27cd148296c3655.tar.gz
enigma2-67a9cce495c089020439834bb27cd148296c3655.zip
Merge branch 'bug_263_fix_timeshift_live_transition' into experimental
Diffstat (limited to 'lib')
-rw-r--r--lib/base/filepush.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/lib/base/filepush.cpp b/lib/base/filepush.cpp
index 3412c84a..91f24ba0 100644
--- a/lib/base/filepush.cpp
+++ b/lib/base/filepush.cpp
@@ -37,7 +37,6 @@ void eFilePushThread::thread()
size_t written_since_last_sync = 0;
- int already_empty = 0;
eDebug("FILEPUSH THREAD START");
/* we set the signal to not restart syscalls, so we can detect our signal. */
@@ -186,21 +185,23 @@ void eFilePushThread::thread()
if (m_buf_end == 0)
{
/* on EOF, try COMMITting once. */
- if (m_send_pvr_commit && !already_empty)
+ if (m_send_pvr_commit)
{
- eDebug("sending PVR commit");
-
struct pollfd pfd;
pfd.fd = m_fd_dest;
pfd.events = POLLIN;
- poll(&pfd, 1, 10000);
- sleep(5); /* HACK to allow ES buffer to drain */
- already_empty = 1;
-// if (::ioctl(m_fd_dest, PVR_COMMIT) < 0 && errno == EINTR)
-// continue;
- eDebug("commit done");
- /* well check again */
- continue;
+ switch (poll(&pfd, 1, 250)) // wait for 250ms
+ {
+ case 0:
+ eDebug("wait for driver eof timeout");
+ continue;
+ case 1:
+ eDebug("wait for driver eof ok");
+ break;
+ default:
+ eDebug("wait for driver eof aborted by signal");
+ continue;
+ }
}
/* in stream_mode, we are sending EOF events
@@ -230,7 +231,6 @@ void eFilePushThread::thread()
bytes_read += m_buf_end;
if (m_sg)
current_span_remaining -= m_buf_end;
- already_empty = 0;
}
// printf("FILEPUSH: read %d bytes\n", m_buf_end);
}