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
_______________________________________________
vdr mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr