diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2007-04-17 15:47:54 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2007-04-17 15:47:54 +0000 |
| commit | 1917887e66e15f79b06830993365f8659623d1aa (patch) | |
| tree | 2ecc1fc67ec70176ebf8a7abf3fea6ad693f4825 /lib/dvb/decoder.cpp | |
| parent | 225c99450eab2aba7aa0e8ea3d2ff73da2910d46 (diff) | |
| download | enigma2-1917887e66e15f79b06830993365f8659623d1aa.tar.gz enigma2-1917887e66e15f79b06830993365f8659623d1aa.zip | |
add preroll, to start in frozen mode after play
Diffstat (limited to 'lib/dvb/decoder.cpp')
| -rw-r--r-- | lib/dvb/decoder.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index b49bb2c7..fcc38901 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -99,6 +99,8 @@ int eDVBAudio::startPid(int pid, int type) if (::ioctl(m_fd, AUDIO_SET_BYPASS_MODE, bypass) < 0) eWarning("audio: AUDIO_SET_BYPASS_MODE: %m"); + freeze(); + if (::ioctl(m_fd, AUDIO_PLAY) < 0) eWarning("audio: AUDIO_PLAY: %m"); return 0; @@ -225,6 +227,10 @@ int eDVBVideo::startPid(int pid, int type) eWarning("video: DMX_START: %m"); return -errno; } + + eDebug("FREEZE.\n"); + freeze(); + if (::ioctl(m_fd, VIDEO_PLAY) < 0) eWarning("video: VIDEO_PLAY: %m"); return 0; @@ -257,12 +263,14 @@ void eDVBVideo::flush() void eDVBVideo::freeze() { + eDebug("VIDEO_FREEZE"); if (::ioctl(m_fd, VIDEO_FREEZE) < 0) eDebug("video: VIDEO_FREEZE: %m"); } void eDVBVideo::unfreeze() { + eDebug("VIDEO_CONTINUE"); if (::ioctl(m_fd, VIDEO_CONTINUE) < 0) eDebug("video: VIDEO_CONTINUE: %m"); } @@ -699,6 +707,16 @@ RESULT eTSMPEGDecoder::setSyncMaster(int who) RESULT eTSMPEGDecoder::start() { + RESULT r; + r = setState(); + if (r) + return r; + return unfreeze(); +} + + /* preroll is start in freezed mode. */ +RESULT eTSMPEGDecoder::preroll() +{ return setState(); } |
