Hi, this series adds the pieces needed to turn GoPro Max 1/2 .360 dual-EAC video into equirectangular frames and write JPEG with per-frame APP sidecars. Stock FFmpeg cannot stitch those files.
The filters are derived from gopromax_opencl (Max 1) by Ronan LE MEILLAT and TADANO Tokumei (gmat). Max 2 keeps that copyright and adds a CPU path plus CUDA/OpenCL variants. Geometry is EAC side/center/side with a linear overlap on the side faces; yaw rotates the equirect. I am sending the independent parts first: 1/6 avcodec/bsf: jpegapp (inject JPEG APP segments from a sidecar) 2/6 avcodec/mjpeg: accept packed RGB and convert to YUV 3/6 avcodec: mjpeg_nvjpeg (nvJPEG, dlopen 13 then 12 then unversioned) 4/6 avfilter: yuvrgb_cuda 5/6 avfilter: gopromax2 (CPU, Max 2) 6/6 avfilter: gopromax_opencl (Max 1) Follow-ups after review: gopromax2_opencl, gopromax2_cuda (same geometry as 5/6, ffnvcodec + cuda-nvcc or cuda-llvm). Not in this series: local docs, Mapillary log flushing, clang libdevice math stubs. I reviewed the series and am the contact on the list. I did not write the implementation myself; each patch has Co-authored-by: Cursor <[email protected]> and my Signed-off-by. Please CC me; I am subscribed. Thanks, Reinhard Co-authored-by: Cursor <[email protected]> Signed-off-by: Reinhard Nißl <[email protected]> Reinhard Nißl (6): avcodec/bsf: add jpegapp to inject JPEG APP segments avcodec/mjpegenc: encode packed RGB via YUV conversion avcodec: add mjpeg_nvjpeg NVIDIA JPEG encoder avfilter: add yuvrgb_cuda avfilter: add gopromax2 GoPro Max 2 EAC stitch avfilter: add gopromax_opencl GoPro Max 1 stitch Changelog | 6 + configure | 5 + doc/bitstream_filters.texi | 33 ++ doc/encoders.texi | 47 +++ doc/filters.texi | 71 ++++ libavcodec/Makefile | 1 + libavcodec/allcodecs.c | 1 + libavcodec/bitstream_filters.c | 1 + libavcodec/bsf/Makefile | 1 + libavcodec/bsf/jpegapp.c | 269 ++++++++++++++ libavcodec/mjpegenc.c | 214 ++++++++++- libavcodec/nvjpegenc.c | 584 +++++++++++++++++++++++++++++++ libavcodec/nvjpegenc.cu | 61 ++++ libavfilter/Makefile | 5 + libavfilter/allfilters.c | 3 + libavfilter/opencl/gopromax.cl | 288 +++++++++++++++ libavfilter/opencl_source.h | 1 + libavfilter/vf_gopromax2.c | 482 +++++++++++++++++++++++++ libavfilter/vf_gopromax_opencl.c | 370 ++++++++++++++++++++ libavfilter/vf_yuvrgb_cuda.c | 383 ++++++++++++++++++++ libavfilter/vf_yuvrgb_cuda.cu | 136 +++++++ 21 files changed, 2960 insertions(+), 2 deletions(-) create mode 100644 libavcodec/bsf/jpegapp.c create mode 100644 libavcodec/nvjpegenc.c create mode 100644 libavcodec/nvjpegenc.cu create mode 100644 libavfilter/opencl/gopromax.cl create mode 100644 libavfilter/vf_gopromax2.c create mode 100644 libavfilter/vf_gopromax_opencl.c create mode 100644 libavfilter/vf_yuvrgb_cuda.c create mode 100644 libavfilter/vf_yuvrgb_cuda.cu -- 2.43.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
