switch-frame-tap
LOW
maintainer Gabantax
0 votes
scanned 2026-10-24 11:40:05.027745
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Gabantax <ve20@web.de>
2
pkgname=switch-frame-tap
3
pkgver=0.7.14
4
pkgrel=2
5
pkgdesc='PC viewer for Switch Frame Tap: watch and record your Nintendo Switch streamed over USB or network'
6
arch=('x86_64')
7
url='https://github.com/TomasUribe/switch-frame-tap'
8
license=('GPL-2.0-only')
9
depends=('ffmpeg' 'sdl2' 'libusb' 'libva' 'systemd-libs')
10
optdepends=('libva-mesa-driver: VAAPI decoding on AMD'
11
'intel-media-driver: VAAPI decoding on Intel'
12
'nvidia-utils: NVDEC decoding on NVIDIA')
13
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
14
sha256sums=('92ba8ebfd07bab4134c9b6177e6d91a65a152ba6f31bf0c93595f7a464f972fe')
15
16
prepare() {
17
# sdl2-compat: SDL_RenderGetScale() includes the logical-size scale, but
18
# SDL_RenderSetScale() sets only the renderer's own one. The viewer saves and
19
# restores the scale around its overlays each frame, so in a window bigger
20
# than the picture the scale compounds to inf and the picture goes black
21
# (upscaling off). Hand back what SDL_RenderSetScale() needs; SDL 2: no change.
22
cat > sdl2-compat-scale.h <<'EOF'
23
#include <SDL2/SDL.h>
24
static inline void sft_render_get_scale(SDL_Renderer *ren, float *scaleX, float *scaleY)
25
{
26
float sx = 1.0f, sy = 1.0f, ux = 1.0f, uy = 1.0f;
27
int lw = 0, lh = 0;
28
SDL_RenderGetScale(ren, &sx, &sy);
29
SDL_RenderGetLogicalSize(ren, &lw, &lh);
30
if (lw > 0 && lh > 0) {
31
SDL_RenderSetScale(ren, 1.0f, 1.0f);
32
SDL_RenderGetScale(ren, &ux, &uy);
33
if (ux > 0.0f) sx /= ux;
34
if (uy > 0.0f) sy /= uy;
35
SDL_RenderSetScale(ren, sx, sy);
36
}
37
if (scaleX) *scaleX = sx;
38
if (scaleY) *scaleY = sy;
39
}
40
#define SDL_RenderGetScale sft_render_get_scale
41
EOF
42
}
43
44
build() {
45
cd "$pkgname-$pkgver"
46
gcc -O2 -Wall -Wextra \
47
-include "$srcdir/sdl2-compat-scale.h" \
48
-DSFT_H264 -DSFT_MP4 -DSFT_VERSION="\"$pkgver\"" \
49
$(pkg-config --cflags sdl2 libusb-1.0 libavformat libavcodec libavutil libva) \
50
-o switch-frame-tap-viewer tools/raw-recv/raw-view.c \
51
$(pkg-config --libs sdl2 libusb-1.0 libavformat libavcodec libavutil libva libva-drm libudev) \
52
-lpthread -lm -ldl
53
}
54
55
package() {
56
cd "$pkgname-$pkgver"
57
local id=io.github.TomasUribe.SwitchFrameTap
58
59
install -Dm755 switch-frame-tap-viewer "$pkgdir/usr/bin/switch-frame-tap-viewer"
60
install -Dm644 tools/raw-recv/switch-frame-tap.svg \
61
"$pkgdir/usr/share/icons/hicolor/scalable/apps/$id.svg"
62
63
install -Dm644 "flatpak/$id.desktop" "$pkgdir/usr/share/applications/$id.desktop"
64
install -Dm644 "flatpak/$id.metainfo.xml" "$pkgdir/usr/share/metainfo/$id.metainfo.xml"
65
66
install -Dm644 tools/raw-recv/99-switch-frame-tap.rules \
67
"$pkgdir/usr/lib/udev/rules.d/70-switch-frame-tap.rules"
68
}
69
Changes since previous scan
--- PKGBUILD @ 2026-10-23 17:38+++ PKGBUILD @ 2026-10-24 11:40@@ -1,7 +1,7 @@ # Maintainer: Gabantax <ve20@web.de> pkgname=switch-frame-tap pkgver=0.7.14-pkgrel=1+pkgrel=2 pkgdesc='PC viewer for Switch Frame Tap: watch and record your Nintendo Switch streamed over USB or network' arch=('x86_64') url='https://github.com/TomasUribe/switch-frame-tap'@@ -13,9 +13,38 @@ source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz") sha256sums=('92ba8ebfd07bab4134c9b6177e6d91a65a152ba6f31bf0c93595f7a464f972fe') +prepare() {+ # sdl2-compat: SDL_RenderGetScale() includes the logical-size scale, but+ # SDL_RenderSetScale() sets only the renderer's own one. The viewer saves and+ # restores the scale around its overlays each frame, so in a window bigger+ # than the picture the scale compounds to inf and the picture goes black+ # (upscaling off). Hand back what SDL_RenderSetScale() needs; SDL 2: no change.+ cat > sdl2-compat-scale.h <<'EOF'+#include <SDL2/SDL.h>+static inline void sft_render_get_scale(SDL_Renderer *ren, float *scaleX, float *scaleY)+{+ float sx = 1.0f, sy = 1.0f, ux = 1.0f, uy = 1.0f;+ int lw = 0, lh = 0;+ SDL_RenderGetScale(ren, &sx, &sy);+ SDL_RenderGetLogicalSize(ren, &lw, &lh);+ if (lw > 0 && lh > 0) {+ SDL_RenderSetScale(ren, 1.0f, 1.0f);+ SDL_RenderGetScale(ren, &ux, &uy);+ if (ux > 0.0f) sx /= ux;+ if (uy > 0.0f) sy /= uy;+ SDL_RenderSetScale(ren, sx, sy);+ }+ if (scaleX) *scaleX = sx;+ if (scaleY) *scaleY = sy;+}+#define SDL_RenderGetScale sft_render_get_scale+EOF+}+ build() { cd "$pkgname-$pkgver" gcc -O2 -Wall -Wextra \+ -include "$srcdir/sdl2-compat-scale.h" \ -DSFT_H264 -DSFT_MP4 -DSFT_VERSION="\"$pkgver\"" \ $(pkg-config --cflags sdl2 libusb-1.0 libavformat libavcodec libavutil libva) \ -o switch-frame-tap-viewer tools/raw-recv/raw-view.c \Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-24 11:40:05 | Low | 1 |
| 2026-10-24 00:14:55 | Clean | 2 |
| 2026-10-23 19:38:15 | Low | 1 |
| 2026-10-23 17:38:05 | Low | 1 |