X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/03379b6e86edfcce851da2d11c3189d1b7843afb..6aa0ed7fff929c4b2651667ab809d0ace1dac56d:/lib/dvb/decoder.cpp diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index 8e172c8b..6b4a7f25 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -782,7 +782,8 @@ RESULT eTSMPEGDecoder::showSinglePic(const char *filename) int vfd = open("/dev/dvb/adapter0/video0", O_RDWR); if (vfd > 0) { - int length = fseek(f, 0, SEEK_END); + fseek(f, 0, SEEK_END); + int length = ftell(f); unsigned char *buffer = new unsigned char[length*3+9]; if (ioctl(vfd, VIDEO_FAST_FORWARD, 1) < 0) eDebug("VIDEO_FAST_FORWARD failed (%m)"); @@ -819,7 +820,7 @@ RESULT eTSMPEGDecoder::showSinglePic(const char *filename) ++cnt; } write(vfd, buffer, pos); - usleep(50000); + usleep(75000); // i dont like this.. but i dont have a better solution :( if (ioctl(vfd, VIDEO_SELECT_SOURCE, VIDEO_SOURCE_DEMUX) < 0) eDebug("VIDEO_SELECT_SOURCE DEMUX failed (%m)"); if (ioctl(vfd, VIDEO_FAST_FORWARD, 0) < 0)