Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id E100A84E7E for ; Fri, 2 Jun 2023 16:44:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([IPv6:::1]) by localhost (mail.netbsd.org [IPv6:::1]) (amavisd-new, port 10025) with ESMTP id wzmx7fulERpL for ; Fri, 2 Jun 2023 16:44:08 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.netbsd.org [199.233.217.197]) by mail.netbsd.org (Postfix) with ESMTP id E639B84D39 for ; Fri, 2 Jun 2023 16:44:07 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 1E97FFA88; Fri, 2 Jun 2023 16:44:07 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1685724247199780" MIME-Version: 1.0 Date: Fri, 2 Jun 2023 16:44:07 +0000 From: "Thomas Klausner" Subject: CVS commit: pkgsrc/multimedia/ffmpeg6 To: pkgsrc-changes@NetBSD.org Approved: commit_and_comment Reply-To: wiz@netbsd.org X-Mailer: log_accum Message-Id: <20230602164407.1E97FFA88@cvs.NetBSD.org> This is a multi-part message in MIME format. --_----------=_1685724247199780 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: wiz Date: Fri Jun 2 16:44:07 UTC 2023 Added Files: pkgsrc/multimedia/ffmpeg6: ALTERNATIVES DESCR Makefile Makefile.common PLIST buildlink3.mk distinfo options.mk pkgsrc/multimedia/ffmpeg6/patches: patch-Makefile patch-configure patch-doc_Makefile patch-doc_general__contents.texi patch-doc_indevs.texi patch-doc_outdevs.texi patch-libavdevice_Makefile patch-libavdevice_alldevices.c patch-libavdevice_sunau.c patch-libavdevice_sunau.h patch-libavdevice_sunau__dec.c patch-libavdevice_sunau__enc.c patch-libavutil_macros.h patch-libavutil_x86_asm.h patch-libavutil_x86_cpu.c Log Message: multimedia/ffmpeg6: import ffmpeg6-6.0 FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library. This package contains major version 6. Changes compared to 5: A new major release, FFmpeg 6.0 "Von Neumann", is now available for download. This release has many new encoders and decoders, filters, ffmpeg CLI tool improvements, and also, changes the way releases are done. All major releases will now bump the version of the ABI. We plan to have a new major release each year. Another release-specific change is that deprecated APIs will be removed after 3 releases, upon the next major bump. This means that releases will be done more often and will be more organized. New decoders featured are Bonk, RKA, Radiance, SC-4, APAC, VQC, WavArc and a few ADPCM formats. QSV and NVenc now support AV1 encoding. The FFmpeg CLI (we usually reffer to it as ffmpeg.c to avoid confusion) has speed-up improvements due to threading, as well as statistics options, and the ability to pass option values for filters from a file. There are quite a few new audio and video filters, such as adrc, showcwt, backgroundkey and ssim360, with a few hardware ones too. Finally, the release features many behind-the-scenes changes, including a new FFT and MDCT implementation used in codecs (expect a blog post about this soon), numerous bugfixes, better ICC profile handling and colorspace signalling improvement, introduction of a number of RISC-V vector and scalar assembly optimized routines, and a few new improved APIs, which can be viewed in the doc/APIchanges file in our tree. A few submitted features, such as the Vulkan improvements and more FFT optimizations will be in the next minor release, 6.1, which we plan to release soon, in line with our new release schedule. Some highlights are: Radiance HDR image support ddagrab (Desktop Duplication) video capture filter ffmpeg -shortest_buf_duration option ffmpeg now requires threading to be built ffmpeg now runs every muxer in a separate thread Add new mode to cropdetect filter to detect crop-area based on motion vectors and edges VAAPI decoding and encoding for 10/12bit 422, 10/12bit 444 HEVC and VP9 WBMP (Wireless Application Protocol Bitmap) image format a3dscope filter bonk decoder and demuxer Micronas SC-4 audio decoder LAF demuxer APAC decoder and demuxer Media 100i decoders DTS to PTS reorder bsf ViewQuest VQC decoder backgroundkey filter nvenc AV1 encoding support MediaCodec decoder via NDKMediaCodec MediaCodec encoder oneVPL support for QSV QSV AV1 encoder QSV decoding and encoding for 10/12bit 422, 10/12bit 444 HEVC and VP9 showcwt multimedia filter corr video filter adrc audio filter afdelaysrc audio filter WADY DPCM decoder and demuxer CBD2 DPCM decoder ssim360 video filter ffmpeg CLI new options: -stats_enc_pre[_fmt], -stats_enc_post[_fmt], -stats_mux_pre[_fmt] hstack_vaapi, vstack_vaapi and xstack_vaapi filters XMD ADPCM decoder and demuxer media100 to mjpegb bsf ffmpeg CLI new option: -fix_sub_duration_heartbeat WavArc decoder and demuxer CrystalHD decoders deprecated SDNS demuxer RKA decoder and demuxer filtergraph syntax in ffmpeg CLI now supports passing file contents as option values hstack_qsv, vstack_qsv and xstack_qsv filters To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 pkgsrc/multimedia/ffmpeg6/ALTERNATIVES \ pkgsrc/multimedia/ffmpeg6/DESCR pkgsrc/multimedia/ffmpeg6/Makefile \ pkgsrc/multimedia/ffmpeg6/Makefile.common pkgsrc/multimedia/ffmpeg6/PLIST \ pkgsrc/multimedia/ffmpeg6/buildlink3.mk \ pkgsrc/multimedia/ffmpeg6/distinfo pkgsrc/multimedia/ffmpeg6/options.mk cvs rdiff -u -r0 -r1.1 pkgsrc/multimedia/ffmpeg6/patches/patch-Makefile \ pkgsrc/multimedia/ffmpeg6/patches/patch-configure \ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_Makefile \ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_general__contents.texi \ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_indevs.texi \ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_outdevs.texi \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_Makefile \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_alldevices.c \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.c \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.h \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__dec.c \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__enc.c \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_macros.h \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_asm.h \ pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_cpu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1685724247199780 Content-Disposition: inline Content-Length: 56390 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Added files: Index: pkgsrc/multimedia/ffmpeg6/ALTERNATIVES diff -u /dev/null pkgsrc/multimedia/ffmpeg6/ALTERNATIVES:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/ALTERNATIVES Fri Jun 2 16:44:06 2023 @@ -0,0 +1,2 @@ +bin/ffmpeg @PREFIX@/bin/ffmpeg6 +bin/ffprobe @PREFIX@/bin/ffprobe6 Index: pkgsrc/multimedia/ffmpeg6/DESCR diff -u /dev/null pkgsrc/multimedia/ffmpeg6/DESCR:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/DESCR Fri Jun 2 16:44:06 2023 @@ -0,0 +1,5 @@ +FFmpeg is a complete, cross-platform solution to record, convert +and stream audio and video. It includes libavcodec - the leading +audio/video codec library. + +This package contains major version 6. Index: pkgsrc/multimedia/ffmpeg6/Makefile diff -u /dev/null pkgsrc/multimedia/ffmpeg6/Makefile:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/Makefile Fri Jun 2 16:44:06 2023 @@ -0,0 +1,45 @@ +# $NetBSD: Makefile,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +PKGNAME= ${DISTNAME:S/ffmpeg/ffmpeg6/} +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= https://ffmpeg.org/ +COMMENT= Decoding, encoding and streaming software (v6.x) + +CONFIGURE_ARGS+= --enable-avfilter +CONFIGURE_ARGS+= --enable-postproc +CONFIGURE_ARGS+= --enable-rpath +CONFIGURE_ARGS+= --disable-ffplay + +INSTALLATION_DIRS= lib/ffmpeg6 share/doc/ffmpeg6 + +.include "../../mk/bsd.prefs.mk" + +.if ${USE_CROSS_COMPILE:U:tl} == yes +CONFIGURE_ARGS+= --enable-cross-compile +CONFIGURE_ARGS+= --host-cc=${NATIVE_CC:Q} +CONFIGURE_ARGS+= --host-ld=${NATIVE_CC:Q} +CONFIGURE_ARGS+= --target-os=${LOWER_OPSYS} +.endif + +PRINT_PLIST_AWK+= /html/ { $$0 = "$${PLIST.doc}" $$0 } +PRINT_PLIST_AWK+= /css/ { $$0 = "$${PLIST.doc}" $$0 } + +TEST_TARGET= check + +post-install: + ${INSTALL_DATA} ${WRKSRC}/doc/*.txt \ + ${DESTDIR}${PREFIX}/share/doc/ffmpeg6 + +.include "options.mk" + +# disable asm on i386 to avoid text relocations +.if ${MACHINE_ARCH} == "i386" +CONFIGURE_ARGS+= --disable-asm +.endif + +# configure script uses uname -m to detect arch, as opposed to uname -p in +# GNU/configure. Unable to detect NetBSD/macppc hosts correctly. +CONFIGURE_ARGS+= --arch=${MACHINE_ARCH} + +.include "../../multimedia/ffmpeg6/Makefile.common" +.include "../../mk/bsd.pkg.mk" Index: pkgsrc/multimedia/ffmpeg6/Makefile.common diff -u /dev/null pkgsrc/multimedia/ffmpeg6/Makefile.common:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/Makefile.common Fri Jun 2 16:44:06 2023 @@ -0,0 +1,84 @@ +# $NetBSD: Makefile.common,v 1.1 2023/06/02 16:44:06 wiz Exp $ +# used by multimedia/ffmpeg6/Makefile +# used by multimedia/ffplay6/Makefile + +DISTNAME= ffmpeg-6.0 +CATEGORIES= multimedia +MASTER_SITES= http://www.ffmpeg.org/releases/ +EXTRACT_SUFX= .tar.xz + +LICENSE= gnu-lgpl-v2.1 AND gnu-gpl-v2 ${ADDITIONAL_LICENSE} + +PATCHDIR= ${.CURDIR}/../../multimedia/ffmpeg6/patches + +USE_LIBTOOL= yes +USE_TOOLS+= gmake pod2man perl pkg-config +HAS_CONFIGURE= yes +CONFIGURE_ARGS+= --cc=${CC:Q} +CONFIGURE_ARGS+= --disable-debug +CONFIGURE_ARGS+= --disable-optimizations +CONFIGURE_ARGS+= --disable-stripping +CONFIGURE_ARGS+= --enable-gpl +CONFIGURE_ARGS+= --enable-libxml2 +CONFIGURE_ARGS+= --enable-pthreads +CONFIGURE_ARGS+= --enable-shared +CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} +CONFIGURE_ARGS+= --prefix=${PREFIX} +CONFIGURE_ARGS+= --progs-suffix=6 + +CONFIGURE_ARGS+= --enable-runtime-cpudetect +CONFIGURE_ARGS+= --datadir=${PREFIX}/share/ffmpeg6 +CONFIGURE_ARGS+= --docdir=${PREFIX}/share/doc/ffmpeg6 +CONFIGURE_ARGS+= --incdir=${PREFIX}/include/ffmpeg6 +CONFIGURE_ARGS+= --libdir=${PREFIX}/lib/ffmpeg6 +CONFIGURE_ARGS+= --shlibdir=${PREFIX}/lib/ffmpeg6 +LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/ffmpeg6 + +.if !empty(MACHINE_PLATFORM:MDarwin-1[2-9].*-*) || !empty(MACHINE_PLATFORM:MDarwin-2*) +CONFIGURE_ARGS+= --enable-opencl +.endif + +.if ${OPSYS} == "SunOS" +USE_TOOLS+= bash:build +CONFIG_SHELL= ${TOOLS_PATH.bash} +.endif + +# Let's not put garbage into /tmp +CONFIGURE_ENV+= TMPDIR=${WRKSRC}/tmp + +.include "../../mk/compiler.mk" + +.if !empty(PKGSRC_COMPILER:Msunpro) +SUBST_CLASSES+= sunwspro +SUBST_MESSAGE.sunwspro= Fixing compiler options for SunStudio C compiler. +SUBST_STAGE.sunwspro= post-configure +SUBST_FILES.sunwspro= config.mak +SUBST_SED.sunwspro= -e "s/-O /-KPIC -DPIC /" +SUBST_SED.sunwspro+= -e "s/-O3/-xO2/g" +SUBST_SED.sunwspro+= -e "s/-std=c99/-xc99=all/" +SUBST_SED.sunwspro+= -e "s/-Wl,-rpath-link,/-L /g" +.endif + +.if ${MACHINE_ARCH} == x86_64 || ${MACHINE_ARCH} == i386 +BUILD_DEPENDS+= nasm>=2.13:../../devel/nasm +.endif + +REPLACE_PERL+= doc/texi2pod.pl +REPLACE_SH+= configure +REPLACE_SH+= ffbuild/pkgconfig_generate.sh +REPLACE_SH+= ffbuild/version.sh + +PLIST_SRC+= ${PKGDIR}/PLIST + +MAKE_ENV+= EXTRA_LIBS=${LIBGETOPT:Q} + +pre-configure: + ${MKDIR} ${WRKSRC}/tmp + +.include "../../archivers/bzip2/buildlink3.mk" +.include "../../archivers/xz/buildlink3.mk" +.include "../../devel/libgetopt/buildlink3.mk" +.include "../../devel/zlib/buildlink3.mk" +.include "../../textproc/libxml2/buildlink3.mk" +.include "../../mk/atomic64.mk" +.include "../../mk/pthread.buildlink3.mk" Index: pkgsrc/multimedia/ffmpeg6/PLIST diff -u /dev/null pkgsrc/multimedia/ffmpeg6/PLIST:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/PLIST Fri Jun 2 16:44:06 2023 @@ -0,0 +1,280 @@ +@comment $NetBSD: PLIST,v 1.1 2023/06/02 16:44:06 wiz Exp $ +bin/ffmpeg6 +bin/ffprobe6 +include/ffmpeg6/libavcodec/ac3_parser.h +include/ffmpeg6/libavcodec/adts_parser.h +include/ffmpeg6/libavcodec/avcodec.h +include/ffmpeg6/libavcodec/avdct.h +include/ffmpeg6/libavcodec/avfft.h +include/ffmpeg6/libavcodec/bsf.h +include/ffmpeg6/libavcodec/codec.h +include/ffmpeg6/libavcodec/codec_desc.h +include/ffmpeg6/libavcodec/codec_id.h +include/ffmpeg6/libavcodec/codec_par.h +include/ffmpeg6/libavcodec/d3d11va.h +include/ffmpeg6/libavcodec/defs.h +include/ffmpeg6/libavcodec/dirac.h +include/ffmpeg6/libavcodec/dv_profile.h +include/ffmpeg6/libavcodec/dxva2.h +include/ffmpeg6/libavcodec/jni.h +include/ffmpeg6/libavcodec/mediacodec.h +include/ffmpeg6/libavcodec/packet.h +include/ffmpeg6/libavcodec/qsv.h +include/ffmpeg6/libavcodec/vdpau.h +include/ffmpeg6/libavcodec/version.h +include/ffmpeg6/libavcodec/version_major.h +include/ffmpeg6/libavcodec/videotoolbox.h +include/ffmpeg6/libavcodec/vorbis_parser.h +include/ffmpeg6/libavcodec/xvmc.h +include/ffmpeg6/libavdevice/avdevice.h +include/ffmpeg6/libavdevice/version.h +include/ffmpeg6/libavdevice/version_major.h +include/ffmpeg6/libavfilter/avfilter.h +include/ffmpeg6/libavfilter/buffersink.h +include/ffmpeg6/libavfilter/buffersrc.h +include/ffmpeg6/libavfilter/version.h +include/ffmpeg6/libavfilter/version_major.h +include/ffmpeg6/libavformat/avformat.h +include/ffmpeg6/libavformat/avio.h +include/ffmpeg6/libavformat/version.h +include/ffmpeg6/libavformat/version_major.h +include/ffmpeg6/libavutil/adler32.h +include/ffmpeg6/libavutil/aes.h +include/ffmpeg6/libavutil/aes_ctr.h +include/ffmpeg6/libavutil/ambient_viewing_environment.h +include/ffmpeg6/libavutil/attributes.h +include/ffmpeg6/libavutil/audio_fifo.h +include/ffmpeg6/libavutil/avassert.h +include/ffmpeg6/libavutil/avconfig.h +include/ffmpeg6/libavutil/avstring.h +include/ffmpeg6/libavutil/avutil.h +include/ffmpeg6/libavutil/base64.h +include/ffmpeg6/libavutil/blowfish.h +include/ffmpeg6/libavutil/bprint.h +include/ffmpeg6/libavutil/bswap.h +include/ffmpeg6/libavutil/buffer.h +include/ffmpeg6/libavutil/camellia.h +include/ffmpeg6/libavutil/cast5.h +include/ffmpeg6/libavutil/channel_layout.h +include/ffmpeg6/libavutil/common.h +include/ffmpeg6/libavutil/cpu.h +include/ffmpeg6/libavutil/crc.h +include/ffmpeg6/libavutil/csp.h +include/ffmpeg6/libavutil/des.h +include/ffmpeg6/libavutil/detection_bbox.h +include/ffmpeg6/libavutil/dict.h +include/ffmpeg6/libavutil/display.h +include/ffmpeg6/libavutil/dovi_meta.h +include/ffmpeg6/libavutil/downmix_info.h +include/ffmpeg6/libavutil/encryption_info.h +include/ffmpeg6/libavutil/error.h +include/ffmpeg6/libavutil/eval.h +include/ffmpeg6/libavutil/ffversion.h +include/ffmpeg6/libavutil/fifo.h +include/ffmpeg6/libavutil/file.h +include/ffmpeg6/libavutil/film_grain_params.h +include/ffmpeg6/libavutil/frame.h +include/ffmpeg6/libavutil/hash.h +include/ffmpeg6/libavutil/hdr_dynamic_metadata.h +include/ffmpeg6/libavutil/hdr_dynamic_vivid_metadata.h +include/ffmpeg6/libavutil/hmac.h +include/ffmpeg6/libavutil/hwcontext.h +include/ffmpeg6/libavutil/hwcontext_cuda.h +include/ffmpeg6/libavutil/hwcontext_d3d11va.h +include/ffmpeg6/libavutil/hwcontext_drm.h +include/ffmpeg6/libavutil/hwcontext_dxva2.h +include/ffmpeg6/libavutil/hwcontext_mediacodec.h +include/ffmpeg6/libavutil/hwcontext_opencl.h +include/ffmpeg6/libavutil/hwcontext_qsv.h +include/ffmpeg6/libavutil/hwcontext_vaapi.h +include/ffmpeg6/libavutil/hwcontext_vdpau.h +include/ffmpeg6/libavutil/hwcontext_videotoolbox.h +include/ffmpeg6/libavutil/hwcontext_vulkan.h +include/ffmpeg6/libavutil/imgutils.h +include/ffmpeg6/libavutil/intfloat.h +include/ffmpeg6/libavutil/intreadwrite.h +include/ffmpeg6/libavutil/lfg.h +include/ffmpeg6/libavutil/log.h +include/ffmpeg6/libavutil/lzo.h +include/ffmpeg6/libavutil/macros.h +include/ffmpeg6/libavutil/mastering_display_metadata.h +include/ffmpeg6/libavutil/mathematics.h +include/ffmpeg6/libavutil/md5.h +include/ffmpeg6/libavutil/mem.h +include/ffmpeg6/libavutil/motion_vector.h +include/ffmpeg6/libavutil/murmur3.h +include/ffmpeg6/libavutil/opt.h +include/ffmpeg6/libavutil/parseutils.h +include/ffmpeg6/libavutil/pixdesc.h +include/ffmpeg6/libavutil/pixelutils.h +include/ffmpeg6/libavutil/pixfmt.h +include/ffmpeg6/libavutil/random_seed.h +include/ffmpeg6/libavutil/rational.h +include/ffmpeg6/libavutil/rc4.h +include/ffmpeg6/libavutil/replaygain.h +include/ffmpeg6/libavutil/ripemd.h +include/ffmpeg6/libavutil/samplefmt.h +include/ffmpeg6/libavutil/sha.h +include/ffmpeg6/libavutil/sha512.h +include/ffmpeg6/libavutil/spherical.h +include/ffmpeg6/libavutil/stereo3d.h +include/ffmpeg6/libavutil/tea.h +include/ffmpeg6/libavutil/threadmessage.h +include/ffmpeg6/libavutil/time.h +include/ffmpeg6/libavutil/timecode.h +include/ffmpeg6/libavutil/timestamp.h +include/ffmpeg6/libavutil/tree.h +include/ffmpeg6/libavutil/twofish.h +include/ffmpeg6/libavutil/tx.h +include/ffmpeg6/libavutil/uuid.h +include/ffmpeg6/libavutil/version.h +include/ffmpeg6/libavutil/video_enc_params.h +include/ffmpeg6/libavutil/xtea.h +include/ffmpeg6/libpostproc/postprocess.h +include/ffmpeg6/libpostproc/version.h +include/ffmpeg6/libpostproc/version_major.h +include/ffmpeg6/libswresample/swresample.h +include/ffmpeg6/libswresample/version.h +include/ffmpeg6/libswresample/version_major.h +include/ffmpeg6/libswscale/swscale.h +include/ffmpeg6/libswscale/version.h +include/ffmpeg6/libswscale/version_major.h +lib/ffmpeg6/libavcodec.a +lib/ffmpeg6/libavcodec.so +lib/ffmpeg6/libavcodec.so.60 +lib/ffmpeg6/libavcodec.so.60.3.100 +lib/ffmpeg6/libavdevice.a +lib/ffmpeg6/libavdevice.so +lib/ffmpeg6/libavdevice.so.60 +lib/ffmpeg6/libavdevice.so.60.1.100 +lib/ffmpeg6/libavfilter.a +lib/ffmpeg6/libavfilter.so +lib/ffmpeg6/libavfilter.so.9 +lib/ffmpeg6/libavfilter.so.9.3.100 +lib/ffmpeg6/libavformat.a +lib/ffmpeg6/libavformat.so +lib/ffmpeg6/libavformat.so.60 +lib/ffmpeg6/libavformat.so.60.3.100 +lib/ffmpeg6/libavutil.a +lib/ffmpeg6/libavutil.so +lib/ffmpeg6/libavutil.so.58 +lib/ffmpeg6/libavutil.so.58.2.100 +lib/ffmpeg6/libpostproc.a +lib/ffmpeg6/libpostproc.so +lib/ffmpeg6/libpostproc.so.57 +lib/ffmpeg6/libpostproc.so.57.1.100 +lib/ffmpeg6/libswresample.a +lib/ffmpeg6/libswresample.so +lib/ffmpeg6/libswresample.so.4 +lib/ffmpeg6/libswresample.so.4.10.100 +lib/ffmpeg6/libswscale.a +lib/ffmpeg6/libswscale.so +lib/ffmpeg6/libswscale.so.7 +lib/ffmpeg6/libswscale.so.7.1.100 +lib/ffmpeg6/pkgconfig/libavcodec.pc +lib/ffmpeg6/pkgconfig/libavdevice.pc +lib/ffmpeg6/pkgconfig/libavfilter.pc +lib/ffmpeg6/pkgconfig/libavformat.pc +lib/ffmpeg6/pkgconfig/libavutil.pc +lib/ffmpeg6/pkgconfig/libpostproc.pc +lib/ffmpeg6/pkgconfig/libswresample.pc +lib/ffmpeg6/pkgconfig/libswscale.pc +man/man1/ffmpeg-all6.1 +man/man1/ffmpeg-bitstream-filters6.1 +man/man1/ffmpeg-codecs6.1 +man/man1/ffmpeg-devices6.1 +man/man1/ffmpeg-filters6.1 +man/man1/ffmpeg-formats6.1 +man/man1/ffmpeg-protocols6.1 +man/man1/ffmpeg-resampler6.1 +man/man1/ffmpeg-scaler6.1 +man/man1/ffmpeg-utils6.1 +man/man1/ffmpeg6.1 +man/man1/ffprobe-all6.1 +man/man1/ffprobe6.1 +man/man3/libavcodec6.3 +man/man3/libavdevice6.3 +man/man3/libavfilter6.3 +man/man3/libavformat6.3 +man/man3/libavutil6.3 +man/man3/libswresample6.3 +man/man3/libswscale6.3 +${PLIST.doc}share/doc/ffmpeg6/bootstrap.min.css +share/doc/ffmpeg6/build_system.txt +${PLIST.doc}share/doc/ffmpeg6/default.css +${PLIST.doc}share/doc/ffmpeg6/developer.html +share/doc/ffmpeg6/errno.txt +${PLIST.doc}share/doc/ffmpeg6/faq.html +${PLIST.doc}share/doc/ffmpeg6/fate.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-all.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-bitstream-filters.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-codecs.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-devices.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-filters.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-formats.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-protocols.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-resampler.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-scaler.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg-utils.html +${PLIST.doc}share/doc/ffmpeg6/ffmpeg.html +share/doc/ffmpeg6/ffmpeg.txt +${PLIST.doc}share/doc/ffmpeg6/ffprobe-all.html +${PLIST.doc}share/doc/ffmpeg6/ffprobe.html +share/doc/ffmpeg6/filter_design.txt +${PLIST.doc}share/doc/ffmpeg6/general.html +${PLIST.doc}share/doc/ffmpeg6/git-howto.html +share/doc/ffmpeg6/issue_tracker.txt +share/doc/ffmpeg6/libav-merge.txt +${PLIST.doc}share/doc/ffmpeg6/libavcodec.html +${PLIST.doc}share/doc/ffmpeg6/libavdevice.html +${PLIST.doc}share/doc/ffmpeg6/libavfilter.html +${PLIST.doc}share/doc/ffmpeg6/libavformat.html +${PLIST.doc}share/doc/ffmpeg6/libavutil.html +${PLIST.doc}share/doc/ffmpeg6/libswresample.html +${PLIST.doc}share/doc/ffmpeg6/libswscale.html +${PLIST.doc}share/doc/ffmpeg6/mailing-list-faq.html +share/doc/ffmpeg6/mips.txt +share/doc/ffmpeg6/multithreading.txt +${PLIST.doc}share/doc/ffmpeg6/nut.html +share/doc/ffmpeg6/optimization.txt +${PLIST.doc}share/doc/ffmpeg6/platform.html +share/doc/ffmpeg6/rate_distortion.txt +share/doc/ffmpeg6/snow.txt +${PLIST.doc}share/doc/ffmpeg6/style.min.css +share/doc/ffmpeg6/swresample.txt +share/doc/ffmpeg6/swscale.txt +share/doc/ffmpeg6/tablegen.txt +share/doc/ffmpeg6/undefined.txt +share/doc/ffmpeg6/writing_filters.txt +share/ffmpeg6/examples/Makefile +share/ffmpeg6/examples/README +share/ffmpeg6/examples/avio_http_serve_files.c +share/ffmpeg6/examples/avio_list_dir.c +share/ffmpeg6/examples/avio_read_callback.c +share/ffmpeg6/examples/decode_audio.c +share/ffmpeg6/examples/decode_filter_audio.c +share/ffmpeg6/examples/decode_filter_video.c +share/ffmpeg6/examples/decode_video.c +share/ffmpeg6/examples/demux_decode.c +share/ffmpeg6/examples/encode_audio.c +share/ffmpeg6/examples/encode_video.c +share/ffmpeg6/examples/extract_mvs.c +share/ffmpeg6/examples/filter_audio.c +share/ffmpeg6/examples/hw_decode.c +share/ffmpeg6/examples/mux.c +share/ffmpeg6/examples/qsv_decode.c +share/ffmpeg6/examples/qsv_transcode.c +share/ffmpeg6/examples/remux.c +share/ffmpeg6/examples/resample_audio.c +share/ffmpeg6/examples/scale_video.c +share/ffmpeg6/examples/show_metadata.c +share/ffmpeg6/examples/transcode.c +share/ffmpeg6/examples/transcode_aac.c +share/ffmpeg6/examples/vaapi_encode.c +share/ffmpeg6/examples/vaapi_transcode.c +share/ffmpeg6/ffprobe.xsd +share/ffmpeg6/libvpx-1080p.ffpreset +share/ffmpeg6/libvpx-1080p50_60.ffpreset +share/ffmpeg6/libvpx-360p.ffpreset +share/ffmpeg6/libvpx-720p.ffpreset +share/ffmpeg6/libvpx-720p50_60.ffpreset Index: pkgsrc/multimedia/ffmpeg6/buildlink3.mk diff -u /dev/null pkgsrc/multimedia/ffmpeg6/buildlink3.mk:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/buildlink3.mk Fri Jun 2 16:44:06 2023 @@ -0,0 +1,62 @@ +# $NetBSD: buildlink3.mk,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +BUILDLINK_TREE+= ffmpeg6 + +.if !defined(FFMPEG6_BUILDLINK3_MK) +FFMPEG6_BUILDLINK3_MK:= + +BUILDLINK_API_DEPENDS.ffmpeg6+= ffmpeg6>=6.0 +BUILDLINK_PKGSRCDIR.ffmpeg6?= ../../multimedia/ffmpeg6 + +pkgbase := ffmpeg6 +.include "../../mk/pkg-build-options.mk" + +.include "../../mk/bsd.fast.prefs.mk" + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mav1} +. include "../../multimedia/libaom/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mfreetype} +. include "../../graphics/freetype2/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mfontconfig} +. include "../../fonts/fontconfig/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mtheora} +. include "../../multimedia/libtheora/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mxvid} +. include "../../multimedia/xvidcore/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mx264} +. include "../../multimedia/x264/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mlibvpx} +. include "../../multimedia/libvpx/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mvaapi} +. include "../../multimedia/libva/buildlink3.mk" +.endif + +.if ${PKG_BUILD_OPTIONS.ffmpeg6:Mvdpau} +. include "../../multimedia/libvdpau/buildlink3.mk" +.endif + +BUILDLINK_INCDIRS.ffmpeg6+= include/ffmpeg6 +BUILDLINK_LIBDIRS.ffmpeg6+= lib/ffmpeg6 +BUILDLINK_FNAME_TRANSFORM.ffmpeg6+= -e 's|lib/ffmpeg6/pkgconfig/|lib/pkgconfig/|' + +.include "../../archivers/bzip2/buildlink3.mk" +.include "../../archivers/xz/buildlink3.mk" +.include "../../devel/libgetopt/buildlink3.mk" +.include "../../devel/zlib/buildlink3.mk" +.endif # FFMPEG6_BUILDLINK3_MK + +BUILDLINK_TREE+= -ffmpeg6 Index: pkgsrc/multimedia/ffmpeg6/distinfo diff -u /dev/null pkgsrc/multimedia/ffmpeg6/distinfo:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/distinfo Fri Jun 2 16:44:06 2023 @@ -0,0 +1,20 @@ +$NetBSD: distinfo,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +BLAKE2s (ffmpeg-6.0.tar.xz) = ce6f75464ac37374825b33d7b32b22f7e9dcea51026cc885cd6668fbada65c08 +SHA512 (ffmpeg-6.0.tar.xz) = 4d0e8f635d5a1633710f30cb3e0a854b6ca3bf85e33a289d1ec7aca2ad55dc4910010bc9cf3f13eee9f6decb9d50a0df6d7aa5a342f308c3868d2730f3a6b980 +Size (ffmpeg-6.0.tar.xz) = 10234012 bytes +SHA1 (patch-Makefile) = 2d27f218ee49179fdea14bb5c86c506dfb64dbd6 +SHA1 (patch-configure) = 59195d37ae1a70b2eb4b6576e1680e0916e1e99f +SHA1 (patch-doc_Makefile) = c513af183e374bff4fa5945d374ddae472d51bad +SHA1 (patch-doc_general__contents.texi) = 13704795d2688dc0377a512dc6e65025ad674724 +SHA1 (patch-doc_indevs.texi) = 8cd421a67f34ebbe6099102bf1de7c6cdb13dcb7 +SHA1 (patch-doc_outdevs.texi) = 0aec04682b516016abe9b81f6efcbbef97b1c3b2 +SHA1 (patch-libavdevice_Makefile) = 526efd20021068245d8904c0d55508a540ae4054 +SHA1 (patch-libavdevice_alldevices.c) = a9e2a2027fb2c18d5509b68deb5fd8523305dfc7 +SHA1 (patch-libavdevice_sunau.c) = 554a5fc77c0e94828e9eadc7f1f9d4067a76d4ae +SHA1 (patch-libavdevice_sunau.h) = 2678d87f81e7b3faa42b5cc9814e373c4ad812f6 +SHA1 (patch-libavdevice_sunau__dec.c) = d2fc01e941c68ab8b6f5e0b98ee536a32cc56bdc +SHA1 (patch-libavdevice_sunau__enc.c) = efe765b99ad6379d0237c619ac0dce41306431be +SHA1 (patch-libavutil_macros.h) = 7d9770f018a2207d2dcb1fe057564e30be51fd42 +SHA1 (patch-libavutil_x86_asm.h) = 8f48f9e8ec08b5176bb40fc0021f3bb913dbef22 +SHA1 (patch-libavutil_x86_cpu.c) = 9c97e68fde0fcb19741e034a803d509040ea4487 Index: pkgsrc/multimedia/ffmpeg6/options.mk diff -u /dev/null pkgsrc/multimedia/ffmpeg6/options.mk:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/options.mk Fri Jun 2 16:44:06 2023 @@ -0,0 +1,286 @@ +# $NetBSD: options.mk,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.ffmpeg6 +PKG_OPTIONS_OPTIONAL_GROUPS= ssl +PKG_OPTIONS_GROUP.ssl= gnutls mbedtls openssl + +PKG_SUPPORTED_OPTIONS= ass aom bluray doc fdk-aac fontconfig freetype jack \ + lame libvpx libwebp opencore-amr opus pulseaudio rav1e rpi rtmp \ + speex tesseract theora vorbis x11 x264 x265 xvid +PKG_SUGGESTED_OPTIONS= ass aom bluray freetype fontconfig gnutls lame \ + libvpx libwebp opus speex theora vorbis x11 x264 x265 xvid + +PLIST_VARS+= doc + +# Add VDPAU if it is available +.include "../../multimedia/libvdpau/available.mk" +.if ${VDPAU_AVAILABLE} == "yes" +PKG_SUPPORTED_OPTIONS+= vdpau +PKG_SUGGESTED_OPTIONS+= vdpau +.endif + +# Add VAAPI if it is available +.include "../../multimedia/libva/available.mk" +.if ${VAAPI_AVAILABLE} == "yes" +PKG_SUPPORTED_OPTIONS+= vaapi +PKG_SUGGESTED_OPTIONS+= vaapi +.endif + +.include "../../mk/bsd.options.mk" + +# Fontconfig +.if !empty(PKG_OPTIONS:Mfontconfig) +CONFIGURE_ARGS+= --enable-fontconfig +.include "../../fonts/fontconfig/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-fontconfig +.endif + +# freetype option +.if !empty(PKG_OPTIONS:Mfreetype) +CONFIGURE_ARGS+= --enable-libfreetype +.include "../../graphics/freetype2/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libfreetype +.endif + +# ass option +.if !empty(PKG_OPTIONS:Mass) +CONFIGURE_ARGS+= --enable-libass +.include "../../multimedia/libass/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libass +.endif + +# av1 option with libaom +.if !empty(PKG_OPTIONS:Maom) +CONFIGURE_ARGS+= --enable-libaom +BUILDLINK_API_DEPENDS.libaom+= libaom>=1.0.0nb1 +.include "../../multimedia/libaom/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libaom +.endif + +# av1 option with rav1e +.if !empty(PKG_OPTIONS:Mrav1e) +CONFIGURE_ARGS+= --enable-librav1e +.include "../../multimedia/rav1e/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-librav1e +.endif + +.if !empty(PKG_OPTIONS:Maom) || !empty(PKG_OPTIONS:Mrav1e) +CONFIGURE_ARGS+= --enable-libdav1d +.include "../../multimedia/dav1d/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libdav1d +.endif + +# doc option +.if !empty(PKG_OPTIONS:Mdoc) +PLIST.doc= yes +USE_TOOLS+= texi2html +CONFIGURE_ARGS+= --enable-htmlpages +.else +CONFIGURE_ARGS+= --disable-htmlpages +.endif + +# Fraunhofer FDK AAC codec support +.if !empty(PKG_OPTIONS:Mfdk-aac) +RESTRICTED= ffmpeg built with fdk-aac combines GPL and GPL-incompatible code +NO_BIN_ON_CDROM= ${RESTRICTED} +NO_BIN_ON_FTP= ${RESTRICTED} +CONFIGURE_ARGS+= --enable-libfdk_aac +CONFIGURE_ARGS+= --enable-nonfree +.include "../../audio/fdk-aac/buildlink3.mk" +.endif + +# GnuTLS support +.if !empty(PKG_OPTIONS:Mgnutls) +CONFIGURE_ARGS+= --enable-gnutls +.include "../../security/gnutls/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-gnutls +.endif + +# mbedTLS support +.if !empty(PKG_OPTIONS:Mmbedtls) +CONFIGURE_ARGS+= --enable-mbedtls +# Apache License 2.0 is incompatible with (L)GPL versions before 3 +CONFIGURE_ARGS+= --enable-version3 +ADDITIONAL_LICENSE+= AND gnu-lgpl-v3 +.include "../../security/mbedtls/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-mbedtls +.endif + +# opencore-amr option +.if !empty(PKG_OPTIONS:Mopencore-amr) +CONFIGURE_ARGS+= --enable-libopencore-amrnb +CONFIGURE_ARGS+= --enable-libopencore-amrwb +# Apache License 2.0 is incompatible with (L)GPL versions before 3 +CONFIGURE_ARGS+= --enable-version3 +ADDITIONAL_LICENSE+= AND gnu-lgpl-v3 +.include "../../audio/opencore-amr/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libopencore-amrnb +CONFIGURE_ARGS+= --disable-libopencore-amrwb +.endif + +# OpenSSL support +.if !empty(PKG_OPTIONS:Mopenssl) +CONFIGURE_ARGS+= --enable-nonfree +CONFIGURE_ARGS+= --enable-openssl +.include "../../security/openssl/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-openssl +.endif + +# jack option +.if !empty(PKG_OPTIONS:Mjack) +CONFIGURE_ARGS+= --enable-libjack +.include "../../audio/jack/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libjack +.endif + +# pulseaudio option +.if !empty(PKG_OPTIONS:Mpulseaudio) +CONFIGURE_ARGS+= --enable-libpulse +.include "../../audio/pulseaudio/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libpulse +.endif + +# RTMP support via librtmp +.if !empty(PKG_OPTIONS:Mrtmp) +CONFIGURE_ARGS+= --enable-librtmp +.include "../../net/rtmpdump/buildlink3.mk" +.endif + +# OCR filter using Tesseract +.if !empty(PKG_OPTIONS:Mtesseract) +CONFIGURE_ARGS+= --enable-libtesseract +.include "../../graphics/tesseract/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libtesseract +.endif + +# OGG Theora support +.if !empty(PKG_OPTIONS:Mtheora) +CONFIGURE_ARGS+= --enable-libtheora +.include "../../multimedia/libtheora/buildlink3.mk" +.endif + +# OGG Vorbis support +.if !empty(PKG_OPTIONS:Mvorbis) +CONFIGURE_ARGS+= --enable-libvorbis +.include "../../audio/libvorbis/buildlink3.mk" +.endif + +# LAME MP3 encoder +.if !empty(PKG_OPTIONS:Mlame) +# "lame-3.98" isn't compatible with "ffmpeg" which breaks audio encoding. +BUILDLINK_API_DEPENDS.lame+= lame>=3.98.2nb1 +CONFIGURE_ARGS+= --enable-libmp3lame +.include "../../audio/lame/buildlink3.mk" +.endif + +# OPUS support +.if !empty(PKG_OPTIONS:Mopus) +CONFIGURE_ARGS+= --enable-libopus +.include "../../audio/libopus/buildlink3.mk" +.endif + +# Speex support +.if !empty(PKG_OPTIONS:Mspeex) +CONFIGURE_ARGS+= --enable-libspeex +.include "../../audio/speex/buildlink3.mk" +.endif + +# Raspberry Pi support +.if !empty(PKG_OPTIONS:Mrpi) +CONFIGURE_ARGS+= --enable-omx-rpi +CONFIGURE_ARGS+= --enable-mmal +SUBST_CLASSES+= vc +SUBST_STAGE.vc= pre-configure +SUBST_MESSAGE.vc= Fixing path to VideoCore libraries. +SUBST_FILES.vc= configure +SUBST_SED.vc+= -e 's;-isystem/opt/vc;-I${PREFIX};g' +SUBST_SED.vc+= -e 's;/opt/vc;${PREFIX};g' +.include "../../misc/raspberrypi-userland/buildlink3.mk" +.endif + +# XviD support +.if !empty(PKG_OPTIONS:Mxvid) +CONFIGURE_ARGS+= --enable-libxvid +.include "../../multimedia/xvidcore/buildlink3.mk" +.endif + +# x264 support +.if !empty(PKG_OPTIONS:Mx264) +BUILDLINK_API_DEPENDS.x264+= x264>=20220601 +CONFIGURE_ARGS+= --enable-libx264 +.include "../../multimedia/x264/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libx264 +.endif + +# x265 support +.if !empty(PKG_OPTIONS:Mx265) +CONFIGURE_ARGS+= --enable-libx265 +.include "../../multimedia/x265/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libx265 +.endif + +# VDPAU support +.if !empty(PKG_OPTIONS:Mvdpau) && !empty(PKG_OPTIONS:Mx11) +CONFIGURE_ARGS+= --enable-vdpau +.include "../../multimedia/libvdpau/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-vdpau +.endif + +# VAAPI support +.if !empty(PKG_OPTIONS:Mvaapi) && !empty(PKG_OPTIONS:Mx11) +CONFIGURE_ARGS+= --enable-vaapi +.include "../../multimedia/libva/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-vaapi +.endif + +# VPX support +.if !empty(PKG_OPTIONS:Mlibvpx) +CONFIGURE_ARGS+= --enable-libvpx +.include "../../multimedia/libvpx/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libvpx +.endif + +# WEBP support +.if !empty(PKG_OPTIONS:Mlibwebp) +CONFIGURE_ARGS+= --enable-libwebp +.include "../../graphics/libwebp/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libwebp +.endif + +# X11 screen capture support using libxcb +.if !empty(PKG_OPTIONS:Mx11) +CONFIGURE_ARGS+= --enable-libxcb +CONFIGURE_ARGS+= --enable-libxcb-shape +CONFIGURE_ARGS+= --enable-libxcb-shm +CONFIGURE_ARGS+= --enable-libxcb-xfixes +.include "../../x11/libxcb/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libxcb +.endif + +# Bluray support +.if !empty(PKG_OPTIONS:Mbluray) +CONFIGURE_ARGS+= --enable-libbluray +.include "../../multimedia/libbluray/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-libbluray +.endif Index: pkgsrc/multimedia/ffmpeg6/patches/patch-Makefile diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-Makefile:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-Makefile Fri Jun 2 16:44:06 2023 @@ -0,0 +1,15 @@ +$NetBSD: patch-Makefile,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Do "install -c". + +--- Makefile.orig 2018-04-20 10:02:55.000000000 +0000 ++++ Makefile +@@ -125,7 +125,7 @@ install-libs: install-libs-yes + + install-data: $(DATA_FILES) + $(Q)mkdir -p "$(DATADIR)" +- $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)" ++ $(INSTALL) -c -m 644 $(DATA_FILES) "$(DATADIR)" + + uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig + Index: pkgsrc/multimedia/ffmpeg6/patches/patch-configure diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-configure:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-configure Fri Jun 2 16:44:06 2023 @@ -0,0 +1,89 @@ +$NetBSD: patch-configure,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Sun audio support. + +Enable PIC and section_data_rel_ro on NetBSD, even on i386, +to avoid text relocations. + +Fix install_name_dir on Darwin. + +Do not use 'rsync'. + +--- configure.orig 2022-04-04 14:40:22.000000000 +0000 ++++ configure +@@ -2196,6 +2196,7 @@ HEADERS_LIST=" + sys_resource_h + sys_select_h + sys_soundcard_h ++ sys_audioio_h + sys_time_h + sys_un_h + sys_videoio_h +@@ -2337,7 +2338,6 @@ TOOLCHAIN_FEATURES=" + inline_asm_labels + inline_asm_nonlocal_labels + pragma_deprecated +- rsync_contimeout + symver_asm_label + symver_gnu_asm + vfp_args +@@ -3521,6 +3521,8 @@ opengl_outdev_deps="opengl" + opengl_outdev_suggest="sdl2" + oss_indev_deps_any="sys_soundcard_h" + oss_outdev_deps_any="sys_soundcard_h" ++sunau_indev_deps_any="sys_audioio_h" ++sunau_outdev_deps_any="sys_audioio_h" + pulse_indev_deps="libpulse" + pulse_outdev_deps="libpulse" + sdl2_outdev_deps="sdl2" +@@ -5491,6 +5493,8 @@ case $target_os in + ;; + netbsd) + disable symver ++ enable section_data_rel_ro ++ enable pic + oss_indev_extralibs="-lossaudio" + oss_outdev_extralibs="-lossaudio" + enabled gcc || check_ldflags -Wl,-zmuldefs +@@ -5516,7 +5520,7 @@ case $target_os in + ;; + darwin) + enabled ppc && add_asflags -force_cpusubtype_ALL +- install_name_dir_default='$(SHLIBDIR)' ++ install_name_dir_default=$shlibdir + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(INSTALL_NAME_DIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress + strip="${strip} -x" +@@ -5889,10 +5893,13 @@ done + check_cc pragma_deprecated "" '_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")' + + # The global variable ensures the bits appear unchanged in the object file. +-test_cc < /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html + perl -v > /dev/null 2>&1 && enable perl || disable perl + pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man +-rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout + xmllint --version > /dev/null 2>&1 && enable xmllint || disable xmllint + + # check V4L2 codecs available in the API Index: pkgsrc/multimedia/ffmpeg6/patches/patch-doc_Makefile diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-doc_Makefile:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_Makefile Fri Jun 2 16:44:06 2023 @@ -0,0 +1,31 @@ +$NetBSD: patch-doc_Makefile,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Make man pages and html docs versioned. + +--- doc/Makefile.orig 2016-02-15 02:29:37.000000000 +0000 ++++ doc/Makefile +@@ -14,8 +14,8 @@ COMPONENTS-$(CONFIG_AVFORMAT) += ffmpe + COMPONENTS-$(CONFIG_AVDEVICE) += ffmpeg-devices + COMPONENTS-$(CONFIG_AVFILTER) += ffmpeg-filters + +-MANPAGES1 = $(AVPROGS-yes:%=doc/%.1) $(AVPROGS-yes:%=doc/%-all.1) $(COMPONENTS-yes:%=doc/%.1) +-MANPAGES3 = $(LIBRARIES-yes:%=doc/%.3) ++MANPAGES1 = $(AVPROGS-yes:%=doc/%6.1) $(AVPROGS-yes:%=doc/%-all6.1) $(COMPONENTS-yes:%=doc/%6.1) ++MANPAGES3 = $(LIBRARIES-yes:%=doc/%6.3) + MANPAGES = $(MANPAGES1) $(MANPAGES3) + PODPAGES = $(AVPROGS-yes:%=doc/%.pod) $(AVPROGS-yes:%=doc/%-all.pod) $(COMPONENTS-yes:%=doc/%.pod) $(LIBRARIES-yes:%=doc/%.pod) + HTMLPAGES = $(AVPROGS-yes:%=doc/%.html) $(AVPROGS-yes:%=doc/%-all.html) $(COMPONENTS-yes:%=doc/%.html) $(LIBRARIES-yes:%=doc/%.html) \ +@@ -114,10 +114,10 @@ doc/%-all.pod: doc/%.texi $(SRC_PATH)/do + $(Q)$(TEXIDEP) + $(M)perl $(SRC_PATH)/doc/texi2pod.pl -Dconfig-all=yes -Idoc $< $@ + +-doc/%.1 doc/%.3: TAG = MAN +-doc/%.1: doc/%.pod $(GENTEXI) ++doc/%6.1 doc/%6.3: TAG = MAN ++doc/%6.1: doc/%.pod $(GENTEXI) + $(M)pod2man --section=1 --center=" " --release=" " --date=" " $< > $@ +-doc/%.3: doc/%.pod $(GENTEXI) ++doc/%6.3: doc/%.pod $(GENTEXI) + $(M)pod2man --section=3 --center=" " --release=" " --date=" " $< > $@ + + $(DOCS) doc/doxy/html: | doc/ Index: pkgsrc/multimedia/ffmpeg6/patches/patch-doc_general__contents.texi diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-doc_general__contents.texi:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_general__contents.texi Fri Jun 2 16:44:06 2023 @@ -0,0 +1,14 @@ +$NetBSD: patch-doc_general__contents.texi,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Add Sun Audio. + +--- doc/general_contents.texi.orig 2021-04-10 06:55:24.000000000 +0000 ++++ doc/general_contents.texi +@@ -1419,6 +1419,7 @@ performance on systems without hardware + @item OSS @tab X @tab X + @item PulseAudio @tab X @tab X + @item SDL @tab @tab X ++@item Sun Audio @tab @tab X + @item Video4Linux2 @tab X @tab X + @item VfW capture @tab X @tab + @item X11 grabbing @tab X @tab Index: pkgsrc/multimedia/ffmpeg6/patches/patch-doc_indevs.texi diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-doc_indevs.texi:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_indevs.texi Fri Jun 2 16:44:06 2023 @@ -0,0 +1,42 @@ +$NetBSD: patch-doc_indevs.texi,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +* Add sunau documentation. + +--- doc/indevs.texi.orig 2019-12-31 21:35:22.000000000 +0000 ++++ doc/indevs.texi +@@ -1282,6 +1282,35 @@ Set the number of channels. Default is 2 + + @end table + ++@section sunau ++ ++Solaris/NetBSD audio input device. ++ ++The filename to provide to the input device is the device node ++representing the Sun input device, and is usually set to ++@file{/dev/audio0}. ++ ++For example to grab from @file{/dev/audio0} using @command{ffmpeg} use the ++command: ++@example ++ffmpeg -f sunau -i /dev/audio0 /tmp/oss.wav ++@end example ++ ++@subsection Options ++ ++@table @option ++ ++@item buffer_samples ++Set the size of the audio buffer in samples. Default is 32. ++ ++@item sample_rate ++Set the sample rate in Hz. Default is 48000. ++ ++@item channels ++Set the number of channels. Default is 2. ++ ++@end table ++ + @section video4linux2, v4l2 + + Video4Linux2 input video device. Index: pkgsrc/multimedia/ffmpeg6/patches/patch-doc_outdevs.texi diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-doc_outdevs.texi:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-doc_outdevs.texi Fri Jun 2 16:44:06 2023 @@ -0,0 +1,24 @@ +$NetBSD: patch-doc_outdevs.texi,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +* Add sunau documentation. + +--- doc/outdevs.texi.orig 2019-12-31 21:35:22.000000000 +0000 ++++ doc/outdevs.texi +@@ -393,6 +393,17 @@ ffmpeg -i INPUT -c:v rawvideo -pix_fmt y + + sndio audio output device. + ++@section sunau ++ ++Solaris/NetBSD audio output device. ++ ++@subsection Options ++@table @option ++ ++@item buffer_samples ++Set the size of the audio buffer in samples. Default is 32. ++@end table ++ + @section v4l2 + + Video4Linux2 output device. Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_Makefile diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_Makefile:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_Makefile Fri Jun 2 16:44:06 2023 @@ -0,0 +1,15 @@ +$NetBSD: patch-libavdevice_Makefile,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Sun audio support. + +--- libavdevice/Makefile.orig 2019-12-31 21:35:24.000000000 +0000 ++++ libavdevice/Makefile +@@ -43,6 +43,8 @@ OBJS-$(CONFIG_PULSE_OUTDEV) + OBJS-$(CONFIG_SDL2_OUTDEV) += sdl2.o + OBJS-$(CONFIG_SNDIO_INDEV) += sndio_dec.o sndio.o + OBJS-$(CONFIG_SNDIO_OUTDEV) += sndio_enc.o sndio.o ++OBJS-$(CONFIG_SUNAU_INDEV) += sunau_dec.o sunau.o ++OBJS-$(CONFIG_SUNAU_OUTDEV) += sunau_enc.o sunau.o + OBJS-$(CONFIG_V4L2_INDEV) += v4l2.o v4l2-common.o timefilter.o + OBJS-$(CONFIG_V4L2_OUTDEV) += v4l2enc.o v4l2-common.o + OBJS-$(CONFIG_VFWCAP_INDEV) += vfwcap.o Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_alldevices.c diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_alldevices.c:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_alldevices.c Fri Jun 2 16:44:06 2023 @@ -0,0 +1,15 @@ +$NetBSD: patch-libavdevice_alldevices.c,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Sun audio support. + +--- libavdevice/alldevices.c.orig 2023-02-27 20:43:45.000000000 +0000 ++++ libavdevice/alldevices.c +@@ -48,6 +48,8 @@ extern const AVInputFormat ff_pulse_dem + extern const FFOutputFormat ff_pulse_muxer; + extern const FFOutputFormat ff_sdl2_muxer; + extern const AVInputFormat ff_sndio_demuxer; ++extern const AVInputFormat ff_sunau_demuxer; ++extern const AVOutputFormat ff_sunau_muxer; + extern const FFOutputFormat ff_sndio_muxer; + extern const AVInputFormat ff_v4l2_demuxer; + extern const FFOutputFormat ff_v4l2_muxer; Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.c diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.c:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.c Fri Jun 2 16:44:06 2023 @@ -0,0 +1,110 @@ +$NetBSD: patch-libavdevice_sunau.c,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Sun audio support. + +--- libavdevice/sunau.c.orig 2023-06-02 16:15:11.549198344 +0000 ++++ libavdevice/sunau.c +@@ -0,0 +1,103 @@ ++/* ++ * Solaris/NetBSD play and grab interface ++ * Copyright (c) 2020 Yorick Hardy ++ * Copyright (c) 2020 Nia Alarie ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "libavutil/file_open.h" ++#include "libavutil/log.h" ++ ++#include "libavcodec/avcodec.h" ++#include "avdevice.h" ++ ++#include "sunau.h" ++ ++int ff_sunau_audio_open(AVFormatContext *s1, int is_output, ++ const char *audio_device) ++{ ++ SunAudioData *s = s1->priv_data; ++ struct audio_info info; ++ struct audio_prinfo *prinfo; ++ int audio_fd, err; ++ ++ audio_fd = avpriv_open(audio_device, is_output ? O_WRONLY : O_RDONLY); ++ if (audio_fd < 0) { ++ av_log(s1, AV_LOG_ERROR, "%s: %s\n", audio_device, av_err2str(AVERROR(errno))); ++ return AVERROR(EIO); ++ } ++ ++ AUDIO_INITINFO(&info); ++ ++#ifdef AUMODE_PLAY /* BSD extension */ ++ info.mode = is_output ? AUMODE_PLAY : AUMODE_RECORD; ++#endif ++ ++ prinfo = is_output ? &info.play : &info.record; ++ ++ prinfo->encoding = AUDIO_ENCODING_LINEAR; ++ prinfo->precision = 16; ++ prinfo->sample_rate = s->sample_rate; ++ prinfo->channels = s->channels; ++ ++ if ((err = ioctl(audio_fd, AUDIO_SETINFO, &info)) < 0) { ++ av_log(s1, AV_LOG_ERROR, "AUDIO_SETINFO: %s\n", av_err2str(AVERROR(errno))); ++ goto fail; ++ } ++ ++ if ((err = ioctl(audio_fd, AUDIO_GETINFO, &info)) < 0) { ++ av_log(s1, AV_LOG_ERROR, "AUDIO_GETINFO: %s\n", av_err2str(AVERROR(errno))); ++ goto fail; ++ } ++ ++ s->fd = audio_fd; ++#if HAVE_BIGENDIAN ++ s->codec_id = AV_CODEC_ID_PCM_S16BE; ++#else ++ s->codec_id = AV_CODEC_ID_PCM_S16LE; ++#endif ++ s->precision = prinfo->precision; ++ s->sample_rate = prinfo->sample_rate; ++ s->channels = prinfo->channels; ++ s->blocksize = s->buffer_samples * prinfo->precision * prinfo->channels; ++ ++ if ((s->buffer = malloc(s->blocksize)) == NULL) { ++ av_log(s1, AV_LOG_ERROR, "malloc: %s\n", av_err2str(AVERROR(errno))); ++ goto fail; ++ } ++ ++ return 0; ++ fail: ++ close(audio_fd); ++ return AVERROR(EIO); ++} ++ ++int ff_sunau_audio_close(SunAudioData *s) ++{ ++ close(s->fd); ++ return 0; ++} Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.h diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.h:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau.h Fri Jun 2 16:44:06 2023 @@ -0,0 +1,55 @@ +$NetBSD: patch-libavdevice_sunau.h,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Sun audio support. + +--- libavdevice/sunau.h.orig 2020-03-20 20:53:01.579839153 +0000 ++++ libavdevice/sunau.h +@@ -0,0 +1,48 @@ ++/* ++ * Solaris/NetBSD play and grab interface ++ * Copyright (c) 2020 Yorick Hardy ++ * Copyright (c) 2020 Nia Alarie ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#ifndef AVDEVICE_SUNAU_H ++#define AVDEVICE_SUNAU_H ++ ++#include "libavcodec/avcodec.h" ++ ++#include "libavformat/avformat.h" ++ ++typedef struct SunAudioData { ++ AVClass *class; ++ int fd; ++ int buffer_samples; ++ unsigned int sample_rate; ++ unsigned int channels; ++ unsigned int precision; ++ size_t blocksize; ++ enum AVCodecID codec_id; ++ uint8_t *buffer; ++ size_t buffer_ptr; ++} SunAudioData; ++ ++int ff_sunau_audio_open(AVFormatContext *s1, int is_output, ++ const char *audio_device); ++ ++int ff_sunau_audio_close(SunAudioData *s); ++ ++#endif /* AVDEVICE_SUNAU_H */ Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__dec.c diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__dec.c:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__dec.c Fri Jun 2 16:44:06 2023 @@ -0,0 +1,145 @@ +$NetBSD: patch-libavdevice_sunau__dec.c,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Sun audio support. + +--- libavdevice/sunau_dec.c.orig 2020-03-20 20:53:01.607986932 +0000 ++++ libavdevice/sunau_dec.c +@@ -0,0 +1,138 @@ ++/* ++ * Solaris/NetBSD play and grab interface ++ * Copyright (c) 2020 Yorick Hardy ++ * Copyright (c) 2020 Nia Alarie ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "libavutil/internal.h" ++#include "libavutil/opt.h" ++#include "libavutil/time.h" ++ ++#include "libavcodec/avcodec.h" ++ ++#include "avdevice.h" ++#include "libavformat/internal.h" ++ ++#include "sunau.h" ++ ++static int audio_read_header(AVFormatContext *s1) ++{ ++ SunAudioData *s = s1->priv_data; ++ AVStream *st; ++ ++ st = avformat_new_stream(s1, NULL); ++ if (!st) { ++ return AVERROR(ENOMEM); ++ } ++ ++ if (ff_sunau_audio_open(s1, 0, s1->url) < 0) { ++ return AVERROR(EIO); ++ } ++ ++ /* take real parameters */ ++ st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; ++ st->codecpar->codec_id = s->codec_id; ++ st->codecpar->sample_rate = s->sample_rate; ++ st->codecpar->channels = s->channels; ++ ++ avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */ ++ ++ return 0; ++} ++ ++static int audio_read_packet(AVFormatContext *s1, AVPacket *pkt) ++{ ++ SunAudioData *s = s1->priv_data; ++ struct audio_info info; ++ int ret; ++ long bdelay; ++ int64_t cur_time; ++ ++ if ((ret = av_new_packet(pkt, s->blocksize)) < 0) ++ return ret; ++ ++ ret = read(s->fd, pkt->data, pkt->size); ++ if (ret <= 0) { ++ av_packet_unref(pkt); ++ pkt->size = 0; ++ return ret < 0 ? AVERROR(errno) : AVERROR_EOF; ++ } ++ ++ /* compute pts of the start of the packet */ ++ cur_time = av_gettime(); ++ bdelay = ret; ++ ++#ifdef AUDIO_GETBUFINFO /* BSD extension */ ++ if (ioctl(s->fd, AUDIO_GETBUFINFO, &info) == 0) { ++ bdelay += info.record.seek; ++ } ++#endif ++ ++ /* subtract time represented by the number of bytes in the audio fifo */ ++ cur_time -= (bdelay * 1000000LL) / (s->sample_rate * s->channels * s->precision); ++ ++ /* convert to wanted units */ ++ pkt->pts = cur_time; ++ ++ return 0; ++} ++ ++static int audio_read_close(AVFormatContext *s1) ++{ ++ SunAudioData *s = s1->priv_data; ++ ++ ff_sunau_audio_close(s); ++ return 0; ++} ++ ++static const AVOption options[] = { ++ { "buffer_samples", "", offsetof(SunAudioData, buffer_samples), AV_OPT_TYPE_INT, {.i64 = 32}, 1, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, ++ { "sample_rate", "", offsetof(SunAudioData, sample_rate), AV_OPT_TYPE_INT, {.i64 = 48000}, 1000, 192000, AV_OPT_FLAG_DECODING_PARAM }, ++ { "channels", "", offsetof(SunAudioData, channels), AV_OPT_TYPE_INT, {.i64 = 2}, 1, 12, AV_OPT_FLAG_DECODING_PARAM }, ++ { NULL }, ++}; ++ ++static const AVClass sunau_demuxer_class = { ++ .class_name = "Sun/NetBSD audio demuxer", ++ .item_name = av_default_item_name, ++ .option = options, ++ .version = LIBAVUTIL_VERSION_INT, ++ .category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, ++}; ++ ++AVInputFormat ff_sunau_demuxer = { ++ .name = "sunau", ++ .long_name = NULL_IF_CONFIG_SMALL("Sun/NetBSD audio capture"), ++ .priv_data_size = sizeof(SunAudioData), ++ .read_header = audio_read_header, ++ .read_packet = audio_read_packet, ++ .read_close = audio_read_close, ++ .flags = AVFMT_NOFILE, ++ .priv_class = &sunau_demuxer_class, ++}; Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__enc.c diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__enc.c:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavdevice_sunau__enc.c Fri Jun 2 16:44:06 2023 @@ -0,0 +1,121 @@ +$NetBSD: patch-libavdevice_sunau__enc.c,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Sun audio support. + +--- libavdevice/sunau_enc.c.orig 2020-03-20 20:53:01.636938971 +0000 ++++ libavdevice/sunau_enc.c +@@ -0,0 +1,114 @@ ++/* ++ * Solaris/NetBSD play and grab interface ++ * Copyright (c) 2020 Yorick Hardy ++ * Copyright (c) 2020 Nia Alarie ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++#include ++#include ++ ++#include "libavutil/internal.h" ++ ++#include "libavcodec/avcodec.h" ++ ++#include "avdevice.h" ++#include "libavformat/internal.h" ++ ++#include "sunau.h" ++ ++static int audio_write_header(AVFormatContext *s1) ++{ ++ SunAudioData *s = s1->priv_data; ++ AVStream *st; ++ ++ st = s1->streams[0]; ++ s->sample_rate = st->codecpar->sample_rate; ++ s->channels = st->codecpar->channels; ++ s->codec_id = st->codecpar->codec_id; ++ return ff_sunau_audio_open(s1, 1, s1->url) < 0 ? AVERROR(EIO) : 0; ++} ++ ++static int audio_write_packet(AVFormatContext *s1, AVPacket *pkt) ++{ ++ SunAudioData *s = s1->priv_data; ++ unsigned int len, size = pkt->size; ++ uint8_t *buf = pkt->data; ++ int ret; ++ ++ while (size > 0) { ++ len = FFMIN(s->blocksize - s->buffer_ptr, size); ++ memcpy(s->buffer + s->buffer_ptr, buf, len); ++ s->buffer_ptr += len; ++ if (s->buffer_ptr >= s->blocksize) { ++ for (;;) { ++ ret = write(s->fd, s->buffer, s->blocksize); ++ if (ret > 0) ++ break; ++ if (ret < 0 && (errno != EAGAIN && errno != EINTR)) ++ return AVERROR(EIO); ++ } ++ s->buffer_ptr = 0; ++ } ++ buf += len; ++ size -= len; ++ } ++ return 0; ++} ++ ++static int audio_write_trailer(AVFormatContext *s1) ++{ ++ SunAudioData *s = s1->priv_data; ++ ++ ff_sunau_audio_close(s); ++ return 0; ++} ++ ++static const AVOption options[] = { ++ { "buffer_samples", "", offsetof(SunAudioData, buffer_samples), AV_OPT_TYPE_INT, {.i64 = 32}, 1, 192000, AV_OPT_FLAG_DECODING_PARAM }, ++ { NULL }, ++}; ++ ++static const AVClass sunau_muxer_class = { ++ .class_name = "Sun/NetBSD audio muxer", ++ .item_name = av_default_item_name, ++ .option = options, ++ .version = LIBAVUTIL_VERSION_INT, ++ .category = AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, ++}; ++ ++AVOutputFormat ff_sunau_muxer = { ++ .name = "sunau", ++ .long_name = NULL_IF_CONFIG_SMALL("Sun/NetBSD audio playback"), ++ .priv_data_size = sizeof(SunAudioData), ++ /* XXX: we may need to support higher precisions in the future, but ++ right now this is what the kernel can handle natively */ ++ /* XXX: find better solution with "preinit" method, needed also in ++ other formats */ ++ .audio_codec = AV_NE(AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_S16LE), ++ .video_codec = AV_CODEC_ID_NONE, ++ .write_header = audio_write_header, ++ .write_packet = audio_write_packet, ++ .write_trailer = audio_write_trailer, ++ .flags = AVFMT_NOFILE, ++ .priv_class = &sunau_muxer_class, ++}; Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_macros.h diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_macros.h:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_macros.h Fri Jun 2 16:44:06 2023 @@ -0,0 +1,29 @@ +$NetBSD: patch-libavutil_macros.h,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Add required int includes on various opensource platforms. + +--- libavutil/macros.h.orig 2022-01-14 18:45:40.000000000 +0000 ++++ libavutil/macros.h +@@ -27,6 +27,22 @@ + + #include "libavutil/avconfig.h" + ++#if defined(__cplusplus) ++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__) ++#undef _STDINT_H_ ++#undef _SYS_STDINT_H_ ++#undef _STDINT_H ++#undef _GCC_WRAP_STDINT_H ++#ifndef __STDC_CONSTANT_MACROS ++#define __STDC_CONSTANT_MACROS ++#endif ++#include ++#endif /* FreeBSD | OpenBSD | linux */ ++#if defined(__DragonFly__) || defined(__NetBSD__) ++#include ++#endif /* DragonFly | NetBSD */ ++#endif /* __cplusplus */ ++ + #if AV_HAVE_BIGENDIAN + # define AV_NE(be, le) (be) + #else Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_asm.h diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_asm.h:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_asm.h Fri Jun 2 16:44:06 2023 @@ -0,0 +1,18 @@ +$NetBSD: patch-libavutil_x86_asm.h,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Avoid SunOS regset.h definition for REG_SP + +--- libavutil/x86/asm.h.orig 2016-10-28 18:31:25.000000000 +0000 ++++ libavutil/x86/asm.h +@@ -27,6 +27,11 @@ + typedef struct xmm_reg { uint64_t a, b; } xmm_reg; + typedef struct ymm_reg { uint64_t a, b, c, d; } ymm_reg; + ++/* avoid SunOS regset.h definition for REG_SP */ ++#if defined (__sun) && defined (REG_SP) ++#undef REG_SP ++#endif ++ + #if ARCH_X86_64 + # define FF_OPSIZE "q" + # define FF_REG_a "rax" Index: pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_cpu.c diff -u /dev/null pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_cpu.c:1.1 --- /dev/null Fri Jun 2 16:44:07 2023 +++ pkgsrc/multimedia/ffmpeg6/patches/patch-libavutil_x86_cpu.c Fri Jun 2 16:44:06 2023 @@ -0,0 +1,22 @@ +$NetBSD: patch-libavutil_x86_cpu.c,v 1.1 2023/06/02 16:44:06 wiz Exp $ + +Make a part of the code depend on GCC >= 4.2. + +--- libavutil/x86/cpu.c.orig 2016-01-15 16:58:37.000000000 +0000 ++++ libavutil/x86/cpu.c +@@ -116,6 +116,7 @@ int ff_get_cpu_flags_x86(void) + #if HAVE_SSE + if (std_caps & (1 << 25)) + rval |= AV_CPU_FLAG_SSE; ++#if !defined(__GNUC__) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) + if (std_caps & (1 << 26)) + rval |= AV_CPU_FLAG_SSE2; + if (ecx & 1) +@@ -138,6 +139,7 @@ int ff_get_cpu_flags_x86(void) + } + } + #endif /* HAVE_AVX */ ++#endif /* gcc >= 4.2 */ + #endif /* HAVE_SSE */ + } + if (max_std_level >= 7) { --_----------=_1685724247199780--