ports/97302: graphics/spcaview - freebsd port not working with PAC207 cameras

Jindrich Fucik fulda at seznam.cz
Mon May 15 14:50:30 UTC 2006


>Number:         97302
>Category:       ports
>Synopsis:       graphics/spcaview - freebsd port not working with PAC207 cameras
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 15 14:50:27 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Jindrich Fucik
>Release:        6.1-STABLE
>Organization:
-
>Environment:
FreeBSD evzen.hopto.org 6.1-STABLE FreeBSD 6.1-STABLE #0: Fri May 12 09:38:34 CEST 2006     root at evzen.hopto.org:/usr/src/sys/i386/compile/evzen  i386

>Description:
there are problem with recognizing begin of frame from BRIDGE_PAC207 cameras.
>How-To-Repeat:
run spcaview with PAC207 camera
>Fix:
#### less spca5share.c ####
#### sorry I have no diff, I try to create. ####

         case BRIDGE_PAC207:
//       case 0:
          {
            iPix = 0;
            sof = 0;
            j = 0;
            p = 0;
            if (datalength < 6 )
                        continue;
                else
                {
                    for (p = 0; p < datalength-6; p++)
                      {
                        if ((cdata[0 + p] == 0xFF) && (cdata[1 + p] == 0xFF)
                            && (cdata[2 + p] == 0x00)
                            && (cdata[3 + p] == 0xFF)
                            && (cdata[4 + p] == 0x96)
                            )
                          {
                                    sof = 1;
                                    break;
                          }
                      }

                    if (sof)
                      {
                        //printf("sof p %d datalength %d\n",p,datalength);
                        sequenceNumber = 0;
// JFU patch
                        if (frame->scanstate == STATE_SCANNING)
                         {
                            frame->highwater = frame->data;
                            frame->last_packet = -1;
                            frame->totlength = 0;
                            memcpy (frame->highwater, cdata+p,datalength-p);
                            frame->highwater += (datalength-p);
                            totlen = (datalength-p);
                         }
// JFU patch
                        // copy the end of data to the current frame
                        memcpy (frame->highwater, cdata,p);
                        frame->highwater += p;
                        totlen += p;
                        spca50x->header_len = p ; //copy to the nextframe start
at p
                       PDEBUG (5,
                                "Pixartcam header packet found, %d datalength %d
 totlength %d!!",
                                p, datalength, totlen);
                      }
                    else
                    {
                        /* drop packet */
                        sequenceNumber++;
                    }

                }
          }
          break;

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list