I am working on a project (a digital camera) that should be able to take still images and short video clips and make those available to the host. As well as being able to stream live video.
Which USB class[es] should I use?
Should I use PTP (for still images and video) and USB Video Class for streaming?
Does PTP support transfer of video? Does PTP support video streaming?
For static objects PTP is better since it does have a definition for an object. Current Canon DSLRs are also capable of "streaming" live video via standard PTP transaction mechanism. However, real streaming would benefit from isochronous transfer so UVC is better for streaming.
You can also have both classes implemented in a single device and have objects transferred bia PTP set of endpoints and stream via UVC endpoint.