gstreamer/sys/v4l
Jan Schmidt 4cf67a0834 Fixes a bunch of problems with finalize and dispose functions, either assumptions that dispose is only called once, o...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_dispose),
(gst_alsa_finalize):
* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init),
(gst_cdaudio_finalize):
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
(cdparanoia_finalize):
* ext/divx/gstdivxdec.c: (gst_divxdec_dispose):
* ext/divx/gstdivxenc.c: (gst_divxenc_dispose):
* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
(dvdreadsrc_finalize):
* ext/flac/gstflacdec.c: (gst_flacdec_class_init),
(gst_flacdec_finalize):
* ext/flac/gstflacenc.c: (gst_flacenc_class_init),
(gst_flacenc_finalize):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_class_init),
(gst_gnomevfssink_finalize):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_class_init),
(gst_gnomevfssrc_finalize):
* ext/libfame/gstlibfame.c: (gst_fameenc_class_init),
(gst_fameenc_finalize):
* ext/nas/nassink.c: (gst_nassink_class_init),
(gst_nassink_finalize):
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_finalize),
(gst_sdlvideosink_class_init):
* ext/sndfile/gstsf.c: (gst_sf_dispose):
* gst-libs/gst/mixer/mixertrack.c: (gst_mixer_track_dispose):
* gst-libs/gst/tuner/tunerchannel.c: (gst_tuner_channel_dispose):
* gst-libs/gst/tuner/tunernorm.c: (gst_tuner_norm_dispose):
* gst-libs/gst/xwindowlistener/xwindowlistener.c:
(gst_x_window_listener_dispose):
* gst/audioscale/gstaudioscale.c:
* gst/playondemand/gstplayondemand.c: (play_on_demand_class_init),
(play_on_demand_finalize):
* gst/videofilter/gstvideobalance.c: (gst_videobalance_dispose):
* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):
* sys/cdrom/gstcdplayer.c: (cdplayer_class_init),
(cdplayer_finalize):
* sys/glsink/glimagesink.c: (gst_glimagesink_finalize),
(gst_glimagesink_class_init):
* sys/oss/gstosselement.c: (gst_osselement_class_init),
(gst_osselement_finalize):
* sys/oss/gstosssink.c: (gst_osssink_dispose):
* sys/oss/gstosssrc.c: (gst_osssrc_dispose):
* sys/v4l/gstv4lelement.c: (gst_v4lelement_dispose):
Fixes a bunch of problems with finalize and dispose functions,
either assumptions that dispose is only called once, or not calling
the parent class dispose/finalize function
2004-11-01 14:43:38 +00:00
..
.gitignore add cvsignores 2003-09-11 19:17:01 +00:00
gstv4l.c sys/: Remove client-side overlay handling, use the X-server v4l plugin for that. Nicer overlay, less code. Also make ... 2004-10-25 08:51:14 +00:00
gstv4lcolorbalance.c compile fixes for --disable-gst-debug, G_DISABLE_ASSERT and friends 2004-08-03 16:06:08 +00:00
gstv4lcolorbalance.h paranoia cleanups and a sync fix 2004-06-15 09:11:06 +00:00
gstv4lelement.c Fixes a bunch of problems with finalize and dispose functions, either assumptions that dispose is only called once, o... 2004-11-01 14:43:38 +00:00
gstv4lelement.h sys/: Remove client-side overlay handling, use the X-server v4l plugin for that. Nicer overlay, less code. Also make ... 2004-10-25 08:51:14 +00:00
gstv4lmjpegsink.c ext/ogg/gstoggmux.c: Basic pad template which accepts OGM tracks, speex, flac, vorbis and theora. Any is incorrect. 2004-10-24 13:41:18 +00:00
gstv4lmjpegsink.h paranoia cleanups and a sync fix 2004-06-15 09:11:06 +00:00
gstv4lmjpegsrc.c ext/ogg/gstoggmux.c: Basic pad template which accepts OGM tracks, speex, flac, vorbis and theora. Any is incorrect. 2004-10-24 13:41:18 +00:00
gstv4lmjpegsrc.h ext/ogg/gstoggmux.c: Basic pad template which accepts OGM tracks, speex, flac, vorbis and theora. Any is incorrect. 2004-10-24 13:41:18 +00:00
gstv4lsrc.c sys/v4l/gstv4lsrc.c: Quiet. 2004-10-24 14:26:30 +00:00
gstv4lsrc.h fix videorate decision, add latency offset to v4l 2004-06-26 15:58:35 +00:00
gstv4ltuner.c compile fixes for --disable-gst-debug, G_DISABLE_ASSERT and friends 2004-08-03 16:06:08 +00:00
gstv4ltuner.h paranoia cleanups and a sync fix 2004-06-15 09:11:06 +00:00
gstv4lxoverlay.c sys/: Remove client-side overlay handling, use the X-server v4l plugin for that. Nicer overlay, less code. Also make ... 2004-10-25 08:51:14 +00:00
gstv4lxoverlay.h sys/: Remove client-side overlay handling, use the X-server v4l plugin for that. Nicer overlay, less code. Also make ... 2004-10-25 08:51:14 +00:00
Makefile.am sys/: Remove client-side overlay handling, use the X-server v4l plugin for that. Nicer overlay, less code. Also make ... 2004-10-25 08:51:14 +00:00
README - update links to v4l[12] API docs 2004-05-31 20:36:07 +00:00
TODO - update links to v4l[12] API docs 2004-05-31 20:36:07 +00:00
v4l_calls.c sys/v4l/v4l_calls.c: Fix for some v4l cards which hang in v4lsrc 2004-10-25 18:42:47 +00:00
v4l_calls.h sys/: Remove client-side overlay handling, use the X-server v4l plugin for that. Nicer overlay, less code. Also make ... 2004-10-25 08:51:14 +00:00
v4lmjpegsink_calls.c paranoia cleanups and a sync fix 2004-06-15 09:11:06 +00:00
v4lmjpegsink_calls.h paranoia cleanups and a sync fix 2004-06-15 09:11:06 +00:00
v4lmjpegsrc_calls.c ext/ogg/gstoggmux.c: Basic pad template which accepts OGM tracks, speex, flac, vorbis and theora. Any is incorrect. 2004-10-24 13:41:18 +00:00
v4lmjpegsrc_calls.h paranoia cleanups and a sync fix 2004-06-15 09:11:06 +00:00
v4lsrc_calls.c sys/v4l/v4lsrc_calls.c: Don't actually error out if we get another return value than 2004-10-01 10:02:42 +00:00
v4lsrc_calls.h add autoprobe option fixes use try_capture 2004-06-17 17:06:24 +00:00
videodev_mjpeg.h LICENSE_readme: typo 2004-05-01 15:40:08 +00:00

General Idea:
=============

                            _____/ gstv4lsrc.[ch]
                      _____/     \ v4lsrc_calls.[ch]
                     /
gstv4lelement.[ch] _/____________/ gstv4lmjpegsrc.[ch]
v4l_calls.[ch]      \            \ v4lmjpegsrc_calls.[ch]
                     \_____
                           \_____/ gstv4lmjpegsink.[ch]
                                 \ v4lmjpegsink_calls.[ch]

I.e., all the files on the right are child classes of
the v4lelement 'parent' on the left.

* v4lelement handles generic v4l stuff (picture settings,
    audio, norm/input setting, open()/close())
* v4lsrc, v4lmjpegsrc handle the capture specific
    functions. Maybe we'd need a v4lmpegsrc too
* v4lmjpegsink handles mjpeg hardware playback of video

Useful Documentation:
=====================
MJPEG/V4L API : ./videodev_mjpeg.h

V4L API       : /usr/include/linux/videodev.h or
                /usr/src/linux/Documentation/video4linux/API.html or
                http://linux.bytesex.org/v4l2/API.html

V4L2 API      : /usr/include/linux/videodev2.h or
                http://v4l2spec.bytesex.org/

BSD/Meteor API: /usr/include/machine/ioctl_meteor.h

mjpegtools    : http://www.sourceforge.net/projects/mjpeg