diff options
| author | thedoc <thedoc@atom.(none)> | 2009-12-23 11:24:17 +0100 |
|---|---|---|
| committer | thedoc <thedoc@atom.(none)> | 2009-12-23 11:24:17 +0100 |
| commit | bc8b453f3e2a5a142faa23efdb777165b33e788d (patch) | |
| tree | 12da09e98d3fbbfdee25d133a40015fb7665e789 /lib/base/filepush.cpp | |
| parent | 9cfc3300e11cff63d3532d43d95bd17cba5b9cb4 (diff) | |
| parent | 5808051426cab03a0dc117c73b941b0afb05a87d (diff) | |
| download | enigma2-bc8b453f3e2a5a142faa23efdb777165b33e788d.tar.gz enigma2-bc8b453f3e2a5a142faa23efdb777165b33e788d.zip | |
Merge branch 'master' of git.opendreambox.org:/git/enigma2
Diffstat (limited to 'lib/base/filepush.cpp')
| -rw-r--r-- | lib/base/filepush.cpp | 26 |
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); } |
