X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/10e7e45ae92d4fe06f70126ed256b87896dbc432..bf172c73819b5c577d64afcf86c1eb8852a086a3:/lib/dvb/decoder.cpp diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index c550163e..5fa59ed4 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -931,10 +931,10 @@ RESULT eTSMPEGDecoder::setAC3Delay(int delay) } eTSMPEGDecoder::eTSMPEGDecoder(eDVBDemux *demux, int decoder) - :m_demux(demux), m_changed(0), m_decoder(decoder), m_video_clip_fd(-1), m_showSinglePicTimer(eApp) + :m_demux(demux), m_changed(0), m_decoder(decoder), m_video_clip_fd(-1), m_showSinglePicTimer(eTimer::create(eApp)) { demux->connectEvent(slot(*this, &eTSMPEGDecoder::demux_event), m_demux_event_conn); - CONNECT(m_showSinglePicTimer.timeout, eTSMPEGDecoder::finishShowSinglePic); + CONNECT(m_showSinglePicTimer->timeout, eTSMPEGDecoder::finishShowSinglePic); m_is_ff = m_is_sm = m_is_trickmode = 0; } @@ -1069,6 +1069,7 @@ RESULT eTSMPEGDecoder::setFastForward(int frames_to_skip) m_is_ff = frames_to_skip != 0; setState(); + unfreeze(); // audio might be restarted and still in preroll (freezed) state. if (m_video) return m_video->setFastForward(frames_to_skip); @@ -1081,6 +1082,7 @@ RESULT eTSMPEGDecoder::setSlowMotion(int repeat) m_is_sm = repeat != 0; setState(); + unfreeze(); // audio might be restarted and still in preroll (freezed) state. if (m_video) return m_video->setSlowMotion(repeat); @@ -1191,7 +1193,7 @@ RESULT eTSMPEGDecoder::showSinglePic(const char *filename) if (!seq_end_avail) write(m_video_clip_fd, seq_end, sizeof(seq_end)); write(m_video_clip_fd, stuffing, 8192); - m_showSinglePicTimer.start(150, true); + m_showSinglePicTimer->start(150, true); } close(f); }