AI Slop Code Risk Monitor

videolan/vlc

SlopCodeMonitor badge for videolan/vlc Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

VLC media player - plays everything, runs anywhere. Code here: https://code.videolan.org/videolan/vlc

1.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for videolan/vlc, a C project with 20,274 GitHub stars. SynthScan examined 1,144,537 lines of code across 3738 source files, recording 1642 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.5 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.5
Adjusted Signal
1.5
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
20.3K
Stars
C
Language
1.1M
Lines of Code
3.7K
Files
1.6K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 6.9/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 1619 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

Are imports declared and package/API names verified? 19 finding(s).

Agent Over-Engineering Ratio 0.1/100 · LOW

Are wrappers, guards, and repeated structures necessary? 8 finding(s).

PR Review Velocity Impact 7.0/100 · LOW

Which changes need focused human review? 1642 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 0MEDIUM 11LOW 1631

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1642 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Over-Commented Block1577 hits · 1566 pts
SeverityFileLineSnippetContext
LOWmeson_options.txt841 value: 'auto',COMMENT
LOWmeson_options.txt861# TODO: Missing osx_notificationsCOMMENT
LOWcompat/aligned_alloc.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/clock_nanosleep.c21 *****************************************************************************/COMMENT
LOWcompat/inet_pton.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/localtime_r.c21#if defined(__STDC_LIB_EXT1__) && (__STDC_LIB_EXT1__ >= 20112L)COMMENT
LOWcompat/flockfile.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/fsync.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/gai_strerror.c41 *COMMENT
LOWcompat/gai_strerror.c61# define EAI_FAIL -4COMMENT
LOWcompat/fdopendir.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/getpid.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/strverscmp.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/stdbit/stdbit.h21COMMENT
LOWcompat/test/ckd.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWcompat/test/ckd.c41# endifCOMMENT
LOWcompat/windows/unistd.h1// Copyright © 2023 VideoLabs, VLC authors and VideoLANCOMMENT
LOWcompat/windows/dirent.h1// Copyright © 2023 VideoLabs, VLC authors and VideoLANCOMMENT
LOWtest/vlc-window.c1/* licence WTFPL */COMMENT
LOWtest/watchosvlc.m21 * along with this program; if not, write to the Free Software Foundation,COMMENT
LOWtest/iosvlc.m21 * along with this program; if not, write to the Free Software Foundation,COMMENT
LOWtest/checkasm/ext/meson_options.txt1# Copyright © 2025 Niklas HaasCOMMENT
LOWtest/checkasm/ext/gen-arm-core-table.sh1#!/bin/shCOMMENT
LOWtest/checkasm/ext/include/checkasm/attributes.h81 #elseCOMMENT
LOWtest/checkasm/ext/include/checkasm/header_config.h41#elif defined(__arm__) || defined(_M_ARM)COMMENT
LOWtest/checkasm/ext/include/checkasm/header_config.h61 #define CHECKASM_ARCH_RISCV 1COMMENT
LOWtest/checkasm/ext/include/checkasm/header_config.h81#endifCOMMENT
LOWtest/checkasm/ext/include/checkasm/header_config.h101#endifCOMMENT
LOWtest/checkasm/ext/include/checkasm/header_config.h121#endifCOMMENT
LOWtest/checkasm/ext/include/checkasm/perf.h41 #include "checkasm/perf/ppc64le.h"COMMENT
LOWtest/checkasm/ext/include/checkasm/platform.h41 #include "checkasm/platform/x86_32.h"COMMENT
LOWtest/checkasm/ext/include/checkasm/perf/arm.h61}COMMENT
LOWtest/checkasm/ext/include/checkasm/perf/loongarch64.h41#define CHECKASM_PERF_ASM() checkasm_rdtime()COMMENT
LOWtest/checkasm/ext/include/checkasm/perf/loongarch32.h41#define CHECKASM_PERF_ASM() checkasm_rdtimel()COMMENT
LOWtest/checkasm/ext/include/checkasm/perf/aarch64.h61 #define CHECKASM_PERF_ASM() checkasm_pmccntr()COMMENT
LOWtest/checkasm/ext/src/internal.h41#include "longjmp.h"COMMENT
LOWtest/checkasm/ext/src/internal.h61COMMENT
LOWtest/checkasm/ext/src/internal.h81#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))COMMENT
LOWtest/checkasm/ext/src/perf_internal.h81 /* This only depends on <dlfcn.h>, and isn't needed on other architectures. */COMMENT
LOWtest/checkasm/ext/src/html_data.h21 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED ANDCOMMENT
LOWtest/checkasm/ext/src/checkasm_config.h41 #define ARCH_AARCH64 CHECKASM_ARCH_AARCH64COMMENT
LOWtest/checkasm/ext/src/checkasm_config.h61 #define ARCH_PPC64LE CHECKASM_ARCH_PPC64LECOMMENT
LOWtest/checkasm/ext/src/checkasm_config.h81 #define ARCH_X86_32 CHECKASM_ARCH_X86_32COMMENT
LOWtest/checkasm/ext/src/checkasm_config.h101#ifndef HAVE_GETAUXVALCOMMENT
LOWtest/checkasm/ext/src/checkasm_config.h121 || defined(__unix__)COMMENT
LOWtest/checkasm/ext/src/checkasm_config.h141 || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) \COMMENT
LOWtest/checkasm/ext/src/checkasm_config.h161 #define HAVE_STDBIT_H 1COMMENT
LOWtest/checkasm/ext/src/checkasm_config.h181 #define HAVE_PTHREAD_SETAFFINITY_NP 0COMMENT
LOWtest/checkasm/ext/src/checkasm_config.h201COMMENT
LOWtest/checkasm/ext/src/checkasm_config.h221 #ifndef HAVE_SVECOMMENT
LOWtest/checkasm/ext/src/checkasm_config.h241 #elseCOMMENT
LOWtest/checkasm/ext/src/utils.c41#ifdef _WIN32COMMENT
LOWtest/checkasm/ext/src/checkasm.c41#include <inttypes.h>COMMENT
LOWtest/checkasm/ext/src/longjmp.h61 #if HAVE_SIGLONGJMPCOMMENT
LOWtest/checkasm/ext/src/arm/cpu.c101#elif ARCH_ARMCOMMENT
LOWtest/checkasm/ext/src/riscv/cpu.c41 #include <stdatomic.h>COMMENT
LOWtest/libvlc/downloader.c21#ifdef HAVE_CONFIG_HCOMMENT
LOWtest/libvlc/thumbnailer.c21 *****************************************************************************/COMMENT
LOWtest/libvlc/media_callback.c21 *****************************************************************************/COMMENT
LOWtest/modules/misc/medialibrary.c21 *****************************************************************************/COMMENT
1517 more matches not shown…
Redundant / Tautological Comments17 hits · 26 pts
SeverityFileLineSnippetContext
LOWbuildsystem/dependencies.sh84 # Check if the archive is in .libs, which could signalCOMMENT
LOW⚡modules/video_chroma/i420_rgb_sse2.h76pshufd $0, %%xmm5, %%xmm5 # Set xmm5 to 00 80 ... 00 80 00 80 \n\CODE
LOW⚡modules/video_chroma/i420_rgb_sse2.h85pshufd $0, %%xmm5, %%xmm5 # Set xmm5 to f3 7d ... f3 7d f3 7d \n\CODE
LOW⚡modules/video_chroma/i420_rgb_sse2.h89pshufd $0, %%xmm5, %%xmm5 # Set xmm5 to e5 fc ... e5 fc e5 fc \n\CODE
LOW⚡modules/video_chroma/i420_rgb_sse2.h93pshufd $0, %%xmm5, %%xmm5 # Set xmm5 to 40 93 ... 40 93 40 93 \n\CODE
LOW⚡modules/video_chroma/i420_rgb_sse2.h97pshufd $0, %%xmm5, %%xmm5 # Set xmm5 to 33 12 ... 33 12 33 12 \n\CODE
LOW⚡modules/video_chroma/i420_rgb_sse2.h104pshufd $0, %%xmm5, %%xmm5 # Set xmm5 to 10 10 ... 10 10 10 10 \n\CODE
LOWextras/misc/stackhandler.py81 # Check if VLC version matchCOMMENT
LOWextras/misc/stackhandler.py112 # Print the outputCOMMENT
LOWextras/ci/check-url.sh6# Check if a given URL exists or notCOMMENT
LOWextras/package/apple/copy_plugins.sh36 # Check if entry already exists (by plugin name)COMMENT
LOWextras/package/apple/build.sh157# Print message if verbose, else silentCOMMENT
LOWextras/package/apple/build.sh169# Check if tool exists, if not error outCOMMENT
LOWextras/package/apple/build.sh624# Set PKG_CONFIG_LIBDIR to an empty string to preventCOMMENT
LOWextras/package/apple/build.sh720# Set flag to error on partial availabilityCOMMENT
LOWextras/package/win32/build.sh163# Check if compiling with clangCOMMENT
LOWextras/package/win32/build.sh177# Check if this is a UCRT toolchainCOMMENT
Fake / Example Data14 hits · 18 pts
SeverityFileLineSnippetContext
LOWcompat/test/strnstr.c30const char* haystack = "Lorem ipsum dolor sit amet";CODE
LOWcompat/test/strnstr.c30const char* haystack = "Lorem ipsum dolor sit amet";CODE
LOWcompat/test/strnstr.c45 test( haystack, "Lorem ipsum dolor sit amet, but bigger", 0, false );CODE
LOWcompat/test/strnstr.c45 test( haystack, "Lorem ipsum dolor sit amet, but bigger", 0, false );CODE
LOW⚡modules/gui/qt/dialogs/help/help.cpp223 // Lorem ipsum with some "Security" to see if red coloring works:COMMENT
LOW⚡modules/gui/qt/dialogs/help/help.cpp224 "Lorem ipsum dolor sit amet, security consectetur adipiscing elit. Sed vitae ante lobortis," \CODE
LOW⚡modules/gui/qt/dialogs/help/help.cpp224 "Lorem ipsum dolor sit amet, security consectetur adipiscing elit. Sed vitae ante lobortis," \CODE
LOW⚡modules/gui/qt/dialogs/help/help.cpp231 "Lorem ipsum dolor sit amet, security consectetur adipiscing elit. Sed vitae ante lobortis," \CODE
LOW⚡modules/gui/qt/dialogs/help/help.cpp231 "Lorem ipsum dolor sit amet, security consectetur adipiscing elit. Sed vitae ante lobortis," \CODE
LOW⚡modules/gui/qt/dialogs/help/help.cpp238 "Lorem ipsum dolor sit amet, security consectetur adipiscing elit. Sed vitae ante lobortis," \CODE
LOW⚡modules/gui/qt/dialogs/help/help.cpp238 "Lorem ipsum dolor sit amet, security consectetur adipiscing elit. Sed vitae ante lobortis," \CODE
LOWmodules/stream_out/bridge.c116 add_bool( SOUT_CFG_PREFIX_IN "placeholder", false,CODE
LOWmodules/stream_out/bridge.c136 "placeholder", "placeholder-delay", "placeholder-switch-on-iframe",CODE
LOWmodules/stream_out/bridge.c691 var_Get( p_stream, SOUT_CFG_PREFIX_IN "placeholder", &val );CODE
Self-Referential Comments5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMcontrib/src/pkg-rewrite-absolute.py117 # Create main parserCOMMENT
MEDIUMcontrib/src/pkg-static.sh3# This file is distributed under the same license as the vlc package.COMMENT
MEDIUMextras/misc/stackhandler.py199 # Create the gdb batchfileCOMMENT
MEDIUMextras/misc/authors_list.sh168# This file contains VideoLAN as a contributor.COMMENT
MEDIUMextras/package/wasm-emscripten/build.sh4# This file is under the same license as the vlc package.COMMENT
Decorative Section Separators3 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUM⚡test/modules/stream_filter/httplive/traffic-shaping.sh4#----------------------------------------------------------------------------COMMENT
MEDIUM⚡test/modules/stream_filter/httplive/traffic-shaping.sh6#----------------------------------------------------------------------------COMMENT
MEDIUM⚡test/modules/stream_filter/httplive/traffic-shaping.sh8#----------------------------------------------------------------------------COMMENT
Slop Phrases6 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMinclude/vlc_executor.h97 * Here is a simple example:COMMENT
LOWinclude/vlc_pgpkey.h9 * Don't forget to upload the key to http://download.videolan.org/pub/keys/COMMENT
MEDIUMmodules/audio_output/file.c90#define WAV_LONGTEXT N_("Instead of writing a raw file, you can add a WAV " \COMMENT
MEDIUMextras/misc/authors_list.sh32# Only if the script is not modified (wrt finding translators) you can use the current AUTHORSCOMMENT
LOWextras/package/macosx/dmg/dmg_settings.py9# This is python, so make sure to write valid python,COMMENT
LOWextras/package/snap/snapcraft.yaml388 # kf6-core24 already ships vlc, make sure to not delete our own filesCOMMENT
Hyper-Verbose Identifiers4 hits · 5 pts
SeverityFileLineSnippetContext
LOWtest/checkasm/ext/include/checkasm/utils.h651 * @def checkasm_check_rect_padded(rect1, ...)COMMENT
LOWtest/checkasm/ext/include/checkasm/utils.h661 * @def checkasm_check_rect_padded_align(rect1, ...)COMMENT
LOWcontrib/src/gen-cmake-toolchain.py21def _add_environ_val_not_empty(meson_key, env_key):CODE
LOWcontrib/src/gen-cmake-toolchain.py26def _add_environ_cached_val_not_empty(meson_key: str, env_key: str):CODE
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOWbuildsystem/check_qml_module.py61CODE
LOWbuildsystem/check_qml_module.py80CODE
LOWextras/breakpad/symb_upload.py22CODE
LOWextras/breakpad/symb_upload.py88CODE
LOWextras/package/win32/msi/msi-heat.py53CODE
Unused Imports5 hits · 5 pts
SeverityFileLineSnippetContext
LOWbuildsystem/gen-vlc-about.py2CODE
LOWmodules/gui/qt/scripts/genqmldir.py3CODE
LOWmodules/gui/qt/scripts/genqrc.py2CODE
LOWmodules/gui/qt/scripts/genqrc.py3CODE
LOWextras/package/macosx/dmg/dmg_settings.py2CODE
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOW…ules/gui/qt/maininterface/compositor_x11_uisurface.hpp96 // NOTE: This method attempts to make the OpenGL context current against this window:COMMENT
LOWmodules/gui/qt/menus/custom_menus.hpp54// NOTE: This class is a helper to populate and maintain a QMenu from an QAbstractListModel.COMMENT
LOWmodules/gui/qt/medialibrary/mlvideomodel.hpp52 // NOTE: This function is useful when we want to apply a change before the database event.COMMENT
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOWmodules/gui/qt/util/kirigamiwheelhandler.cpp230 // We need to check if the parent inherits QQuickScrollView in case theCOMMENT
LOWshare/lua/http/js/jquery.jstree.js1413 // this variable stores the path to the themes folder - if left as false - it will be autodetectedCOMMENT
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWextras/misc/stackhandler.py307 except Exception as ex:CODE