aggregator: Take lock to ensure set_caps is not called concurently

Avoiding to be in an inconsistent state where we do not have
actual negotiate caps set as srccaps and leading to point where we
try to unref ->srccaps when they have already been set to NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=735042
videoaggregator: Do not to release VIDEO_AGGREGATOR_LOCK while setting format info

We should be able to always keep the VIDEO_AGGREGATOR_LOCK while
negotiating caps, this patch introduce that change.

That also implies that we do not need the SETCAPS_LOCK anymore because
now VIDEO_AGGREGATOR_LOCK guarantees that setcaps is not called from
several threads and the gst_aggregator_set_caps method is now
protected.

https://bugzilla.gnome.org/show_bug.cgi?id=735042
openh264: Add OpenH264 based encoder/decoder elements

These are the openh264 elements released under the BSD-2 license
by Ericsson as part of the OpenWebRTC project.
https://github.com/EricssonResearch/openwebrtc-gst-plugins

https://bugzilla.gnome.org/show_bug.cgi?id=737788
openh264dec: Fix input state handling and propagation of upstream caps fields
openh264enc: Don't set caps manually

This will break the order of events in GStreamer.
openh264dec: Remove invalid sprops-parameter-set handling

This only exists on RTP caps, not H264 caps.
openh264dec: Fix various crashes on ::stop()
openh264dec: Don't forget to unref the input state
openh264dec: Optimize frame copying a bit
openh264dec: Add support for GstVideoMeta

This will make operation with various sinks faster for free.
openh264enc: Add support for GstVideoMeta

This will allow upstream elements to work more efficiently.
openh264enc: Fix up caps and stride handling
openh264enc: We always get a single frame as output, not a NAL

No need to accumulate NALs.
openh264enc: Properly drain the encoder on ::finish()
openh264dec: Properly drain codec on ::finish()
openh264dec: As we require NAL alignment from upstream we don't need to parse anything
openh264dec: GstVideoDecoder works on frames, not sub-frames (e.g. NALs)

And we can just pass complete AUs to the decoder without problems.
openh264dec: Don't drop videocodec frames if we can't decode them *yet*

Fixes jittery playback of streams with B frames.
openh264dec: Try to handle frame reordering

As openh264 has no way to attach any IDs to input frames that we then get on
the output frames, we have to assume that the input has valid PTS. We just
take the frame with the oldest PTS, and if there is no PTS information we take
the one with the oldest DTS.
openh264: Add FIXME comment about missing API in openh264