liveadder: fix assertion when copying buffer region
authorGuillaume Marquebielle <guillaume.marquebielle@parrot.com>
Tue, 18 Aug 2015 11:56:59 +0000 (13:56 +0200)
committerOlivier CrĂȘte <olivier.crete@collabora.com>
Tue, 18 Aug 2015 20:37:09 +0000 (16:37 -0400)
commit30d58f46884e51db54f9ba45a1b02c63a107f17d
tree14460223953a8ceae11a2d84b6ad052b6b1af211
parent7dd86c26b25abb36006b347d63724e06b5f3da21
liveadder: fix assertion when copying buffer region

In gst_live_adder_chain() function, calls to gst_buffer_copy_region() can lead
to assertion as 'offset + size <= bufsize' is not respected.
Indeed 'offset' and 'size' parameters are calculated through calling gst_live_adder_length_from_duration(),
and thus gst_util_uint64_scale_int_round().
Depending on the nearest integers, rounded values 'offset' and 'size' can then trigger the assertion.
This case mainly occurs when 'skip' value is > 0 in chain function process.

https://bugzilla.gnome.org/show_bug.cgi?id=753759
gst/liveadder/liveadder.c