matroskademux: don't leak TOC chapter list
v4l2object: Split caps in different categories

This is need to correctly expose capabilities on specialized devices
like decoders and encoders.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2: Fix h264 caps

V4L2_PIX_FMT_H264 is documentated as byte-stream (with start code). The ensure proper
negotiation with element like h264parse.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2: better handle quirks activation

This way we can activate deactivate those quirks all at once at one
place.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: make IO_MODE enum public

This is to allow adding a second io-mode property on M2M device like decoder so
input and output can be controlled separatly.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Implement gst_v4l2_dup()

This will duplicated the FD from another object and copy over the probed result.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Add gst_v4l2_object_open_shared()

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Quirks for dev without initial format

Most M2M have undefined behaviour initially when VIDIOC_G_FMT is called.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Don't validate dimension for encoded format

We set the dimensions just in case but don't validate them
afterwards. For some codecs the dimensions are *not* in the
bitstream, IIRC VC1 in ASF mode for example.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2bufferpool: Request buffers only once

VIDIOC_REQBUFS allocates buffer, it has no place inside set_config. Also, some driver do
no allow multiple calls to this ioctl.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Split _v4l2fourcc_to_video_format

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Move mplane logic into gst_v4l2_object_get_caps_info()

It makes the gst_v4l2_object_set_format() slightly simplier and will make that
logic reusable. Note that gst_v4l2_object_has_mplane() will always return the
same value for one device. There is no need to check against the caps as this
has already been done by _open.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Move back assertions where they should be

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Move the extrapolation of stride at the right place

Now that we have a stride array, we should extrapolate only when
eeded (non multi-planar buffer).

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Don't check format specific information

The number of plane, and the stride does not represent a capability change. Same caps
can have different stride from the default GstVideoInfo and the number of planes will
never change for 1 format.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Move code block where it belongs

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: set only one plane for encoded format

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Split out saving format from set_format()

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2object: Implement _setup_format()

This method allow setting up the object from the currently configured format on the
device. This is useful for M2M element where input data decides the format that will
be set on capture side.

https://bugzilla.gnome.org/show_bug.cgi?id=720568
v4l2: Move decide allocation into v4l2object

https://bugzilla.gnome.org/show_bug.cgi?id=720568