WIP: libavfilter: vf_cuda_grid — Phase 1 MVP (fixed quad layout) #2
Reference in New Issue
Block a user
Delete Branch "n7.1-vf-cuda-grid"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Draft PR — Phase 1 implementation per gx/vf-cuda-grid#1.
Что в этом PR
libavfilter/vf_cuda_grid.c(~285 LOC) — FFmpeg video filter для GPU-native grid composition.Phase 1 deliverable (MVP — fixed quad layout):
cuMemcpy2DAsyncper Y plane + UV plane на каждый input → соответствующая quadrant'а outputff_framesync_init+EXT_STOP/EXT_INFINITY)Verify
Build clean (CUDA 12.6 + Debian 12, FFmpeg n7.1) — без warnings (-Werror). Image:
gx/ffmpeg-patchedn7.1-vf-cuda-grid branch builds.Phase 1 limitations (документировано в коде)
Build wiring
libavfilter/Makefile:OBJS-$(CONFIG_CUDA_GRID_FILTER) += vf_cuda_grid.o framesync.olibavfilter/allfilters.c:extern const AVFilter ff_vf_cuda_grid;configure:cuda_grid_filter_deps="ffnvcodec"Что не сделано в этом PR (delegated в дальнейшие phases)
cuda-grid-controllersidecar (ZMQ + MQTT + HTTP + HA Discovery)Связано
docs/design.mdlibavfilter/vf_stack_vaapi.c(multi-input grid VPP) +libavfilter/vf_overlay_cuda.c(CUDA filter framework)Acceptance (для не-draft merge)
s->hwctx->stream, no explicit sync between cuMemcpy и output frame consumer)Controller URL-encode'ит string values (text="hello world" → text=hello%20world) чтобы пройти sscanf("%s") который stops on whitespace. Filter inline decode'ит '%xx' obratno в bytes. Только для text + icon_name. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.