diff options
Diffstat (limited to 'lib/dvb/decoder.cpp')
| -rw-r--r-- | lib/dvb/decoder.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index b7118558..751796ae 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -183,6 +183,18 @@ void eDVBVideo::flush() eDebug("video: VIDEO_CLEAR_BUFFER: %m"); } +void eDVBVideo::freeze() +{ + if (::ioctl(m_fd, VIDEO_FREEZE) < 0) + eDebug("video: VIDEO_FREEZE: %m"); +} + +void eDVBVideo::unfreeze() +{ + if (::ioctl(m_fd, VIDEO_CONTINUE) < 0) + eDebug("video: VIDEO_CONTINUE: %m"); +} + eDVBVideo::~eDVBVideo() { if (m_fd >= 0) @@ -407,12 +419,20 @@ RESULT eTSMPEGDecoder::start() RESULT eTSMPEGDecoder::freeze(int cont) { - return -1; + if (m_video) + m_video->freeze(); + else + return -1; + return 0; } RESULT eTSMPEGDecoder::unfreeze() { - return -1; + if (m_video) + m_video->unfreeze(); + else + return -1; + return 0; } RESULT eTSMPEGDecoder::setSinglePictureMode(int when) |
