Base Video Classes TODO

Main goal:

 Make the video encoder/decoder base classes more consistent with the
other GStreamer API, especially with the audio encoder/decoder base
classes.

API:

 The API should be named similar, the base classes should be used
similar by the sub-classes, the behaviour of the base classes should
be similar.
 Currently there are many, mostly small, differences between the audio
and video base classes API. Things like GstVideoState should be merged
with the stuff we have in 0.11 to make the API the same in 0.11 and
0.10 as far as possible, things like GstVideoInfo might make sense to
be backported (at least partially).


Specifics:
 * Use a GInstancePrivate for extensibility.

 * Try to move more common video objects to video.[ch]

Known bugs:
 https://bugzilla.gnome.org/show_bug.cgi?id=664127
  [basevideodecoder] Add separate drain vfunc and differentiate
    between hard/soft reset in reset vfunc

 https://bugzilla.gnome.org/show_bug.cgi?id=660770
  Doesn't support handling of "partial" frames

 https://bugzilla.gnome.org/show_bug.cgi?id=654294
  Impossible to flush pending frames in ::set_format

 https://bugzilla.gnome.org/show_bug.cgi?id=658241
  add API to handle QoS events and dropping logic

 https://bugzilla.gnome.org/show_bug.cgi?id=667653
  Autodetect multicore/multithread processors

 https://bugzilla.gnome.org/show_bug.cgi?id=617021
  Add support for QoS messages to -bad decoders and other elements


Peripheral issues
 https://bugzilla.gnome.org/show_bug.cgi?id=663262
  theoraenc: spurious encoder resets due to unstable upstream
  timestamps cause quality issues
  => Investigate how to specify/handle variable framerates.