From ab191e8427c87fc83aad5cce136eb0445cecbec6 Mon Sep 17 00:00:00 2001 From: ghost Date: Thu, 2 Apr 2009 21:03:48 +0200 Subject: [PATCH] decoder.cpp/servicedvb.cpp: fix radio stillpicture displaying --- lib/dvb/decoder.cpp | 7 +++++-- lib/service/servicedvb.cpp | 14 +++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index edefd764..ebe3ce24 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -1290,15 +1290,18 @@ RESULT eTSMPEGDecoder::showSinglePic(const char *filename) unsigned char seq_end[] = { 0x00, 0x00, 0x01, 0xB7 }; unsigned char iframe[s.st_size]; unsigned char stuffing[8192]; + int streamtype = VIDEO_STREAMTYPE_MPEG2; memset(stuffing, 0, 8192); read(f, iframe, s.st_size); if (ioctl(m_video_clip_fd, VIDEO_SELECT_SOURCE, VIDEO_SOURCE_MEMORY) < 0) eDebug("VIDEO_SELECT_SOURCE MEMORY failed (%m)"); + if (ioctl(m_video_clip_fd, VIDEO_SET_STREAMTYPE, streamtype) < 0) + eDebug("VIDEO_SET_STREAMTYPE failed(%m)"); if (ioctl(m_video_clip_fd, VIDEO_PLAY) < 0) eDebug("VIDEO_PLAY failed (%m)"); - if (::ioctl(m_video_clip_fd, VIDEO_CONTINUE) < 0) + if (ioctl(m_video_clip_fd, VIDEO_CONTINUE) < 0) eDebug("video: VIDEO_CONTINUE: %m"); - if (::ioctl(m_video_clip_fd, VIDEO_CLEAR_BUFFER) < 0) + if (ioctl(m_video_clip_fd, VIDEO_CLEAR_BUFFER) < 0) eDebug("video: VIDEO_CLEAR_BUFFER: %m"); while(pos <= (s.st_size-4) && !(seq_end_avail = (!iframe[pos] && !iframe[pos+1] && iframe[pos+2] == 1 && iframe[pos+3] == 0xB7))) ++pos; diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 7292e6df..b92965da 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -2316,13 +2316,6 @@ void eDVBServicePlay::updateDecoder() m_teletext_parser->start(program.textPid); -/* if (!m_is_primary) - m_decoder->setTrickmode(); - else */ if (m_is_paused) - m_decoder->pause(); - else - m_decoder->play(); - if (vpid > 0 && vpid < 0x2000) ; else @@ -2332,6 +2325,13 @@ void eDVBServicePlay::updateDecoder() m_decoder->setRadioPic(radio_pic); } +/* if (!m_is_primary) + m_decoder->setTrickmode(); + else */ if (m_is_paused) + m_decoder->pause(); + else + m_decoder->play(); + m_decoder->setAudioChannel(achannel); /* don't worry about non-existing services, nor pvr services */ -- 2.30.2