gstreamer/gst
Tim-Philipp Müller aa4448cdd6 rtpjpegpay: fix image corruption when compiled with MSVC on Windows
On Windows with MSVC, jpeg_header_size would end up 2 bytes larger
than it should be. This then leads to the first 2 bytes of the
actual jpeg image data to be dropped, because we think those
belong to the header, which results in an undecodable image when
reconstructed in the depayloader.

What happens is that when the compiler evaluates

  jpeg_header_size = mem.offset + read_u16_and_inc_offset_by_2(&mem);

it actually uses the mem.offset value after it has been increased
by the function call on the right hand size of the equation.

From section 6.5 of the C99 spec:

  3. The grouping of operators and operands is indicated by the syntax [74].
     Except as specified later (for the function-call (), &&, ||, ?:, and
     comma operators), the order of evaluation of subexpressions and the
     order in which side effects take place are both unspecified.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/889

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/999>
2021-05-29 14:31:34 +01:00
..
alpha alpha: allow per feature registration 2021-03-29 12:45:22 +02:00
apetag apetag: allow per feature registration 2021-03-29 12:45:22 +02:00
audiofx audiofx: allow per feature registration 2021-03-29 12:45:22 +02:00
audioparsers audioparsers: allow per feature registration 2021-03-29 12:45:22 +02:00
auparse auparse: allow per feature registration 2021-03-29 12:45:23 +02:00
autodetect autodetect: allow per feature registration 2021-03-29 12:45:22 +02:00
avi avi: allow per feature registration 2021-03-29 12:45:22 +02:00
cutter cutter: allow per feature registration 2021-03-29 12:45:23 +02:00
debugutils debugutils: allow per feature registration 2021-03-29 12:45:22 +02:00
deinterlace deinterlace: Drop "field-order" field while transforming caps 2021-05-27 12:58:30 +00:00
dtmf dtmf: convert to bit accessors 2021-04-14 11:13:45 -04:00
effectv effectv: allow per feature registration 2021-03-29 12:45:22 +02:00
equalizer equalizer: allow per feature registration 2021-03-29 12:45:22 +02:00
flv flv: allow per feature registration 2021-03-29 12:45:22 +02:00
flx flx: allow per feature registration 2021-03-29 12:45:22 +02:00
goom goom: allow per feature registration 2021-03-29 12:45:23 +02:00
goom2k1 goom2k1: allow per feature registration 2021-03-29 12:45:23 +02:00
icydemux icydemux: allow per feature registration 2021-03-29 12:45:23 +02:00
id3demux id3demux: allow per feature registration 2021-03-29 12:45:23 +02:00
imagefreeze imagefreeze: allow per feature registration 2021-03-29 12:45:23 +02:00
interleave interleave: allow per feature registration 2021-03-29 12:45:22 +02:00
isomp4 qtmux: Make sure to write 64-bit STCO table when needed. 2021-04-30 08:12:47 +10:00
law law: allow per feature registration 2021-03-29 12:45:22 +02:00
level level: make properties thread-safe 2021-04-23 15:14:44 +02:00
matroska matroskademux: fix decoder glitches with H264 content 2021-05-20 15:07:07 +02:00
monoscope monoscope: allow per feature registration 2021-03-29 12:45:23 +02:00
multifile Use gst_element_request_pad_simple 2021-05-05 06:17:20 +00:00
multipart multipart: allow per feature registration 2021-03-29 12:45:22 +02:00
replaygain replaygain: allow per feature registration 2021-03-29 12:45:22 +02:00
rtp rtpjpegpay: fix image corruption when compiled with MSVC on Windows 2021-05-29 14:31:34 +01:00
rtpmanager rtpssrcdemux: fix "data flow before segment event" crash 2021-05-25 22:04:41 +00:00
rtsp Use gst_element_request_pad_simple 2021-05-05 06:17:20 +00:00
shapewipe shapewipe: allow per feature registration 2021-03-29 12:45:23 +02:00
smpte smpte: allow per feature registration 2021-03-29 12:45:23 +02:00
spectrum spectrum: allow per feature registration 2021-03-29 12:45:23 +02:00
udp udpsrc: Plug leaks of saddr in error cases 2021-05-07 10:09:38 +00:00
videobox videobox: allow per feature registration 2021-03-29 12:45:23 +02:00
videocrop videocrop: Add support for GBR* video formats 2021-04-10 11:26:59 +00:00
videofilter videofilter: allow per feature registration 2021-03-29 12:45:23 +02:00
videomixer videomixer: document as deprecated 2021-02-18 01:48:24 +01:00
wavenc wavenc: allow per feature registration 2021-03-29 12:45:23 +02:00
wavparse wavparse: use g_strndup() for copying text data 2021-05-23 15:20:16 +01:00
y4m y4m: allow per feature registration 2021-03-29 12:45:23 +02:00
meson.build meson: Add feature options for all plugins 2018-07-27 18:42:54 +05:30