fix flags
[enigma2.git] / lib / dvb / decoder.cpp
index fcc38901152788b060e13549f5939ad42d60bafd..2b8e4b8bc114882451143b6351404ea1b0fcd1d1 100644 (file)
@@ -108,6 +108,7 @@ int eDVBAudio::startPid(int pid, int type)
 
 void eDVBAudio::stop()
 {
+       flush();
        if (::ioctl(m_fd, AUDIO_STOP) < 0)
                eWarning("audio: AUDIO_STOP: %m");
 #if HAVE_DVB_API_VERSION > 2
@@ -162,6 +163,7 @@ int eDVBAudio::getPTS(pts_t &now)
 
 eDVBAudio::~eDVBAudio()
 {
+       unfreeze();
        if (m_fd >= 0)
                ::close(m_fd);
        if (m_fd_demux >= 0)
@@ -300,6 +302,7 @@ eDVBVideo::~eDVBVideo()
                setSlowMotion(0);
        if (m_is_fast_forward)
                setFastForward(0);
+       unfreeze();
        if (m_fd >= 0)
                ::close(m_fd);
        if (m_fd_demux >= 0)
@@ -858,6 +861,8 @@ RESULT eTSMPEGDecoder::showSinglePic(const char *filename)
                                        eDebug("VIDEO_SELECT_SOURCE MEMORY failed (%m)");
                                if (ioctl(vfd, VIDEO_PLAY) < 0)
                                        eDebug("VIDEO_PLAY failed (%m)");
+                               if (::ioctl(vfd, VIDEO_CONTINUE) < 0)
+                                       eDebug("video: VIDEO_CONTINUE: %m");
                                int cnt=0;
                                int pos=0;
                                while(cnt<2)