| C it Mp3, C it Music Lyrics
| |
C it biography, C it discography
Manufacturer of the camera
The camera is apparently manufactured by
Xirlink.It CameraTM", but I guess now
they shifted from manufacturing and sales to pure design and
licensing.Xirlink's own Web site
was not updated in many months, and they don't even offer latest Windows
drivers there.Maintainers and Projects
The most current version of the driver is in the Linux kernel tree.Model 4
(not seen)
0x0545
0x800d
3.FCC ID 69A2S1AX036025
0x0545
0x888d
12.Factory codes are printed on a sticker on the bottom of the camera.Following
lines describe all configurations of the camera (it has only one), all interfaces of the camera
(three, numbered 0, 1 and 2), alternate settings of all interfaces and all
endpoints in each alternate setting.This is caused
by my lack of understanding how the colors are encoded.Some IBM NetCameras are not supported.Recently (as of July 2001) I started receiving messages from
people who got NetCameras and they do not work at all!Earlier versions of this very camera
sent uncompressed data.This problem occurs with both "NetCamera" and "NetCamera Pro".P5084, and it does
not work.It is only a last hope for people
who already have this camera and have no option of returning it
to the store.IBM
NetCamera to accept this new camera...IBM_PRODUCT_ID define to the appropriate ID code,
recompiled the driver and I ran a "modprobe ibmcam", and I was off running in xawtv.Nothing else special to do.Jan 27 00:44:25 athlon kernel: ibmcam.However if you have only Veo Stingray and don't care about other
cameras then go ahead and make the change.Hoping that it might
have the same data format, I did a partial reverse engineering job on it,
and wrote a test driver for it.Each frame appears to be terminated by a 0xFF.If you know of anyone who might be able to recognize the format, I could
send the test driver on to them or perhaps a sample of the data stream.As far as I know, there is no published specs on
ViCETM.ViCETM
is not absolutely required, though it would be nice to have.Consult the driver source for details.Most OUT commands do
not use the data stage, but IN commands usually return
some data.Nature of returned data is not known for sure, however
observations hint that some returned fields carry white balance
information in Model 4 cameras.Usually 0 or 1,
used to determine the direction of the transfer.Carries either a fixed or a
programmable data.Generally,
USB device can use any field for any purpose, but these cameras appear to
follow the general idea of using index field for directing the value to
appropriate receiver.Camera uses several of such transfers
grouped together in packets.Some transfers make up a framing of the packet,
other (inner) transfers carry data.The structure of packets is only my best guess, but
it seems reasonably correct for models 1, 2 and 3.Looks like each packet has variable format and variable length, and the
framing of packets in this camera is very fluid, defying analysis.RCA Connector on some Model 3 cameras
(apparently IBM PC Camera ProTM)
Some Model 3 cameras are equipped with an RCA connector which can be used
to feed a standard video NTSC signal into the camera.However at least one person has it, so he
captured some debugging data that was enough to activate this connector
and see the externally provided image.However this is still very
experimental code.It supports only one image size, and the image is
inverted (bottom up) because the standard Model 3 data format produces
scan lines in reverse order, so some fix is required for that.Uncompressed datastreams
The camera supports many standards, including CIF, SIF
and QCIF video formats, not exceeding 640x480 natively.Larger image formats (like 704 x 576) that may be advertised
on the box are just smaller images blown up for marketing
purposes.Frame markers
Camera sends continuous stream of frames.Each frame
is prefixed with several bytes of frame marker
(which is not part of frame data).Frame markers for different video sizes.Xirlink cameras use several wildly different encoding methods.Some cameras (like model 2) use YUV encoding on one set of image sizes
and RGB on other set.Linux driver supports only RGB24
at this time due to large amount of work needed to write and test
decoder routines.Some applications may require one or another video format that
may be unsupported by the driver.Generally, a
V4L driver can provide output in any number of formats.There are no separators or markers of lines; the only marker is the frame marker (see above).CCD
is a 'Bayer' array, arranged like this:
GRGRGRGRGR....To calculate the RGB value for any given pel, you only 'know' the color
at that pel, and must interpolate the other two colors.The results are much improved, even with a simple interpolation.The vertical lines are pretty much gone!It makes my model 2 run better.Snapshot button
Cameras have a button that can be polled by software.The button on Model 1 is so buggy that even Xirlink's own
WindowsTM driver does not work right.Why would anyone want to use a button on the camera?People are located
at some distance from the camera, and unless they have arms like an
octopus
they simply can't reach the button!Downloads
Support for all models (1, 2, 3, 4) is included in the driver that ships with
Linux kernels starting with 2.IBM camera driver that is included into
the 2.You can ask
questions there.If you want to email me and report a problem please attach following
information to your first email.Otherwise I will need to ask you about
some of that data and we both just lose time.Output of xawtv if you use it, or output of other
userspace tool that you use to access the camera.NetCamera Pro
at a store (Best Buy).If you want more detailed information and examples, feel free to check out his book.The examples on this site were used with his permission, so please don't copy them.This path depends on your system.If you haven't gotten this far, I highly suggest you pick up K and R's book, The C Programming Language.This is the book on C written by the writers of C.There are a few exceptions but they don't really deviate from what C offers as a language.C++ you're probably used to NULL.You cannot however do this with NULL.Inheritance is specified as Class: Parent, as seen with Fraction: NSObject.No access is set (protected, public, private).Setting the access will be shown later
Instance methods follow after the member variables.It's calling the setNumerator method on frac, and passing it the parameter 1.This is done via release, which is inherited from NSObject.It's possible to have a method named method:::.This is however not advised.This returns an instance which you assign to another new keyword, self.Self is similar to this in Java and C++.This is gotten from including NSObject.This is how the class variable is declared.This is not the ideal place for such a variable.Java's implementation of static class variables.This is the actual method that returns the count.This is a good place to initialize class level variables like our count.NOTE: Exception handling is only supported in Mac OS X 10.Cup level is: 10
Cup level is: 20
Cup level is: 30
Cup level is: 40
CupWarningException: Cup level is: 50
CupWarningException: Cup level is: 60
CupWarningException: Cup level is: 70
CupWarningException: Cup level is: 80
CupWarningException: Cup level is: 90
CupWarningException: Cup level is: 100
CupOverflowException: Cup level is: 110
CupUnderflowException: The level is below 0
NSAutoreleasePool is a memory management class.Don't worry about what this does right now.Exceptions that are thrown don't have to extend NSException."CupOverflowException", is a constant NSString object.C++, "String constant", and is of type char *.Java and C++ in that when you call a method on an object, it doesn't need to know the type.You don't have to know the type of something to call a method on it.If the object responds to a message, it will invoke that method.Lots of nasty casting isn't involved in this either, such as in Java to call .Value() on an integer object would involve casting first, then calling the method.When you extend your super class (of which you can only have one parent) you can override the methods of your super class by simply putting the new implementations in the child classes implementation.No fooling with virtual tables like C++.In such a case if you want this to occur, that's what the id variable is good for.Every object inherited from NSObject has a class method that returns a class object.This class object is used in the methods above.However this solution isn't always perfect, especially if you want to rewrite the functionality of a class that you don't have the source code to.Categories allow you to add functionality to already existing classes without extending them.There can only be one category with the same name.Additional cateogies may be added on with different but unqiue names.The following is a very brief example of what I mean.Posing is similar to categories, but with a twist.This allows a subclass to pose as a superclass.Java, or a purely virtual class in C++.The complex number is: 5.As you can see, Complex.C's interface system is how you specify types.BOOL if the object conforms to that protocol.One has to be concerned about freeing the memory of those objects as well.This will all be explained.Each object has an internal counter that can be used to keep track of the number references an object has.However once you reach 0, you should dealloc yourself.Fraction 1 retain count: 1
Fraction 2 retain count: 1
Fraction 1 retain count: 3
Fraction 2 retain count: 2
Fraction 1 retain count: 2
Fraction 2 retain count: 1
Deallocing fraction
Deallocing fraction
The retain calls increment the counter.The release calls decrement it.This example shows not only how to make a dealloc method, as shown in AddressCard.If you release first, THEN retain you will destruct yourself!That's why you should always 1) retain 2) release 3) set the value.Normally one wouldn't initialize variables with C strings because they don't support unicode.If you run this you'll notice a few things.One is that the retainCount of str1 is ffffffff.The other is, I only release str3, yet this program is memory management perfect.The reason is the first constant string is added to the autorelease pool automatically.The other string is made using stringWithString.This method creates a string that is owned by NSString class, which also puts it in the auto release pool.For each retain, there must be one release OR one autorelease.In this example, the method is a class level method.Inside the body of the main method, I never call release on the object.The reason this works is because: for every retain, one release or autorelease must be called.Auto release pools can be dynamically created for large amounts of temporary objects.All one must do is create a pool, perform any large chunk of code that creates lots of temporary objects, then release the pool.As you may wonder, it this means it is possible to have more than one auto release pool at a time.C++'s templating is not necessary.As the name suggests, Mutable is changable, NSArray then is not.You initialize an array via the constructor using Obj, Obj, Obj, ...The selector tells the array to sort using NSString's case insensitive compare.If your object has several sort methods, you can choose anyone you want using this selector.This is similar to Java's toString.NSEnumerator is similar to Java's enumerator system.Speech Recognition PlugIn for Netscape 2.Note *** This will only run on PowerMacs
To use this PlugIn you will need the following:
PowerMacintosh running System 7.Apple Computer)
OR
PlainTalk Speech Recognition v1.Or a new multipage example.Recognized phrases are in quotes followed by an
equal sign then the url is everything until the end of the line.There are a few other things to note.Netscape knows to load ListenUp.There is a limit of 100 speakable phrases.Don't get to funny with the phrases you choose.You may just crash your
mac.This site provides access to 267 monograph volumes and over
100,000 journal articles with 19th century imprints.Making of America is made possible by a grant from The
Andrew W.
|
| |
|
 |
|