If the length of the string is zero, the pointer to the buffer may be
null. ASAN flags these as invalid/undefined, so don't do that.
Change-Id: Ic55498465c53a78e1bd44c42d1a60f9bd3336473
frame->linesize has padding and alignment issues. Explicitly calculate
the buffer size instead.
Change-Id: Ib3fb6bcbd855ca9a3e9b01e131002de06984c292
(cherry picked from commit f0b0feeca7)
At least the recording daemon uses the linesize directly, so this needs
to be corrected after returning a frame from the resampler.
Change-Id: Ia940d8acbbee3fb2d6564474ecb93ae27422d8af
(cherry picked from commit 06efa83cb0)
The packet must be decrypted first before RTP padding can be considered,
as the padding count is part of the encrypted payload as well.
Change-Id: I6aecff636efd420401856bb8110b3d784f989179
(cherry picked from commit 9e09cf3c40)
Make sure the pointers we return from our continuous memory buffer is
always 64-bit aligned as it's used not only for strings, but also for
structs/objects, and such unaligned memory access is undefined on some
archs and flagged as such by ASAN.
Change-Id: I84cf74e4e9d203fe02507aa1190ccc6554fb36e2
(cherry picked from commit ade8100d3b)
Avoid accessing memory via pointers that may not be aligned, which is
undefined behaviour on some archs. Use memcpy for this purpose instead.
Change-Id: Iec6c8d15fdd7ef00896e494b69412847b637b01b
(cherry picked from commit d44abe24f6)
Specially handle zero clock rate when synthesising payload types as a
zero clock rate would have its default clock rate inserted, subsequently
messing up the clock rate tracking.
Change-Id: I8335377da5c5734d28d231c20302df2d74a15e9b
Flag a socket with an error strike when packets are received too fast,
and refuse processing once too many strikes have occurred. This should
prevent forwarding loops from taking down the system.
Change-Id: Idc574f2f1dbbcb156efc37a80e903dc4e60ef1b1
AVPF extended (non-compound) RTCP packets don't satisy the same RTP-like
header rules as regular RTCP compound packets, therefore we move the
RTCP mux test ahead of the RTP header parsing test.
Change-Id: Iecb3895d16796095f572c2eda2efa0a7a0dc69e7
(cherry picked from commit 4fa48df952)
Additionally allow `except` and `offer` (and `transcode`) to revert
masked codecs.
Also adds `mask=full` and `strip=full`
closes#1054
Change-Id: I93a2891f2a0b9d324f6804e38f992be73c46211a
(cherry picked from commit 105a423ba1)
get_ssrc_ctx() returns a new reference to the SSRC object, therefore we
must release the referece when we're done with it.
Change-Id: I0db07e4cca49a37af68d072ac6d0630c025b8809
(cherry picked from commit 6527fb513c)
If the seq_file buffer overflows, the printing of the last item is
re-tried following a stop/start event on the seq_file. Therefore we
cannot unconditionally increase the offset whenever our `next` method is
called.
closes#1244
Change-Id: I7026deeeb03423cc2da57b1e069019638cf734cf
(cherry picked from commit 9d4b870b0f)
The SSRC mapping strategy can change if a re-invite disengages
transcoding, therefore we always need to update the output SSRC mapping
even if the SSRC entry has already existed, to avoid stray SSRC changes.
Change-Id: Ib6f14ede1a4e615ff5eb8372cc68bf1acdd4b6c8
(cherry picked from commit dd7acd2644)
Do not perform protocol negotiations in an offer
closes#1086
Change-Id: I5fb7638aa71e80c08abcda2d8c341ae72725bace
(cherry picked from commit 92ea2685ae)
An endpoint switching protocols is normally passed through to the peer,
but in an answer that is usually not desirable. Change the default
behaviour to stick to the original protocol that was offered even if the
answerer changes protocols.
Change-Id: Ib288549f4b1c9ab57a6333c6b7dd511537af96f7
(cherry picked from commit 12ac8846de)