Skip to content

FAQ Features and Fork Differences

G.J.R. Timmer edited this page Jun 16, 2026 · 2 revisions

FAQ — Features & Fork Differences

How this fork (gjrtimmer/jetson-ffmpeg) differs from upstream jocover and Keylost, and what is on the roadmap. The full provenance is in the Fork Analysis Results.

← Back to FAQ

Why this fork

  • Widest FFmpeg matrix — 4.2 → 8.0 with an idempotent, auto-detecting patcher and committed per-version patches. See Compatibility.
  • Memory-safety and crash fixes ported and regression-guarded by a per-feature hardware test suite.
  • Tag-driven releases with prebuilt artifacts — see Release Process and releases.

Fixed in this fork

Area What changed Issue
Decoder memory safety Ported cgutman fixes: EOS deadlock, delete[] mismatch, uninitialized pointers, close-hang #2
Undefined behavior Missing return in decoder/encoder capture-loop callbacks (segfault on GCC 11+) #3
Encoder keyframe flag Honor V4L2 KeyFrame metadata — stop flagging every packet as a keyframe #4
H.265 global header GLOBAL_HEADER support + bounded SPS/PPS/VPS NAL scan (buffer-overread guard) #5
glibc ≥ 2.34 Vendored patched NvV4l2ElementPlane — fixes pthread_join segfault #6
4K I-frames Enlarge + bounds-check + make decoder CHUNK_SIZE configurable #7
Decoder crash on exit Drain and clean up queued DMA buffers in teardown #8
Decode performance setMaxPerfMode, optional DPB disable, poc-type=2 (up to ~6×) #9
Low-delay decode Blocking wait in get_frame for AV_CODEC_FLAG_LOW_DELAY #10
Configurable pools frame_pool_size / packet_pool_size / chunk_size AVOptions #11
Pixel formats YUVJ420P acceptance, NV12 I/O, P010 10-bit decode, XRGB32 converter fix, insert_vui #12
Codec flush avcodec_flush_buffers for decoder and encoder #16
RTSP / out-of-band SPS/PPS Hardened extradata priming at decoder init (zero-frames fix) #1
FFmpeg ≥ 6.1 SIGABRT Decode callback returned EAGAIN on input-feed failure #28

Roadmap / in progress

Area Goal Issue
Hardware MJPEG decode mjpeg_nvmpi via NvJPEGDecoder (phase 1) #18
Hardware MJPEG encode NvJPEGEncoder::encodeFromFd (phase 2) #19
JPEG zero-copy decode→encode DMA-fd passthrough (phase 3) #20
Zero-copy GPU pipeline dlopen, DMA-BUF/DRM_PRIME, hwcontext_nvmpi, VIC scaling, CUDA interop #21
Encoder runtime control dynamic bitrate, force-IDR, per-frame QP, lossless, ROI, CABAC/VUI/AUD #13
Modern encode API full send_frame/receive_packet with proper EOS drain #15
Encoder -level wire through to V4L2 setLevel for H.264/H.265 #14
AV1 hardware AV1 decode/encode on Orin-class modules #23
Non-blocking encode non-blocking encode mode #31
Build system CMake cflags quoting, JetPack 6 auto-detect, Yocto/sysroot cross-compile, CPack .deb, pkg-config #22
Upstreaming nvmpi codec support to FFmpeg mainline #25

See all open issues for current status.

Clone this wiki locally