gstreamer/subprojects
Marek Vasut 50fb6f8c02 av1decoder: Fix multiplication wraparound
The GstAV1Picture system_frame_number is guint32, constant 1000 is guint32,
GstV4l2CodecAV1Dec v4l2_av1_frame.*_frame_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 AV1 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
gst-libav avviddec: Calculate latency only for fixed framerate 2023-12-17 12:48:44 +00:00
gst-plugins-bad av1decoder: 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
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
avtp.wrap
cairo.wrap cairo: update wrap to 1.18.0 2023-12-13 11:51:53 +00:00
dav1d.wrap
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
freetype2.wrap
fribidi.wrap
gl-headers.wrap
glib-networking.wrap
glib.wrap
gobject-introspection.wrap
graphene.wrap
gst-plugins-rs.wrap
gtk-sharp.wrap csharp: update gtk-sharp subproject 2023-12-07 17:34:30 +01:00
gtk.wrap
harfbuzz.wrap
json-glib.wrap
lame.wrap
libdrm.wrap
libffi.wrap
libgudev.wrap meson: Update libgudev wrap to 238 2023-12-06 20:17:56 +00:00
libjpeg-turbo.wrap
liblc3.wrap
libmicrodns.wrap
libnice.wrap
libopenjp2.wrap
libpng.wrap
libpsl.wrap
libsoup.wrap
libsrtp2.wrap
libva.wrap
libwpe.wrap
libxml2.wrap
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
pango.wrap pango: update wrap to 1.51.0 2023-12-13 11:51:53 +00:00
pcre2.wrap
pixman.wrap
proxy-libintl.wrap
pycairo.wrap
pygobject.wrap
sqlite3.wrap
vorbis.wrap
vpx.wrap
webrtc-audio-processing.wrap
wpebackend-fdo.wrap
x264.wrap
zlib.wrap