gstreamer/subprojects
Jakub Vaněk 0b65f667af v4l2src: Interpret V4L2 report of sync loss as video signal loss
Certain V4L2 drivers can report that a video receiver is seeing
some signal, but that it is unable to synchronize to it. IOW: the driver
can sometimes report V4L2_IN_ST_NO_SYNC and not report V4L2_IN_ST_NO_SIGNAL.

In particular, I've seen the tc358743 (HDMI-to-CSI2 converter) driver
sometimes report this when deployed to a fleet of embedded Raspberry Pis.
The relevant kernel code is in [1]. The video output is not practically
usable when V4L2_IN_ST_NO_SYNC is reported (only visually corrupted frames,
sometimes with random "snow", are received). I assume that this happens when
either the HDMI cable is poorly plugged in or damaged or when a CSI2 FFC
cable is used and is damaged.

The change in this commit is useful for detecting this working-but-not-really
condition in application code. Applications already listening for the "Signal lost"
message will gain the ability to handle this condition.

There seem to be more V4L2 error flags like this, see [2]. However, I do not
have practical experience with them and adding only V4L2_IN_ST_NO_SYNC seems
like a safer option.

[1]: https://github.com/raspberrypi/linux/blob/be8498ee21aa/drivers/media/i2c/tc358743.c#L1534
[2]: https://www.kernel.org/doc/html/v6.6/userspace-api/media/v4l/vidioc-enuminput.html

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7021>
2024-06-12 17:26:48 +00:00
..
gst-devtools debug-viewer: Fix plugin loading machinery 2024-04-17 16:24:15 +00:00
gst-docs docs: basic-tutorial-5: Don't unref floating reference 2024-05-21 23:40:42 +02:00
gst-editing-services meson: Correct typo in 'xptv formatter' description 2024-05-27 19:28:20 +00:00
gst-examples examples: rust: Update various dependencies 2024-06-06 09:44:59 +03:00
gst-integration-testsuites validate/flvdemux: Stop spamming audio/video on test 2024-04-24 07:47:42 +02:00
gst-libav avviddec: Rename variables and fuse function 2024-05-15 13:20:54 +00:00
gst-plugins-bad vulkan/swapper: expose choose_queue() in docs 2024-06-12 23:37:58 +10:00
gst-plugins-base uridecodebin3: Don't hold PLAY_ITEMS lock when activating them 2024-06-11 16:42:27 +00:00
gst-plugins-good v4l2src: Interpret V4L2 report of sync loss as video signal loss 2024-06-12 17:26:48 +00:00
gst-plugins-ugly Back to development 2024-03-05 12:58:57 +00:00
gst-python gst-python: Fix README.md 2024-05-17 14:12:08 +00:00
gst-rtsp-server gst: Move GstQueueArray as GstVecDeque to core 2024-05-06 18:25:42 +00:00
gstreamer typefindhelper: implement get_length on GstTypeFindBufHelper 2024-06-07 10:00:56 +02:00
gstreamer-sharp Back to development 2024-03-05 12:58:57 +00:00
gstreamer-vaapi meson: Don't use fallback: kwarg for libva deps 2024-05-29 15:49: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 aja: Update to AJA NTV2 17.0.1 2024-05-11 15:54:54 +00:00
webview2 subprojects: webview2: Fix warning with meson 1.4.0 2024-04-13 14:47:29 +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: Declare dav1d dependency in subproject 2024-03-25 10:14:13 +00:00
DirectX-Headers.wrap subprojects: Add DirectX-Headers wrap 2023-12-14 18:08:00 +09:00
directxmath.wrap subprojects: directxmath: Update to 3.1.9 2024-04-02 05:14:53 +09:00
dssim.wrap
dv.wrap
expat.wrap
fdk-aac.wrap
FFmpeg.wrap meson: Make wrap downloads smaller 2024-03-23 13:08:15 +00:00
flac.wrap flac: Add wrap file and add fallback for it to the flac plugin 2024-04-07 11:12:51 +00:00
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 subprojects: update glib-networking wrap to 2.78.1 2024-04-03 18:49:08 +00:00
glib.wrap subprojects: update glib wrap to 2.78.3 2023-12-21 19:22:25 +02: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 Back to development 2024-03-05 12:58:57 +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 libdrm.wrap: Bump to latest 2.4.120 2024-05-29 15:49:45 +00:00
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 webrtc: Change requirement to libnice 0.1.22 2024-03-22 08:49:32 +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 soup: Link to libsoup in all cases on non-Linux 2024-02-21 09:27:59 +05:30
libsrtp2.wrap
libva.wrap libva.wrap: Bump to latest release 2.21.0, move to wrap-file 2024-05-29 15:49:45 +00:00
libwpe.wrap
libxml2.wrap libxml2: update to 2.10.3-4 2023-06-22 08:38:22 +00:00
ntv2.wrap aja: Update to AJA NTV2 17.0.1 2024-05-11 15:54:54 +00:00
ogg.wrap Update all wraps from WrapDB 2022-09-23 11:08:06 -04:00
openh264.wrap
opus.wrap meson: Fix various build issues with opus-1.5.1 2024-03-23 13:08:15 +00:00
orc.wrap subprojects: track orc main branch again 2024-03-05 13:25:19 +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: Bump pixman.wrap to latest version 2024-03-23 13:08:15 +00:00
proxy-libintl.wrap
pycairo.wrap
pygobject.wrap
soundtouch.wrap pitch: add validate tests 2024-05-02 13:26:09 +02:00
sqlite3.wrap
vorbis.wrap
vpx.wrap meson: Make wrap downloads smaller 2024-03-23 13:08:15 +00:00
wayland-protocols.wrap gstwayland: Support wp_single_pixel_buffer_v1 2024-01-22 16:51:36 -05: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 meson: Make wrap downloads smaller 2024-03-23 13:08:15 +00:00
zlib.wrap