rtpbasepayload: fix header extension length calculation

Since ternary operator has the lowest precedence in the expressions at
hand, wordlen would always incorrectly yield 0 or 1.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1009>
This commit is contained in:
Jakub Adam 2021-01-12 22:08:14 +01:00
parent dc969bf538
commit f5d971a19e

View file

@ -1661,7 +1661,7 @@ set_headers (GstBuffer ** buffer, guint idx, gpointer user_data)
extlen =
hdrext.hdr_unit_size * data->payload->priv->header_exts->len +
hdrext.allocated_size;
wordlen = extlen / 4 + (extlen % 4) ? 1 : 0;
wordlen = extlen / 4 + ((extlen % 4) ? 1 : 0);
/* XXX: do we need to add to any existing extension data instead of
* overwriting everything? */
@ -1675,7 +1675,7 @@ set_headers (GstBuffer ** buffer, guint idx, gpointer user_data)
g_ptr_array_foreach (data->payload->priv->header_exts,
(GFunc) write_header_extension, &hdrext);
wordlen = hdrext.written_size / 4 + (hdrext.written_size % 4) ? 1 : 0;
wordlen = hdrext.written_size / 4 + ((hdrext.written_size % 4) ? 1 : 0);
gst_rtp_buffer_set_extension_data (&rtp, bit_pattern, wordlen);
}
GST_OBJECT_UNLOCK (data->payload);