aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-11-11 15:41:18 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-11-11 15:41:18 +0000
commitf94f8561a13e8666dd43e803d45325d1a9347cb2 (patch)
treed5808fd477be19cf880008f0cc009a29f6f5eb6c /lib/dvb
parent2b4499ffd129b771f295ec0c2db40fec7ef177de (diff)
downloadenigma2-f94f8561a13e8666dd43e803d45325d1a9347cb2.tar.gz
enigma2-f94f8561a13e8666dd43e803d45325d1a9347cb2.zip
add pause support
Diffstat (limited to 'lib/dvb')
-rw-r--r--lib/dvb/decoder.cpp24
-rw-r--r--lib/dvb/decoder.h2
2 files changed, 24 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)
diff --git a/lib/dvb/decoder.h b/lib/dvb/decoder.h
index a26d6cf5..68262fe0 100644
--- a/lib/dvb/decoder.h
+++ b/lib/dvb/decoder.h
@@ -37,6 +37,8 @@ public:
void stopPid();
#endif
void flush();
+ void freeze();
+ void unfreeze();
virtual ~eDVBVideo();
};