Skip to content

Patch#2304

Merged
WyattBlue merged 2 commits into
mainfrom
patch
Jun 14, 2026
Merged

Patch#2304
WyattBlue merged 2 commits into
mainfrom
patch

Conversation

@WyattBlue

Copy link
Copy Markdown
Member

No description provided.

VideoPlane.__dlpack__() only handled nv12/p010le/p016le and raised
NotImplementedError otherwise, so common CPU formats (packed RGB,
planar YUV, gray, ...) needed a NumPy intermediate to export.

Add a generic CPU path that describes the plane from its pixel-format
descriptor: single-component planes export as 2D (H, W), planes that
interleave components as 3D (H, W, C). This reproduces the existing
nv12/p010le/p016le layouts exactly. Bitstream, palette, Bayer,
big-endian 16-bit, and sub-byte packings are rejected; CUDA export is
unchanged.

Fixes #2217
VideoFrame.from_dlpack() still only accepted the 2-plane nv12 family,
so a decoded yuv420p frame could not be rebuilt from the plane tensors
the previous commit can now export.

Add a zero-copy CPU path for planar formats whose planes each hold a
single component: yuv420p/yuv422p/yuv444p, gray, gbrp, and their 16-bit
little-endian variants. Plane count, per-plane shape, and chroma
subsampling come from the pixel-format descriptor.

Continues #2217
@WyattBlue WyattBlue merged commit 107817d into main Jun 14, 2026
7 checks passed
@WyattBlue WyattBlue deleted the patch branch June 14, 2026 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant