mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-24 12:49:03 -05:00
emulator: carried the file stem on 67 profiles, so site links read like ids. Each now takes the project's own name (libretro .info corename, README title, window title or site title). tests/test_profile_names.py allows the stem only on a commented list: lowercase project names, test cores, aliases and the template.
66 lines
3.5 KiB
YAML
66 lines
3.5 KiB
YAML
emulator: "V4L2"
|
|
type: utility
|
|
core_classification: pure_libretro
|
|
source: "https://github.com/libretro/libretro-video-processor"
|
|
source_mirror: "https://git.libretro.com/libretro/libretro-video-processor"
|
|
upstream: "https://github.com/jaredmcneill/libretro-v4l2"
|
|
author: "Jared McNeill"
|
|
profiled_date: "2026-09-17"
|
|
source_commit: "8fe4751f0039a1b645bf750531fcfc234958a7ac"
|
|
upstream_commit: "c608ced893583e0a8a8153890f99453fd1647d53"
|
|
core_version: "0.0.2"
|
|
display_name: "Video Processor (V4L2)"
|
|
cores:
|
|
- video_processor
|
|
systems: []
|
|
|
|
notes: |
|
|
Capture core for V4L2 devices: a console plugged into a capture card is
|
|
shown through the frontend so its scalers and shaders apply to the signal.
|
|
The core opens the capture device, requests RGB24 and two mmap buffers,
|
|
and converts each dequeued frame to RGB565 for the video callback. Audio
|
|
comes from an ALSA capture PCM opened at 48 kHz, S16_LE, two channels, and
|
|
is read from the frontend audio callback. There is no emulation, no state
|
|
to serialize and no memory map.
|
|
ref: video_processor_v4l2.c:299-419, video_processor_v4l2.c:492-529,
|
|
video_processor_v4l2.c:531-544, video_processor_v4l2.c:554-698
|
|
|
|
Both devices are picked from core options built in retro_set_environment.
|
|
The video list comes from a udev enumeration of the video4linux subsystem
|
|
filtered on the /dev/video prefix, or from a fixed /dev/video0 to
|
|
/dev/video3 list when libudev is not compiled in. The audio list comes from
|
|
the ALSA PCM hints whose IOID is Input and whose name starts with hw: or
|
|
default:. These are device nodes and PCM names, not files: nothing is read
|
|
from the system directory, no path is built and no file is opened. The
|
|
content handed to retro_load_game is not looked at either: valid_extensions
|
|
is NULL, need_fullpath is false and the core never declares no-content
|
|
support, so the frontend still asks for a file whose bytes are ignored.
|
|
ref: video_processor_v4l2.c:140-205, video_processor_v4l2.c:208-242,
|
|
video_processor_v4l2.c:244-268, video_processor_v4l2.c:448-455
|
|
|
|
The frame rate is the frameperiod of the active V4L2 standard and the
|
|
pixel aspect comes from VIDIOC_CROPCAP. retro_get_region reports NTSC when
|
|
the standard carries the NTSC bit and PAL otherwise. A device that does not
|
|
enumerate its active standard makes retro_load_game fail.
|
|
ref: video_processor_v4l2.c:457-480, video_processor_v4l2.c:593-617,
|
|
video_processor_v4l2.c:728-731
|
|
|
|
Linux only, through linux/videodev2.h. libv4l2, ALSA and libudev are each
|
|
autodetected by the Makefile and dropped when their header is missing;
|
|
without libv4l2 the raw ioctl path is used and the format conversion the
|
|
library provides is lost. The GitLab CI installs the three development
|
|
packages, and the buildbot binary for linux x86_64 links libv4l2.so.0,
|
|
libasound.so.2 and libudev.so.1. RetroArch also compiles a diverged copy of
|
|
this core into its own binary under cores/libretro-video-processor when
|
|
HAVE_VIDEOPROCESSOR is set. That copy declares no-content support and adds
|
|
capture and output mode options, and opens the same device nodes only.
|
|
ref: video_processor_v4l2.c:45-57, Makefile:107-124
|
|
|
|
Written by Jared McNeill in July 2016 as libretro-v4l2. The libretro fork
|
|
carries the author's last commits, the audio batch callback and the ALSA
|
|
overrun recovery, then the 2026 CI and dependency autodetection change. The
|
|
original repository stopped at the RGB24 conversion commit.
|
|
|
|
files: []
|
|
source_ref: "video_processor_v4l2.c:27-28, .gitlab-ci.yml:19"
|