aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-12-22 16:09:06 +0100
committerghost <andreas.monzner@multimedia-labs.de>2009-12-22 16:09:06 +0100
commita13c7eb8d063f3fc68562dfa3ffb8cbfc814219e (patch)
treea475b69b096c17d774c07a2d849d3f1aa8bd10b1 /lib
parent864bab84ceacbaa2cf2814aa74f1379a0b9c8426 (diff)
parent2eccebcc6bac4cd66864de0342fe4eede4029537 (diff)
downloadenigma2-a13c7eb8d063f3fc68562dfa3ffb8cbfc814219e.tar.gz
enigma2-a13c7eb8d063f3fc68562dfa3ffb8cbfc814219e.zip
Merge branch 'bug_263_fix_timeshift_live_transition'
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);
}