avidemux: fix crash with certain videos

This is a regression from 1.2 caused by the port
to the pad flow combiner.

https://bugzilla.gnome.org/show_bug.cgi?id=736192
audioecho: fix example command line
udpsrc: track max packet size and save allocator negotiated by GstBaseSrc
udpsrc: rework memory allocation bits and ensure we always have two chunks of memories to read into

First chunk is the likely/expected buffer size, second is as
fallback in case the packet is larger in the end.

Next step: actually use these.
udpsrc: more efficient memory handling

Drop use of g_socket_get_available_bytes() which is
not useful on all systems (where it returns the size
of the entire buffer not that of the next pending
packet), and is yet another syscall and apparently
very inefficient on Windows in the UDP case.

Instead, when reading UDP packets, use the more featureful
g_socket_receive_message() call that allows to read into
scattered memory, and allocate one memory chunk which is
likely to be large enough for a packet, while also providing
a larger allocated memory chunk just in case the packet
is larger than expected. If the received data fits into the
first chunk, we'll just add that to the buffer we return
and re-use the fallback buffer for next time, otherwise we
add both chunks to the buffer.

This reduces memory waste more reliably on systems where
get_available_bytes() doesn't work properly.

In a multimedia streaming scenario, incoming UDP packets
are almost never fragmented and thus almost always smaller
than the MTU size, which is also why we don't try to do
something smarter with more fallback memory chunks of
different sizes. The fallback scenario is just for when
someone built a broken sender pipeline (not using a
payloader or somesuch)

https://bugzilla.gnome.org/show_bug.cgi?id=610364
tests: udpsrc: split out socket setup
tests: udpsrc: wait for buffers with GCond instead of sleeping

Avoids half-second sleep for no reason.
tests: udpsrc: add check to make sure multiple memory chunks are used
v4l2: set min_latency for output device according to required minimum number of buffers

Since we can get the minimum number of buffers needed by an output
device to work, use it to set min_latency which will determine how many
buffers are queued.

https://bugzilla.gnome.org/show_bug.cgi?id=736072
v4l2: Merge min_buffers_for* variable into one

Reuse the same min_buffers variable for both capture and output, this
reduce the length of lines and make the code more readable.

https://bugzilla.gnome.org/show_bug.cgi?id=736072
v4l2allocator: Workaround driver that don't support REQBUFS(0)

There is still around 18 drivers not yet ported to videobuf2. These driver
don't support freeing buffetrs through REQBUFS(0) hence for these the
memory type probing fails. In order to gain back our previous behaviour in
presence of these, we implement a workaround that assuming MMAP is
supported. Note that an allocator is only created for device with
STREAMING support in the device capabilities. In such case one of MMAP,
USERPTR and DMABUF is required. Though DMABUF came afterward, so is
not an option and in practice none of these drivers will only do USERPTR.

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

Also-by: Hans de Goede <hdegoede@redhat.com>
v4l2: Detect bad drivers timestamps

Even though the UVC driver do a great deal of effort to prevent bad
timestamp to be sent to userspace, there still exist UVC hardware that
are so buggy that the timestamp endup nearly random. This code detect
and ignore timestamp from these drivers, making these camera usable.
This has been tested on both invalid and valid cameras, making sure it
does not trigger for valid cameras.

https://bugzilla.gnome.org/show_bug.cgi?id=732910
v4l2transform: Don't rank it for now

This will prevent the converter to be picked automatically in case
someone implement dynamic converter selection support. I'd like this
to be ranked only for known device, as it's hard to be sure a device is
a converter suited for general purpose. Re-negotiation is also needed
before we can rank it.

https://bugzilla.gnome.org/show_bug.cgi?id=733607
v4l2sink: Unref pool after usage

https://bugzilla.gnome.org/show_bug.cgi?id=736384
souphttpsrc: If the server reports "Accept-Ranges: none" don't try range requests
multifilesink: don't OR the same flag twice

https://bugzilla.gnome.org/show_bug.cgi?id=736462
matroskademux: handle real audio 28_8

Fixes duplicate check for 14_4.

https://bugzilla.gnome.org//show_bug.cgi?id=736543
matroskamux: don't bitwise OR the same flag twice

https://bugzilla.gnome.org//show_bug.cgi?id=736543
udp: include string.h for memcmp and memset

https://bugzilla.gnome.org//show_bug.cgi?id=736528
wavparse: Fix parsing of adtl chunks

We have to skip 12 bytes of data for the chunk, and the data size
passed to the sub-chunk parsing functions should have 4 bytes less
than the data size.

Also when parsing the sub-chunks, check if we actually have enough
data to read instead of just crashing.

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