git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
work on linked tuners ( can not test it :( )
[enigma2.git]
/
lib
/
dvb
/
decoder.cpp
diff --git
a/lib/dvb/decoder.cpp
b/lib/dvb/decoder.cpp
index b7118558a3ae7e712f61df7908afbf2f2cefc9da..951a2edf1e5d539d2f9c28ca4c2e0d1e476776d9 100644
(file)
--- a/
lib/dvb/decoder.cpp
+++ b/
lib/dvb/decoder.cpp
@@
-98,6
+98,18
@@
void eDVBAudio::flush()
if (::ioctl(m_fd, AUDIO_CLEAR_BUFFER) < 0)
eDebug("audio: AUDIO_CLEAR_BUFFER: %m");
}
if (::ioctl(m_fd, AUDIO_CLEAR_BUFFER) < 0)
eDebug("audio: AUDIO_CLEAR_BUFFER: %m");
}
+
+void eDVBAudio::freeze()
+{
+ if (::ioctl(m_fd, AUDIO_PAUSE) < 0)
+ eDebug("video: AUDIO_PAUSE: %m");
+}
+
+void eDVBAudio::unfreeze()
+{
+ if (::ioctl(m_fd, AUDIO_CONTINUE) < 0)
+ eDebug("video: AUDIO_CONTINUE: %m");
+}
eDVBAudio::~eDVBAudio()
{
eDVBAudio::~eDVBAudio()
{
@@
-183,6
+195,18
@@
void eDVBVideo::flush()
eDebug("video: VIDEO_CLEAR_BUFFER: %m");
}
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)
eDVBVideo::~eDVBVideo()
{
if (m_fd >= 0)
@@
-407,12
+431,24
@@
RESULT eTSMPEGDecoder::start()
RESULT eTSMPEGDecoder::freeze(int cont)
{
RESULT eTSMPEGDecoder::freeze(int cont)
{
- return -1;
+ if (m_video)
+ m_video->freeze();
+
+ if (m_audio)
+ m_audio->freeze();
+
+ return 0;
}
RESULT eTSMPEGDecoder::unfreeze()
{
}
RESULT eTSMPEGDecoder::unfreeze()
{
- return -1;
+ if (m_video)
+ m_video->unfreeze();
+
+ if (m_audio)
+ m_audio->unfreeze();
+
+ return 0;
}
RESULT eTSMPEGDecoder::setSinglePictureMode(int when)
}
RESULT eTSMPEGDecoder::setSinglePictureMode(int when)