Allocate header, payload and padding in separate memory blocks in
gst_rtp_buffer_allocate().
don't use part of the payload data as storage for the extension data but store
it in a separate memory block that can be enlarged when needed.
Rework the one and two-byte header extension to make it reserve space for the
extra extension first.
Fix RTP unit test. Don't map the complete buffer or make assumptions on the
memory layout of the underlaying implementation. We can now always add extension
data because we have a separate memory block for it.
There won't be a tag messages on the bus, because tags
are now sent downstream for sinks to post on the bus,
and there's no sink involved here that would do that.
Secondly, the audio decoder base class only sends the
tags out once it has received some non-header data as
input, which is not something we're providing here.
Fix invalid memory access caused by broken pointer arithmetic.
If we have a uint16_t *tmpbuf and add n * dest->stride to it, we
skip twice as much as we intended to because dest->stride is in
bytes and not in pixels. This made us write beyond the end of
our allocated temp buffer, and made the unit test crash.
Use multifdsink for pipes instead of multisocketsink,
to avoid "creating GSocket from fd 9: Socket operation
on non-socket "criticals from Gio. Test still fails,
but it fails in a different way now.
Add support RTP buffers with multiple memory blocks. We allow one block for the
header, one for the extension data, N for data and one memory block for the
padding.
Remove the validate function, we validate now when we map because we need to
parse things in order to map multiple memory blocks.
Since we now use videoconvert, which supports these.
Unfortunately videoscale still crashes with 64-bit formats
right now because of a too small temp buffer, but I'm sure
someone is going to fix this real soon now, just like the
other unit tests.
Bases on test app in bug #614296. Doesn't work reliably yet,
leads to not-negotiated errors sooner or later, even when
it's the same element being re-plugged.