X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/03379b6e86edfcce851da2d11c3189d1b7843afb..ce05a664f5cdd9204e2e1d1754d4d5eccac6a458:/lib/dvb/decoder.cpp diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index 8e172c8b..50934c71 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -9,8 +9,10 @@ #define videoStreamSource_t video_stream_source_t #define streamSource stream_source #define dmxPesFilterParams dmx_pes_filter_params -#define DMX_PES_VIDEO DMX_PES_VIDEO0 -#define DMX_PES_AUDIO DMX_PES_AUDIO0 +#define DMX_PES_VIDEO0 DMX_PES_VIDEO +#define DMX_PES_AUDIO0 DMX_PES_AUDIO +#define DMX_PES_VIDEO1 DMX_PES_VIDEO +#define DMX_PES_AUDIO1 DMX_PES_AUDIO #include #include #include @@ -782,7 +784,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 +822,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)