gstreamer/subprojects
Marek Vasut 3cbf09d0c9 mpeg2decoder: Fix multiplication wraparound
The GstMpeg2Picture system_frame_number is guint32, constant 1000 is guint32,
GstV4l2CodecMpeg2Dec *_ref_ts multiplication result is u64 .

```
u64 result = (u32)((u32)system_frame_number * (u32)1000);
```
behaves the same as
```
u64 result = (u32)(((u32)system_frame_number * (u32)1000) & 0xffffffff);
```

so in case `system_frame_number > 4294967295 / 1000`, the `result` will
wrap around. Since the `result` is really used as a cookie used to look
up V4L2 buffers related to the currently decoded frame, this wraparound
leads to visible corruption during MPEG2 decoding. At 30 FPS this occurs
after cca. 40 hours of playback .

Fix this by changing the 1000 from u32 to u64, i.e.:
```
u64 result = (u64)((u32)system_frame_number * (u64)1000ULL);
```
this way, the wraparound is prevented and the correct cookie is used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791>
2023-12-20 18:47:39 +00:00
..
gst-devtools validate: Fix memory leak in gst_validate_abort() 2023-12-04 20:04:05 +00:00
gst-docs play: Include pipeline dump in error details structure 2023-12-18 20:13:38 +00:00
gst-editing-services meson: update PACKAGE_BUGREPORT 2023-12-05 11:47:51 +01:00
gst-examples examples: webrtc: update sendrecv dependencies 2023-12-14 21:14:48 +00:00
gst-integration-testsuites interaudiosink: Ensure adapters don't store buffers with audio meta 2023-09-28 10:26:33 +00:00
gst-libav avviddec: Calculate latency only for fixed framerate 2023-12-17 12:48:44 +00:00
gst-plugins-bad mpeg2decoder: Fix multiplication wraparound 2023-12-20 18:47:39 +00:00
gst-plugins-base video-format: Fix format order once again 2023-12-20 05:33:43 +00:00
gst-plugins-good video-format: Fix format order once again 2023-12-20 05:33:43 +00:00
gst-plugins-ugly meson: Fix MSVC build with GST_DISABLE_GST_DEBUG 2023-11-03 13:31:03 +00:00
gst-python gst-python: Fix API call for Python 3.13 2023-11-03 21:02:48 +05:30
gst-rtsp-server rtsp-server: Unprepare media that is in error state 2023-11-08 14:39:01 +00:00
gstreamer meta: Add API to register metas in two steps 2023-12-19 22:41:31 +00:00
gstreamer-sharp csharp: disable codegen when not building as a subproject 2023-12-07 17:34:34 +01:00
gstreamer-vaapi vaapi: add device env to plugin dependencies 2023-11-17 03:27:45 +00:00
macos-bison-binary macos-bison: Update to 3.8.2 and add an ARM64 build 2023-08-31 07:50:43 +00:00
packagefiles ntv2: Use a patch overlay instead of diff 2023-12-20 18:18:43 +00:00
win-flex-bison-binaries
win-nasm
win-pkgconfig win: add new win-pkgconfig subproject 2023-07-21 06:37:45 +00:00
avtp.wrap
cairo.wrap cairo: update wrap to 1.18.0 2023-12-13 11:51:53 +00:00
dav1d.wrap meson: add missing source_filename in the dav1d wrap 2023-04-03 14:29:36 +00:00
DirectX-Headers.wrap subprojects: Add DirectX-Headers wrap 2023-12-14 18:08:00 +09:00
directxmath.wrap directxmath.wrap: Fix cpuid mismatch on MinGW 2023-11-20 20:08:57 +00:00
dssim.wrap
dv.wrap
expat.wrap
fdk-aac.wrap
FFmpeg.wrap
fontconfig.wrap meson: Provide fontconfig dep from the subproject 2023-07-20 11:00:35 +00:00
freetype2.wrap
fribidi.wrap fribidi.wrap: Move to tarball, bump, provide dep 2023-07-12 21:17:25 +00:00
gl-headers.wrap
glib-networking.wrap
glib.wrap subprojects: update glib wrap to 2.78.0 2023-10-16 18:16:40 +00:00
gobject-introspection.wrap gi: add support for introspection with subprojects 2023-07-21 06:37:45 +00:00
graphene.wrap meson: Use tarball for graphene instead of git 2023-07-20 11:00:35 +00:00
gst-plugins-rs.wrap gst-plugins-rs: Track main branch again 2023-01-24 19:08:50 +00:00
gtk-sharp.wrap csharp: update gtk-sharp subproject 2023-12-07 17:34:30 +01:00
gtk.wrap gtk: Update subproject from 4.9.2 to 4.10.3 2023-07-19 07:38:36 +00:00
harfbuzz.wrap harfbuzz.wrap: Bump to latest to fix MSYS2 build failure 2023-07-12 21:17:25 +00:00
json-glib.wrap
lame.wrap
libdrm.wrap
libffi.wrap libffi: fix wrap file to provide the libffi dependency 2023-07-21 06:37:45 +00:00
libgudev.wrap meson: Update libgudev wrap to 238 2023-12-06 20:17:56 +00:00
libjpeg-turbo.wrap
liblc3.wrap lc3: fix pkg-config file lookup 2023-08-08 22:12:29 +00:00
libmicrodns.wrap
libnice.wrap libnice: disable gst tests in static mode 2023-05-31 15:17:11 +00:00
libopenjp2.wrap
libpng.wrap
libpsl.wrap meson: Ensure that soup plugin is built on Windows 2023-07-15 05:06:35 +00:00
libsoup.wrap
libsrtp2.wrap subprojects: Update libsrtp2 wrap to v2.5.0 2023-02-01 10:34:35 +00:00
libva.wrap subprojects: libva: Pin to 2.19.0.pre1 (1c58941) 2023-06-15 21:14:29 +00:00
libwpe.wrap
libxml2.wrap libxml2: update to 2.10.3-4 2023-06-22 08:38:22 +00:00
ntv2.wrap ntv2: Use a patch overlay instead of diff 2023-12-20 18:18:43 +00:00
ogg.wrap
openh264.wrap
opus.wrap
orc.wrap orc: update subproject wrap to 0.4.34 2023-05-30 01:21:20 +00:00
pango.wrap pango: update wrap to 1.51.0 2023-12-13 11:51:53 +00:00
pcre2.wrap meson: Force pcre2 to be provided by a subproject on macOS 2023-07-20 11:00:35 +00:00
pixman.wrap meson: Fix pixman build on ARM64 macOS 2023-07-20 11:00:35 +00:00
proxy-libintl.wrap
pycairo.wrap
pygobject.wrap meson: Allow sysdeps to be forced as fallback subprojects 2023-02-06 09:26:02 +00:00
sqlite3.wrap
vorbis.wrap
vpx.wrap subprojects: Add libvpx wrap 2023-08-08 18:08:24 +00:00
webrtc-audio-processing.wrap meson: Update webrtc-audio-processing wrap to 1.3 2023-09-05 11:27:17 -04:00
wpebackend-fdo.wrap
x264.wrap
zlib.wrap