On Mon, Sep 18, 2006 at 09:12:04PM +0200, Martin Wache wrote:
> The log you posted indicates that there as been bad signal during some
> time. Maybe this has something to do with you problem?

It might have something to do with my patch suspending the MPEG stream in
cDevice::Action():

@@ -1201,8 +1203,16 @@ void cDevice::Action(void)
                  int Pid = (((uint16_t)b[1] & PID_MASK_HI) << 8) | b[2];
                  // Distribute the packet to all attached receivers:
                  Lock();
+                 int isSuspended = Setup.Suspend;
+                 if (!wasSuspended && isSuspended) {
+                    PrimaryDevice()->Clear();
+                    }
+                 wasSuspended = isSuspended;
                  for (int i = 0; i < MAXRECEIVERS; i++) {
-                     if (receiver[i] && receiver[i]->WantsPid(Pid))
+                     if (!receiver[i]);
+                     else if (isSuspended &&
+                              !dynamic_cast<cRecorder *>(receiver[i]));
+                     else if (receiver[i]->WantsPid(Pid))
                         receiver[i]->Receive(b, TS_SIZE);
                      }
                  Unlock();

I think it is up to what PrimaryDevice()->Clear() does.  The stream will
be suspended or resumed at packet boundary.  Doing it at GOP boundary
would probably be nicer.  I have seen some garbled video for one or
two seconds after resuming live playback.

> Did this happen just one time or does it happen more often?

The hang may have happened once or twice before.  I cannot remember when
the last time was.

        Marko
_______________________________________________
Softdevice-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/softdevice-devel

Reply via email to