proper showSinglePic error handling (thanks to Sat-Turner)
[enigma2.git] / lib / dvb / decoder.cpp
index f3f9aac84c0197e6f72b3feb31c0929589327fb8..7ad1a25d16d0cd2f0c80eee1a7bf7e08c88ab463 100644 (file)
@@ -282,11 +282,8 @@ void eDVBAudio::setChannel(int channel)
 
 int eDVBAudio::getPTS(pts_t &now)
 {
-       eDebugNoNewLine("AUDIO_GET_PTS - ");
        if (::ioctl(m_fd, AUDIO_GET_PTS, &now) < 0)
-               eDebug("failed (%m)");
-       else
-               eDebug("ok");
+               eDebug("AUDIO_GET_PTS failed (%m)");
        return 0;
 }
 
@@ -931,15 +928,7 @@ eTSMPEGDecoder::eTSMPEGDecoder(eDVBDemux *demux, int decoder)
 
 eTSMPEGDecoder::~eTSMPEGDecoder()
 {
-       if (m_video_clip_fd >= 0)
-       {
-               if (ioctl(m_video_clip_fd, VIDEO_STOP, 1) < 0)
-                       eDebug("VIDEO_STOP failed (%m)");
-               if (ioctl(m_video_clip_fd, VIDEO_SELECT_SOURCE, VIDEO_SOURCE_DEMUX) < 0)
-                       eDebug("VIDEO_SELECT_SOURCE DEMUX failed (%m)");
-               close(m_video_clip_fd);
-               m_video_clip_fd = -1;
-       }
+       finishShowSinglePic();
        m_vpid = m_apid = m_pcrpid = m_textpid = pidNone;
        m_changed = -1;
        setState();
@@ -1156,7 +1145,7 @@ RESULT eTSMPEGDecoder::showSinglePic(const char *filename)
        {
                eDebug("showSinglePic %s", filename);
                int f = open(filename, O_RDONLY);
-               if (f)
+               if (f >= 0)
                {
                        struct stat s;
                        fstat(f, &s);