Paulo Figueiredo writes: > Hi, > > Thursday, February 26, 2004, 6:02:51 PM, you wrote: > > Did you get the file? Any news about the error? > > --
Ok, I just checked out the file and I must say that the TS is very strange. Lots of filling bytes in the PES which led to some problems which I usually only have with PS files. I have a fix for the problem and it will be in the next release, but for the impatient I will add the diff to this mail. Marcus -- /--------------------------------------------------------------------\ | Dr. Marcus O.C. Metzler | | | [EMAIL PROTECTED] | http://www.metzlerbros.de/ | \--------------------------------------------------------------------/ |>>> Quis custodiet ipsos custodies <<<| diff -u -r1.85 replex.c --- replex.c 2004/01/29 16:15:17 1.85 +++ replex.c 2004/03/02 21:39:12 @@ -271,6 +271,11 @@ rx->vpes_abort = 0; off = ring_rdiff(rbuf, p->ini_pos); +#ifdef IN_DEBUG + fprintf(stderr, " ini pos %d\n", + (p->ini_pos)%rx->videobuf); +#endif + // fprintf(stderr, "len %d %d\n",len,off); while (c < len){ @@ -292,6 +297,9 @@ re = get_video_info(rbuf, &rx->seq_head, pos+c+off, len -c -pos); +#ifdef IN_DEBUG + fprintf(stderr, " seq headr result %d\n",re); +#endif if (re == -2){ rx->vpes_abort = len -(c+pos-1); return; @@ -608,6 +616,10 @@ { case 0xE0: { sprintf(t, "Video "); + if (rx->vpes_abort){ + p->ini_pos = (p->ini_pos - rx->vpes_abort)%rx->vrbuffer.size; + len += rx->vpes_abort; + } analyze_video(p, rx, len); if (!rx->seq_head.set){ ring_skip(&rx->vrbuffer, len); @@ -619,6 +631,11 @@ int l; l = p->type - 1; sprintf(t, "Audio%d ", l); + if (rx->apes_abort[l]){ + p->ini_pos = (p->ini_pos - rx->apes_abort[l]) + %rx->arbuffer[l].size; + len += rx->apes_abort[l]; + } analyze_audio(p, rx, len, l, MPEG_AUDIO); if (!rx->aframe[l].set) ring_skip(&rx->arbuffer[l], len); @@ -630,6 +647,11 @@ int l; l = p->type - 0x80; sprintf(t, "AC3 %d ", p->type); + if (rx->ac3pes_abort[l]){ + p->ini_pos = (p->ini_pos - rx->ac3pes_abort[l]) + %rx->ac3rbuffer[l].size; + len += rx->ac3pes_abort[l]; + } analyze_audio(p, rx, len, l, AC3); if (!rx->ac3frame[l].set) ring_skip(&rx->ac3rbuffer[l], len); -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.