gstreamer/sys/v4l/TODO

61 lines
2.2 KiB
Text
Raw Normal View History

REMOVE list (HEAD)
==================
* xmms (depends on glib-1.2)
* avifile (ffmpeg)
* openquicktime (qtdemux)
* stereo2mono/mono2stereo/int2float/float2int (audioconvert)
* hermes (lcs)
* mjpegtools (jpeg does the same, make it depend on libjpegmmx instead)
* modplug (mikmod)
* vga (unmaintained, not-working)
* videosink (xvideo)
* aviaudiodecoder (useless)
* monkeymedia (licensing issues)
* wavparse/enc goes in same dir
* mulaw/alaw become separate mimetypes
TODO list (short term):
=======================
* v4lsrc/v4lmjpegsrc/v4l2src: fix interlacing (not handled at all...)
* fix v4l*src ! spider ! colorspace ! xvideosink
- first sets to PLAYING, then (re-)triggers capsnego - that breaks
TODO list (long term):
======================
* v4lmpegsrc (*hint* MPEG card needed *hint*)
* v4l2sink
* BSD-videosrc (bktr)
* color correction (brightness, hue, etc.)
* gamma correction
Useful Documentation:
=====================
MJPEG/V4L API : ./videodev_mjpeg.h
Linux/V4L API : /usr/include/linux/videodev.h or
http://roadrunner.swansea.uk.linux.org/v4l.shtml
Linux/V4L2 API: /usr/include/linux/videodev2.h or
http://www.thedirks.org/v4l2/
(kernel patches: http://bytesex.org/patches/)
BSD/Meteor API: /usr/include/machine/ioctl_meteor.h
mjpegtools : http://www.sourceforge.net/projects/mjpeg
Capturing:
==========
* sound is the master clock
* it's probably a good idea to create an audiosource element:
- autodetect alsa/oss
- first try alsa, then oss... they work the same internally
* same for videosource:
- autodetect v4l/v4l2 + mjpeg capabilities
- for this, just open device using v4l2element. On success:
+ use v4l2
- on failure:
+ use v4lelement and query for MJPEG capabilities
+ if that's available, combine caps of v4lmjpegsrc and v4lsrc
* both sources run in their own GstThread with a high priority
* an encoder element takes care of encoding + muxing. A toplevel element
(reverse of spider) is probably a good idea here. How? Don't know...
* format negotiation via filtered caps
* statistics via listening to the frame_{lost,inserted,deleted,captures}
signals and GST_PAD_QUERY_POSITION (gst_pad_query())