On Tuesday 05 of May 2009, Klaus Schmidinger wrote:
On 05/05/09 00:04, Ales Jurik wrote:
...
Many thanks, it seems to works (with type of 2), but it is necessary to set "Update channels" to "no".
Please try this:
--- remux.c 2009/05/03 14:43:25 2.20 +++ remux.c 2009/05/05 07:27:21 @@ -795,6 +795,7 @@ scanner <<= 8; scanner |= Data[i]; switch (type) {
case 0x01: // MPEG 1 video case 0x02: // MPEG 2 video if (scanner == 0x00000100) { // Picture Start
Code if (synced && Processed)
With this you should be able to turn "Update channels" on again.
Klaus
Thanks for pointing me to the problem. But for working it it was necessary to add these two changes more:
--- remux.c 2009-05-05 09:44:01.000000000 +0200 +++ remux.c 2009-05-05 09:50:56.854167360 +0200 @@ -481,6 +481,7 @@ void cPatPmtParser::ParsePmt(const uchar for (SI::Loop::Iterator it; Pmt.streamLoop.getNext(stream, it); ) { dbgpatpmt(" stream type = %02X, pid = %d", stream.getStreamType(), stream.getPid()); switch (stream.getStreamType()) { + case 0x01: // MPEG1 case 0x02: // STREAMTYPE_13818_VIDEO case 0x1B: // MPEG4 vpid = stream.getPid(); @@ -702,7 +703,7 @@ cFrameDetector::cFrameDetector(int Pid, newFrame = independentFrame = false; numPtsValues = 0; numIFrames = 0; - isVideo = type == 0x02 || type == 0x1B; // MPEG 2 or MPEG 4 + isVideo = type == 0x01 || type == 0x02 || type == 0x1B; // MPEG 1,2 or 4 frameDuration = 0; framesInPayloadUnit = framesPerPayloadUnit = 0; payloadUnitOfFrame = 0;
Now it seems to works as on older vdr versions (with PES), but video discontinuities are still present on Spektrum (as on many other channels from other providers). On STB's these discontinuities are not present in video.
Thanks and BR,
Ales