ffmpeg4-nbsdaudio: import ffmpeg4-4.2.2 as wip/ffmpeg4-nbsdaudio
This is a duplicate of multimedia/ffmpeg4, with additional patches for NetBSD audio. All of the capabilities of the NetBSD audio system are not yet available, but basic recording and playback seems to work.
This commit is contained in:
parent
fb9f2d6f3e
commit
4d713de1ff
1
Makefile
1
Makefile
|
@ -807,6 +807,7 @@ SUBDIR+= festvox-tp
|
|||
SUBDIR+= feynedit
|
||||
SUBDIR+= feynhiggs
|
||||
SUBDIR+= ffmpeg-git
|
||||
SUBDIR+= ffmpeg4-nbsdaudio
|
||||
SUBDIR+= ffmpegthumbs
|
||||
SUBDIR+= fftjet
|
||||
SUBDIR+= fftw-mpich
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
bin/ffmpeg @PREFIX@/bin/ffmpeg4
|
||||
bin/ffprobe @PREFIX@/bin/ffprobe4
|
|
@ -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 4.
|
|
@ -0,0 +1,56 @@
|
|||
# $NetBSD$
|
||||
|
||||
PKGNAME= ${DISTNAME:S/ffmpeg/ffmpeg4/}
|
||||
MAINTAINER= pkgsrc-users@NetBSD.org
|
||||
HOMEPAGE= http://ffmpeg.mplayerhq.hu/
|
||||
COMMENT= Decoding, encoding and streaming software (v4.x)
|
||||
|
||||
CONFIGURE_ARGS+= --enable-avfilter
|
||||
CONFIGURE_ARGS+= --enable-avresample
|
||||
CONFIGURE_ARGS+= --enable-postproc
|
||||
CONFIGURE_ARGS+= --enable-rpath
|
||||
CONFIGURE_ARGS+= --disable-ffplay
|
||||
|
||||
INSTALLATION_DIRS= lib/ffmpeg4 share/doc/ffmpeg4 share/examples/ffmpeg4
|
||||
|
||||
.include "../../mk/bsd.prefs.mk"
|
||||
|
||||
.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
|
||||
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+= /opencl/ { $$0 = "$${PLIST.opencl}" $$0 }
|
||||
|
||||
TEST_TARGET= check
|
||||
|
||||
post-install:
|
||||
${INSTALL_DATA} ${WRKSRC}/doc/*.txt \
|
||||
${DESTDIR}${PREFIX}/share/doc/ffmpeg4
|
||||
|
||||
.include "options.mk"
|
||||
|
||||
.include "../../mk/compiler.mk"
|
||||
|
||||
# disable asm on i386 for non-gcc and gcc < 4.2
|
||||
.if ${MACHINE_ARCH} == "i386"
|
||||
. if !empty(MACHINE_PLATFORM:MDarwin-*-i386) \
|
||||
|| !empty(MACHINE_PLATFORM:MSunOS-*-i386) \
|
||||
|| !empty(MACHINE_PLATFORM:MNetBSD-*-i386) \
|
||||
|| !empty(CC_VERSION:Mgcc-[123]*) \
|
||||
|| !empty(CC_VERSION:Mgcc-4.[01].*) \
|
||||
|| empty(CC_VERSION:Mgcc*)
|
||||
CONFIGURE_ARGS+= --disable-asm
|
||||
. elif !empty(CC_VERSION:Mgcc-[456].*)
|
||||
CFLAGS+= -mstackrealign -mpreferred-stack-boundary=4
|
||||
. endif
|
||||
.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 "../../wip/ffmpeg4-nbsdaudio/Makefile.common"
|
|
@ -0,0 +1,92 @@
|
|||
# $NetBSD$
|
||||
# used by multimedia/ffmpeg4/Makefile
|
||||
# used by multimedia/ffplay4/Makefile
|
||||
|
||||
DISTNAME= ffmpeg-4.2.2
|
||||
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}/../../wip/ffmpeg4-nbsdaudio/patches
|
||||
|
||||
USE_LANGUAGES= c99
|
||||
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=4
|
||||
CONFIGURE_ARGS+= --datadir=${PREFIX}/share/ffmpeg4
|
||||
CONFIGURE_ARGS+= --docdir=${PREFIX}/share/doc/ffmpeg4
|
||||
CONFIGURE_ARGS+= --incdir=${PREFIX}/include/ffmpeg4
|
||||
CONFIGURE_ARGS+= --libdir=${PREFIX}/lib/ffmpeg4
|
||||
CONFIGURE_ARGS+= --shlibdir=${PREFIX}/lib/ffmpeg4
|
||||
LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/ffmpeg4
|
||||
|
||||
PLIST_VARS+= opencl
|
||||
|
||||
.if !empty(MACHINE_PLATFORM:MDarwin-1[2-9].*-*)
|
||||
CONFIGURE_ARGS+= --enable-opencl
|
||||
PLIST.opencl= yes
|
||||
.endif
|
||||
|
||||
.if ${OPSYS} == "SunOS"
|
||||
USE_TOOLS+= bash:build
|
||||
CONFIG_SHELL= ${TOOLS_PATH.bash}
|
||||
.endif
|
||||
|
||||
CONFIGURE_ARGS+= --enable-runtime-cpudetect
|
||||
|
||||
# No posix_memalign() in NetBSD 4.0 and earlier
|
||||
.if !empty(MACHINE_PLATFORM:MNetBSD-[1-4].*-*)
|
||||
CONFIGURE_ARGS+= --enable-memalign-hack
|
||||
.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 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/pthread.buildlink3.mk"
|
||||
.include "../../mk/bsd.pkg.mk"
|
|
@ -0,0 +1,259 @@
|
|||
@comment $NetBSD$
|
||||
bin/ffmpeg4
|
||||
bin/ffprobe4
|
||||
include/ffmpeg4/libavcodec/ac3_parser.h
|
||||
include/ffmpeg4/libavcodec/adts_parser.h
|
||||
include/ffmpeg4/libavcodec/avcodec.h
|
||||
include/ffmpeg4/libavcodec/avdct.h
|
||||
include/ffmpeg4/libavcodec/avfft.h
|
||||
include/ffmpeg4/libavcodec/d3d11va.h
|
||||
include/ffmpeg4/libavcodec/dirac.h
|
||||
include/ffmpeg4/libavcodec/dv_profile.h
|
||||
include/ffmpeg4/libavcodec/dxva2.h
|
||||
include/ffmpeg4/libavcodec/jni.h
|
||||
include/ffmpeg4/libavcodec/mediacodec.h
|
||||
include/ffmpeg4/libavcodec/qsv.h
|
||||
include/ffmpeg4/libavcodec/vaapi.h
|
||||
include/ffmpeg4/libavcodec/vdpau.h
|
||||
include/ffmpeg4/libavcodec/version.h
|
||||
include/ffmpeg4/libavcodec/videotoolbox.h
|
||||
include/ffmpeg4/libavcodec/vorbis_parser.h
|
||||
include/ffmpeg4/libavcodec/xvmc.h
|
||||
include/ffmpeg4/libavdevice/avdevice.h
|
||||
include/ffmpeg4/libavdevice/version.h
|
||||
include/ffmpeg4/libavfilter/avfilter.h
|
||||
include/ffmpeg4/libavfilter/buffersink.h
|
||||
include/ffmpeg4/libavfilter/buffersrc.h
|
||||
include/ffmpeg4/libavfilter/version.h
|
||||
include/ffmpeg4/libavformat/avformat.h
|
||||
include/ffmpeg4/libavformat/avio.h
|
||||
include/ffmpeg4/libavformat/version.h
|
||||
include/ffmpeg4/libavresample/avresample.h
|
||||
include/ffmpeg4/libavresample/version.h
|
||||
include/ffmpeg4/libavutil/adler32.h
|
||||
include/ffmpeg4/libavutil/aes.h
|
||||
include/ffmpeg4/libavutil/aes_ctr.h
|
||||
include/ffmpeg4/libavutil/attributes.h
|
||||
include/ffmpeg4/libavutil/audio_fifo.h
|
||||
include/ffmpeg4/libavutil/avassert.h
|
||||
include/ffmpeg4/libavutil/avconfig.h
|
||||
include/ffmpeg4/libavutil/avstring.h
|
||||
include/ffmpeg4/libavutil/avutil.h
|
||||
include/ffmpeg4/libavutil/base64.h
|
||||
include/ffmpeg4/libavutil/blowfish.h
|
||||
include/ffmpeg4/libavutil/bprint.h
|
||||
include/ffmpeg4/libavutil/bswap.h
|
||||
include/ffmpeg4/libavutil/buffer.h
|
||||
include/ffmpeg4/libavutil/camellia.h
|
||||
include/ffmpeg4/libavutil/cast5.h
|
||||
include/ffmpeg4/libavutil/channel_layout.h
|
||||
include/ffmpeg4/libavutil/common.h
|
||||
include/ffmpeg4/libavutil/cpu.h
|
||||
include/ffmpeg4/libavutil/crc.h
|
||||
include/ffmpeg4/libavutil/des.h
|
||||
include/ffmpeg4/libavutil/dict.h
|
||||
include/ffmpeg4/libavutil/display.h
|
||||
include/ffmpeg4/libavutil/downmix_info.h
|
||||
include/ffmpeg4/libavutil/encryption_info.h
|
||||
include/ffmpeg4/libavutil/error.h
|
||||
include/ffmpeg4/libavutil/eval.h
|
||||
include/ffmpeg4/libavutil/ffversion.h
|
||||
include/ffmpeg4/libavutil/fifo.h
|
||||
include/ffmpeg4/libavutil/file.h
|
||||
include/ffmpeg4/libavutil/frame.h
|
||||
include/ffmpeg4/libavutil/hash.h
|
||||
include/ffmpeg4/libavutil/hdr_dynamic_metadata.h
|
||||
include/ffmpeg4/libavutil/hmac.h
|
||||
include/ffmpeg4/libavutil/hwcontext.h
|
||||
include/ffmpeg4/libavutil/hwcontext_cuda.h
|
||||
include/ffmpeg4/libavutil/hwcontext_d3d11va.h
|
||||
include/ffmpeg4/libavutil/hwcontext_drm.h
|
||||
include/ffmpeg4/libavutil/hwcontext_dxva2.h
|
||||
include/ffmpeg4/libavutil/hwcontext_mediacodec.h
|
||||
include/ffmpeg4/libavutil/hwcontext_qsv.h
|
||||
include/ffmpeg4/libavutil/hwcontext_vaapi.h
|
||||
include/ffmpeg4/libavutil/hwcontext_vdpau.h
|
||||
include/ffmpeg4/libavutil/hwcontext_videotoolbox.h
|
||||
include/ffmpeg4/libavutil/imgutils.h
|
||||
include/ffmpeg4/libavutil/intfloat.h
|
||||
include/ffmpeg4/libavutil/intreadwrite.h
|
||||
include/ffmpeg4/libavutil/lfg.h
|
||||
include/ffmpeg4/libavutil/log.h
|
||||
include/ffmpeg4/libavutil/lzo.h
|
||||
include/ffmpeg4/libavutil/macros.h
|
||||
include/ffmpeg4/libavutil/mastering_display_metadata.h
|
||||
include/ffmpeg4/libavutil/mathematics.h
|
||||
include/ffmpeg4/libavutil/md5.h
|
||||
include/ffmpeg4/libavutil/mem.h
|
||||
include/ffmpeg4/libavutil/motion_vector.h
|
||||
include/ffmpeg4/libavutil/murmur3.h
|
||||
include/ffmpeg4/libavutil/opt.h
|
||||
include/ffmpeg4/libavutil/parseutils.h
|
||||
include/ffmpeg4/libavutil/pixdesc.h
|
||||
include/ffmpeg4/libavutil/pixelutils.h
|
||||
include/ffmpeg4/libavutil/pixfmt.h
|
||||
include/ffmpeg4/libavutil/random_seed.h
|
||||
include/ffmpeg4/libavutil/rational.h
|
||||
include/ffmpeg4/libavutil/rc4.h
|
||||
include/ffmpeg4/libavutil/replaygain.h
|
||||
include/ffmpeg4/libavutil/ripemd.h
|
||||
include/ffmpeg4/libavutil/samplefmt.h
|
||||
include/ffmpeg4/libavutil/sha.h
|
||||
include/ffmpeg4/libavutil/sha512.h
|
||||
include/ffmpeg4/libavutil/spherical.h
|
||||
include/ffmpeg4/libavutil/stereo3d.h
|
||||
include/ffmpeg4/libavutil/tea.h
|
||||
include/ffmpeg4/libavutil/threadmessage.h
|
||||
include/ffmpeg4/libavutil/time.h
|
||||
include/ffmpeg4/libavutil/timecode.h
|
||||
include/ffmpeg4/libavutil/timestamp.h
|
||||
include/ffmpeg4/libavutil/tree.h
|
||||
include/ffmpeg4/libavutil/twofish.h
|
||||
include/ffmpeg4/libavutil/tx.h
|
||||
include/ffmpeg4/libavutil/version.h
|
||||
include/ffmpeg4/libavutil/xtea.h
|
||||
include/ffmpeg4/libpostproc/postprocess.h
|
||||
include/ffmpeg4/libpostproc/version.h
|
||||
include/ffmpeg4/libswresample/swresample.h
|
||||
include/ffmpeg4/libswresample/version.h
|
||||
include/ffmpeg4/libswscale/swscale.h
|
||||
include/ffmpeg4/libswscale/version.h
|
||||
lib/ffmpeg4/libavcodec.a
|
||||
lib/ffmpeg4/libavcodec.so
|
||||
lib/ffmpeg4/libavcodec.so.58
|
||||
lib/ffmpeg4/libavcodec.so.58.54.100
|
||||
lib/ffmpeg4/libavdevice.a
|
||||
lib/ffmpeg4/libavdevice.so
|
||||
lib/ffmpeg4/libavdevice.so.58
|
||||
lib/ffmpeg4/libavdevice.so.58.8.100
|
||||
lib/ffmpeg4/libavfilter.a
|
||||
lib/ffmpeg4/libavfilter.so
|
||||
lib/ffmpeg4/libavfilter.so.7
|
||||
lib/ffmpeg4/libavfilter.so.7.57.100
|
||||
lib/ffmpeg4/libavformat.a
|
||||
lib/ffmpeg4/libavformat.so
|
||||
lib/ffmpeg4/libavformat.so.58
|
||||
lib/ffmpeg4/libavformat.so.58.29.100
|
||||
lib/ffmpeg4/libavresample.a
|
||||
lib/ffmpeg4/libavresample.so
|
||||
lib/ffmpeg4/libavresample.so.4
|
||||
lib/ffmpeg4/libavresample.so.4.0.0
|
||||
lib/ffmpeg4/libavutil.a
|
||||
lib/ffmpeg4/libavutil.so
|
||||
lib/ffmpeg4/libavutil.so.56
|
||||
lib/ffmpeg4/libavutil.so.56.31.100
|
||||
lib/ffmpeg4/libpostproc.a
|
||||
lib/ffmpeg4/libpostproc.so
|
||||
lib/ffmpeg4/libpostproc.so.55
|
||||
lib/ffmpeg4/libpostproc.so.55.5.100
|
||||
lib/ffmpeg4/libswresample.a
|
||||
lib/ffmpeg4/libswresample.so
|
||||
lib/ffmpeg4/libswresample.so.3
|
||||
lib/ffmpeg4/libswresample.so.3.5.100
|
||||
lib/ffmpeg4/libswscale.a
|
||||
lib/ffmpeg4/libswscale.so
|
||||
lib/ffmpeg4/libswscale.so.5
|
||||
lib/ffmpeg4/libswscale.so.5.5.100
|
||||
lib/ffmpeg4/pkgconfig/libavcodec.pc
|
||||
lib/ffmpeg4/pkgconfig/libavdevice.pc
|
||||
lib/ffmpeg4/pkgconfig/libavfilter.pc
|
||||
lib/ffmpeg4/pkgconfig/libavformat.pc
|
||||
lib/ffmpeg4/pkgconfig/libavresample.pc
|
||||
lib/ffmpeg4/pkgconfig/libavutil.pc
|
||||
lib/ffmpeg4/pkgconfig/libpostproc.pc
|
||||
lib/ffmpeg4/pkgconfig/libswresample.pc
|
||||
lib/ffmpeg4/pkgconfig/libswscale.pc
|
||||
man/man1/ffmpeg-all4.1
|
||||
man/man1/ffmpeg-bitstream-filters4.1
|
||||
man/man1/ffmpeg-codecs4.1
|
||||
man/man1/ffmpeg-devices4.1
|
||||
man/man1/ffmpeg-filters4.1
|
||||
man/man1/ffmpeg-formats4.1
|
||||
man/man1/ffmpeg-protocols4.1
|
||||
man/man1/ffmpeg-resampler4.1
|
||||
man/man1/ffmpeg-scaler4.1
|
||||
man/man1/ffmpeg-utils4.1
|
||||
man/man1/ffmpeg4.1
|
||||
man/man1/ffprobe-all4.1
|
||||
man/man1/ffprobe4.1
|
||||
man/man3/libavcodec4.3
|
||||
man/man3/libavdevice4.3
|
||||
man/man3/libavfilter4.3
|
||||
man/man3/libavformat4.3
|
||||
man/man3/libavutil4.3
|
||||
man/man3/libswresample4.3
|
||||
man/man3/libswscale4.3
|
||||
share/doc/ffmpeg4/build_system.txt
|
||||
${PLIST.doc}share/doc/ffmpeg4/developer.html
|
||||
share/doc/ffmpeg4/errno.txt
|
||||
${PLIST.doc}share/doc/ffmpeg4/faq.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/fate.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-all.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-bitstream-filters.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-codecs.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-devices.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-filters.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-formats.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-protocols.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-resampler.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-scaler.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg-utils.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffmpeg.html
|
||||
share/doc/ffmpeg4/ffmpeg.txt
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffprobe-all.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/ffprobe.html
|
||||
share/doc/ffmpeg4/filter_design.txt
|
||||
${PLIST.doc}share/doc/ffmpeg4/general.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/git-howto.html
|
||||
share/doc/ffmpeg4/issue_tracker.txt
|
||||
share/doc/ffmpeg4/libav-merge.txt
|
||||
${PLIST.doc}share/doc/ffmpeg4/libavcodec.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/libavdevice.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/libavfilter.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/libavformat.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/libavutil.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/libswresample.html
|
||||
${PLIST.doc}share/doc/ffmpeg4/libswscale.html
|
||||
share/doc/ffmpeg4/mips.txt
|
||||
share/doc/ffmpeg4/multithreading.txt
|
||||
${PLIST.doc}share/doc/ffmpeg4/nut.html
|
||||
share/doc/ffmpeg4/optimization.txt
|
||||
${PLIST.doc}share/doc/ffmpeg4/platform.html
|
||||
share/doc/ffmpeg4/rate_distortion.txt
|
||||
share/doc/ffmpeg4/snow.txt
|
||||
share/doc/ffmpeg4/swresample.txt
|
||||
share/doc/ffmpeg4/swscale.txt
|
||||
share/doc/ffmpeg4/tablegen.txt
|
||||
share/doc/ffmpeg4/undefined.txt
|
||||
share/doc/ffmpeg4/writing_filters.txt
|
||||
share/ffmpeg4/examples/Makefile
|
||||
share/ffmpeg4/examples/README
|
||||
share/ffmpeg4/examples/avio_dir_cmd.c
|
||||
share/ffmpeg4/examples/avio_reading.c
|
||||
share/ffmpeg4/examples/decode_audio.c
|
||||
share/ffmpeg4/examples/decode_video.c
|
||||
share/ffmpeg4/examples/demuxing_decoding.c
|
||||
share/ffmpeg4/examples/encode_audio.c
|
||||
share/ffmpeg4/examples/encode_video.c
|
||||
share/ffmpeg4/examples/extract_mvs.c
|
||||
share/ffmpeg4/examples/filter_audio.c
|
||||
share/ffmpeg4/examples/filtering_audio.c
|
||||
share/ffmpeg4/examples/filtering_video.c
|
||||
share/ffmpeg4/examples/http_multiclient.c
|
||||
share/ffmpeg4/examples/hw_decode.c
|
||||
share/ffmpeg4/examples/metadata.c
|
||||
share/ffmpeg4/examples/muxing.c
|
||||
share/ffmpeg4/examples/qsvdec.c
|
||||
share/ffmpeg4/examples/remuxing.c
|
||||
share/ffmpeg4/examples/resampling_audio.c
|
||||
share/ffmpeg4/examples/scaling_video.c
|
||||
share/ffmpeg4/examples/transcode_aac.c
|
||||
share/ffmpeg4/examples/transcoding.c
|
||||
share/ffmpeg4/examples/vaapi_encode.c
|
||||
share/ffmpeg4/examples/vaapi_transcode.c
|
||||
share/ffmpeg4/ffprobe.xsd
|
||||
share/ffmpeg4/libvpx-1080p.ffpreset
|
||||
share/ffmpeg4/libvpx-1080p50_60.ffpreset
|
||||
share/ffmpeg4/libvpx-360p.ffpreset
|
||||
share/ffmpeg4/libvpx-720p.ffpreset
|
||||
share/ffmpeg4/libvpx-720p50_60.ffpreset
|
|
@ -0,0 +1,63 @@
|
|||
# $NetBSD$
|
||||
|
||||
BUILDLINK_TREE+= ffmpeg4
|
||||
|
||||
.if !defined(FFMPEG4_BUILDLINK3_MK)
|
||||
FFMPEG4_BUILDLINK3_MK:=
|
||||
|
||||
BUILDLINK_API_DEPENDS.ffmpeg4+= ffmpeg4>=4.0
|
||||
BUILDLINK_ABI_DEPENDS.ffmpeg4+= ffmpeg4>=4.2
|
||||
BUILDLINK_PKGSRCDIR.ffmpeg4?= ../../multimedia/ffmpeg4
|
||||
|
||||
pkgbase := ffmpeg4
|
||||
.include "../../mk/pkg-build-options.mk"
|
||||
|
||||
.include "../../mk/bsd.fast.prefs.mk"
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mav1)
|
||||
. include "../../multimedia/libaom/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mfreetype)
|
||||
. include "../../graphics/freetype2/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mfontconfig)
|
||||
. include "../../fonts/fontconfig/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mtheora)
|
||||
. include "../../multimedia/libtheora/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mxvid)
|
||||
. include "../../multimedia/xvidcore/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mx264)
|
||||
. include "../../multimedia/x264-devel/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mlibvpx)
|
||||
. include "../../multimedia/libvpx/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mvaapi)
|
||||
. include "../../multimedia/libva/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_BUILD_OPTIONS.ffmpeg4:Mvdpau)
|
||||
. include "../../multimedia/libvdpau/buildlink3.mk"
|
||||
.endif
|
||||
|
||||
BUILDLINK_INCDIRS.ffmpeg4+= include/ffmpeg4
|
||||
BUILDLINK_LIBDIRS.ffmpeg4+= lib/ffmpeg4
|
||||
BUILDLINK_FNAME_TRANSFORM.ffmpeg4+= -e 's|lib/ffmpeg4/pkgconfig/|lib/pkgconfig/|'
|
||||
|
||||
.include "../../archivers/bzip2/buildlink3.mk"
|
||||
.include "../../archivers/xz/buildlink3.mk"
|
||||
.include "../../devel/libgetopt/buildlink3.mk"
|
||||
.include "../../devel/zlib/buildlink3.mk"
|
||||
.endif # FFMPEG4_BUILDLINK3_MK
|
||||
|
||||
BUILDLINK_TREE+= -ffmpeg4
|
|
@ -0,0 +1,21 @@
|
|||
$NetBSD$
|
||||
|
||||
SHA1 (ffmpeg-4.2.2.tar.xz) = 2557ec7d1dee31169980a8a10404129f94bd5809
|
||||
RMD160 (ffmpeg-4.2.2.tar.xz) = 2f1ff99e3a2db7a17bb6b692dd394e6f3afd803d
|
||||
SHA512 (ffmpeg-4.2.2.tar.xz) = 381cd6732fa699eb89000621cf34256920596ed1f9de3c2194dbad35fdf2165269eb7d3a147a0eb75dc18fbb6d601382b5801750e09fc63547766842f84208e3
|
||||
Size (ffmpeg-4.2.2.tar.xz) = 9094140 bytes
|
||||
SHA1 (patch-Makefile) = 2d27f218ee49179fdea14bb5c86c506dfb64dbd6
|
||||
SHA1 (patch-configure) = 63253696e75f8d12953cb938ca452e0ec36994f2
|
||||
SHA1 (patch-doc_Makefile) = 3b86307323fa565f9ad19c5bcb6ea71d323062fc
|
||||
SHA1 (patch-doc_indevs.texi) = 0ca344129aca5abe1b664b39745676d2f24af9c7
|
||||
SHA1 (patch-doc_outdevs.texi) = cc014637c2d8928596e4db6019f9c9e7f7fd5752
|
||||
SHA1 (patch-libavdevice_Makefile) = 1d1073a3c73468e4c2c00aae48acbb7f2b402146
|
||||
SHA1 (patch-libavdevice_alldevices.c) = 8662bced2511d3ab6a6f0a7b7055978a3f6d06db
|
||||
SHA1 (patch-libavdevice_nbsdaudio.c) = 4e876a88375cc4d556475e8f4f23fb01d159d18b
|
||||
SHA1 (patch-libavdevice_nbsdaudio.h) = 3fde4e36921ab1219158effb94e7e9e14c3adae7
|
||||
SHA1 (patch-libavdevice_nbsdaudio__dec.c) = 7ccc2cb5c89e7a179e59ea82f4ad6e1e51a649df
|
||||
SHA1 (patch-libavdevice_nbsdaudio__enc.c) = a9e50c61fb31422e57918bf9b9b72d63ebf4253f
|
||||
SHA1 (patch-libavformat_sctp.c) = 22bad9c7dc152aec3c60e0009899af241f495535
|
||||
SHA1 (patch-libavutil_common.h) = d0f1093bc82567807b39dde990ee347f90a082c9
|
||||
SHA1 (patch-libavutil_x86_asm.h) = 8f48f9e8ec08b5176bb40fc0021f3bb913dbef22
|
||||
SHA1 (patch-libavutil_x86_cpu.c) = 9c97e68fde0fcb19741e034a803d509040ea4487
|
|
@ -0,0 +1,248 @@
|
|||
# $NetBSD$
|
||||
|
||||
# Global and legacy options
|
||||
|
||||
PKG_OPTIONS_OPTIONAL_GROUPS= ssl
|
||||
PKG_OPTIONS_GROUP.ssl= gnutls openssl
|
||||
|
||||
PKG_OPTIONS_VAR= PKG_OPTIONS.ffmpeg4
|
||||
PKG_SUPPORTED_OPTIONS= ass av1 bluray doc fdk-aac fontconfig freetype \
|
||||
gnutls lame libvpx opencore-amr opus pulseaudio rpi \
|
||||
rtmp tesseract theora vorbis x11 x264 x265 xvid
|
||||
PKG_SUGGESTED_OPTIONS= lame ass av1 bluray freetype fontconfig libvpx \
|
||||
openssl theora vorbis x11 x264 xvid
|
||||
|
||||
PKG_OPTIONS_LEGACY_OPTS+= xcb:x11
|
||||
|
||||
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
|
||||
.if !empty(PKG_OPTIONS:Mav1)
|
||||
CONFIGURE_ARGS+= --enable-libaom
|
||||
BUILDLINK_API_DEPENDS.libaom+= libaom>=1.0.0nb1
|
||||
.include "../../multimedia/libaom/buildlink3.mk"
|
||||
.else
|
||||
CONFIGURE_ARGS+= --disable-libaom
|
||||
.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= This software may require the payment of patent royalties
|
||||
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
|
||||
|
||||
# opencore-amr option
|
||||
.if !empty(PKG_OPTIONS:Mopencore-amr)
|
||||
CONFIGURE_ARGS+= --enable-libopencore-amrnb
|
||||
CONFIGURE_ARGS+= --enable-libopencore-amrwb
|
||||
# "The OpenCORE external libraries are under the Apache License
|
||||
# 2.0. That license is incompatible with the LGPL v2.1 and the GPL
|
||||
# v2, but not with version 3 of those licenses. So to combine the
|
||||
# OpenCORE libraries with FFmpeg, the license version needs to be
|
||||
# upgraded by passing --enable-version3 to configure."
|
||||
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
|
||||
|
||||
# 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_ABI_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
|
||||
|
||||
# Raspberry Pi support
|
||||
.if !empty(PKG_OPTIONS:Mrpi)
|
||||
CONFIGURE_ARGS+= --disable-xvmc
|
||||
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)
|
||||
# ABI change between 20090326 and 20100201
|
||||
BUILDLINK_API_DEPENDS.x264-devel+= x264-devel>=20111207
|
||||
CONFIGURE_ARGS+= --enable-libx264
|
||||
.include "../../multimedia/x264-devel/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
|
||||
|
||||
# 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
|
|
@ -0,0 +1,15 @@
|
|||
$NetBSD$
|
||||
|
||||
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
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
$NetBSD$
|
||||
|
||||
Enable PIC on NetBSD, even on i386 to avoid text relocations.
|
||||
Do not use 'rsync'.
|
||||
Portability fixes.
|
||||
Search for 'sys/audioio.h' to support NetBSD audio.
|
||||
|
||||
--- configure.orig 2020-03-14 15:39:48.847772360 +0000
|
||||
+++ configure
|
||||
@@ -2115,6 +2115,7 @@ HEADERS_LIST="
|
||||
opencv2_core_core_c_h
|
||||
OpenGL_gl3_h
|
||||
poll_h
|
||||
+ sys_audioio_h
|
||||
sys_param_h
|
||||
sys_resource_h
|
||||
sys_select_h
|
||||
@@ -2257,7 +2258,6 @@ TOOLCHAIN_FEATURES="
|
||||
inline_asm_labels
|
||||
inline_asm_nonlocal_labels
|
||||
pragma_deprecated
|
||||
- rsync_contimeout
|
||||
symver_asm_label
|
||||
symver_gnu_asm
|
||||
vfp_args
|
||||
@@ -3331,6 +3331,8 @@ kmsgrab_indev_deps="libdrm"
|
||||
lavfi_indev_deps="avfilter"
|
||||
libcdio_indev_deps="libcdio"
|
||||
libdc1394_indev_deps="libdc1394"
|
||||
+nbsdaudio_indev_deps_any="sys_audioio_h"
|
||||
+nbsdaudio_outdev_deps_any="sys_audioio_h"
|
||||
openal_indev_deps="openal"
|
||||
opengl_outdev_deps="opengl"
|
||||
opengl_outdev_suggest="sdl2"
|
||||
@@ -4950,9 +4952,9 @@ elif enabled mips; then
|
||||
disable mipsdsp
|
||||
disable mipsdspr2
|
||||
# When gcc version less than 5.3.0, add -fno-expensive-optimizations flag.
|
||||
- if [ $cc == gcc ]; then
|
||||
+ if [ $cc = gcc ]; then
|
||||
gcc_version=$(gcc -dumpversion)
|
||||
- if [ "$(echo "$gcc_version 5.3.0" | tr " " "\n" | sort -rV | head -n 1)" == "$gcc_version" ]; then
|
||||
+ if [ "$(echo "$gcc_version 5.3.0" | tr " " "\n" | sort -rV | head -n 1)" = "$gcc_version" ]; then
|
||||
expensive_optimization_flag=""
|
||||
else
|
||||
expensive_optimization_flag="-fno-expensive-optimizations"
|
||||
@@ -5247,6 +5249,7 @@ case $target_os in
|
||||
;;
|
||||
netbsd)
|
||||
disable symver
|
||||
+ enable pic
|
||||
oss_indev_extralibs="-lossaudio"
|
||||
oss_outdev_extralibs="-lossaudio"
|
||||
enabled gcc || check_ldflags -Wl,-zmuldefs
|
||||
@@ -5639,10 +5642,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 <<EOF || die "endian test failed"
|
||||
-unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
|
||||
+test_exec <<EOF || enable bigendian
|
||||
+int main()
|
||||
+{
|
||||
+ long one = 1;
|
||||
+ return !(*((char *)(&one)));
|
||||
+}
|
||||
EOF
|
||||
-od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
|
||||
|
||||
check_cc const_nan math.h "struct { double d; } static const bar[] = { { NAN } }"
|
||||
|
||||
@@ -6427,7 +6433,6 @@ enabled makeinfo \
|
||||
disabled makeinfo_html && texi2html --help 2> /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
|
||||
|
||||
# check V4L2 codecs available in the API
|
||||
check_headers linux/fb.h
|
||||
@@ -6461,6 +6466,10 @@ check_headers "dev/bktr/ioctl_meteor.h d
|
||||
check_headers "dev/video/meteor/ioctl_meteor.h dev/video/bktr/ioctl_bt848.h" ||
|
||||
check_headers "dev/ic/bt8xx.h"
|
||||
|
||||
+if check_struct sys/audioio.h audio_info_t blocksize; then
|
||||
+ enable_sanitized sys/audioio.h
|
||||
+fi
|
||||
+
|
||||
if check_struct sys/soundcard.h audio_buf_info bytes; then
|
||||
enable_sanitized sys/soundcard.h
|
||||
else
|
|
@ -0,0 +1,31 @@
|
|||
$NetBSD$
|
||||
|
||||
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/%4.1) $(AVPROGS-yes:%=doc/%-all4.1) $(COMPONENTS-yes:%=doc/%4.1)
|
||||
+MANPAGES3 = $(LIBRARIES-yes:%=doc/%4.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/%4.1 doc/%4.3: TAG = MAN
|
||||
+doc/%4.1: doc/%.pod $(GENTEXI)
|
||||
$(M)pod2man --section=1 --center=" " --release=" " --date=" " $< > $@
|
||||
-doc/%.3: doc/%.pod $(GENTEXI)
|
||||
+doc/%4.3: doc/%.pod $(GENTEXI)
|
||||
$(M)pod2man --section=3 --center=" " --release=" " --date=" " $< > $@
|
||||
|
||||
$(DOCS) doc/doxy/html: | doc/
|
|
@ -0,0 +1,39 @@
|
|||
$NetBSD$
|
||||
|
||||
Add documentation for NetBSD audio.
|
||||
|
||||
--- doc/indevs.texi.orig 2019-12-31 21:35:22.000000000 +0000
|
||||
+++ doc/indevs.texi
|
||||
@@ -1083,6 +1083,32 @@ Set the video size given as a string suc
|
||||
Default is @code{qvga}.
|
||||
@end table
|
||||
|
||||
+@section nbsdaudio
|
||||
+
|
||||
+NetBSD audio input device.
|
||||
+
|
||||
+The filename to provide to the input device is the device node
|
||||
+representing the audio input device, and is usually set to
|
||||
+@file{/dev/audio}.
|
||||
+
|
||||
+For example to grab from @file{/dev/audio} using @command{ffmpeg} use the
|
||||
+command:
|
||||
+@example
|
||||
+ffmpeg -f nbsdaudio -i /dev/audio /tmp/netbsd.wav
|
||||
+@end example
|
||||
+
|
||||
+@subsection Options
|
||||
+
|
||||
+@table @option
|
||||
+
|
||||
+@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 openal
|
||||
|
||||
The OpenAL input device provides audio capture on all systems with a
|
|
@ -0,0 +1,17 @@
|
|||
$NetBSD$
|
||||
|
||||
Add documentation for NetBSD audio.
|
||||
|
||||
--- doc/outdevs.texi.orig 2019-12-31 21:35:22.000000000 +0000
|
||||
+++ doc/outdevs.texi
|
||||
@@ -220,6 +220,10 @@ ffmpeg -re -i INPUT -c:v rawvideo -pix_f
|
||||
|
||||
See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
|
||||
|
||||
+@section nbsdaudio
|
||||
+
|
||||
+NetBSD audio output.
|
||||
+
|
||||
@section opengl
|
||||
OpenGL output device.
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
$NetBSD$
|
||||
|
||||
Add support for NetBSD audio.
|
||||
|
||||
--- libavdevice/Makefile.orig 2019-12-31 21:35:24.000000000 +0000
|
||||
+++ libavdevice/Makefile
|
||||
@@ -32,6 +32,8 @@ OBJS-$(CONFIG_IEC61883_INDEV)
|
||||
OBJS-$(CONFIG_JACK_INDEV) += jack.o timefilter.o
|
||||
OBJS-$(CONFIG_KMSGRAB_INDEV) += kmsgrab.o
|
||||
OBJS-$(CONFIG_LAVFI_INDEV) += lavfi.o
|
||||
+OBJS-$(CONFIG_NBSDAUDIO_INDEV) += nbsdaudio_dec.o nbsdaudio.o
|
||||
+OBJS-$(CONFIG_NBSDAUDIO_OUTDEV) += nbsdaudio_enc.o nbsdaudio.o
|
||||
OBJS-$(CONFIG_OPENAL_INDEV) += openal-dec.o
|
||||
OBJS-$(CONFIG_OPENGL_OUTDEV) += opengl_enc.o
|
||||
OBJS-$(CONFIG_OSS_INDEV) += oss_dec.o oss.o
|
|
@ -0,0 +1,15 @@
|
|||
$NetBSD$
|
||||
|
||||
Add support for NetBSD audio.
|
||||
|
||||
--- libavdevice/alldevices.c.orig 2019-12-31 21:35:24.000000000 +0000
|
||||
+++ libavdevice/alldevices.c
|
||||
@@ -40,6 +40,8 @@ extern AVInputFormat ff_iec61883_demuxe
|
||||
extern AVInputFormat ff_jack_demuxer;
|
||||
extern AVInputFormat ff_kmsgrab_demuxer;
|
||||
extern AVInputFormat ff_lavfi_demuxer;
|
||||
+extern AVInputFormat ff_nbsdaudio_demuxer;
|
||||
+extern AVOutputFormat ff_nbsdaudio_muxer;
|
||||
extern AVInputFormat ff_openal_demuxer;
|
||||
extern AVOutputFormat ff_opengl_muxer;
|
||||
extern AVInputFormat ff_oss_demuxer;
|
|
@ -0,0 +1,136 @@
|
|||
$NetBSD$
|
||||
|
||||
Add support for NetBSD audio.
|
||||
|
||||
--- libavdevice/nbsdaudio.c.orig 2020-03-14 15:39:35.169889227 +0000
|
||||
+++ libavdevice/nbsdaudio.c
|
||||
@@ -0,0 +1,129 @@
|
||||
+/*
|
||||
+ * NetBSD play and grab interface
|
||||
+ * Copyright (c) 2020 Yorick Hardy
|
||||
+ *
|
||||
+ * 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 <string.h>
|
||||
+
|
||||
+#if HAVE_UNISTD_H
|
||||
+#include <unistd.h>
|
||||
+#endif
|
||||
+#include <fcntl.h>
|
||||
+#include <sys/audioio.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+
|
||||
+#include "libavutil/log.h"
|
||||
+
|
||||
+#include "libavcodec/avcodec.h"
|
||||
+#include "avdevice.h"
|
||||
+
|
||||
+#include "nbsdaudio.h"
|
||||
+
|
||||
+int ff_nbsdaudio_audio_open(AVFormatContext *s1, int is_output,
|
||||
+ const char *audio_device)
|
||||
+{
|
||||
+ NBSDAudioData *s = s1->priv_data;
|
||||
+ audio_info_t info;
|
||||
+ struct audio_prinfo *prinfo;
|
||||
+ int audio_fd, err;
|
||||
+
|
||||
+ if (is_output)
|
||||
+ audio_fd = avpriv_open(audio_device, O_WRONLY);
|
||||
+ else
|
||||
+ audio_fd = avpriv_open(audio_device, O_RDONLY);
|
||||
+ if (audio_fd < 0) {
|
||||
+ av_log(s1, AV_LOG_ERROR, "%s: %s\n", audio_device, av_err2str(AVERROR(errno)));
|
||||
+ return AVERROR(EIO);
|
||||
+ }
|
||||
+
|
||||
+#if 0
|
||||
+ /* non blocking mode */
|
||||
+ if (!is_output) {
|
||||
+ if (fcntl(audio_fd, F_SETFL, O_NONBLOCK) < 0) {
|
||||
+ av_log(s1, AV_LOG_WARNING, "%s: Could not enable non block mode (%s)\n", audio_device, av_err2str(AVERROR(errno)));
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
+ s->frame_size = NBSDAUDIO_BLOCK_SIZE;
|
||||
+
|
||||
+#define CHECK_IOCTL_ERROR(event) \
|
||||
+ if (err < 0) { \
|
||||
+ av_log(s1, AV_LOG_ERROR, #event ": %s\n", av_err2str(AVERROR(errno)));\
|
||||
+ goto fail; \
|
||||
+ }
|
||||
+
|
||||
+ AUDIO_INITINFO(&info);
|
||||
+
|
||||
+ if (is_output) {
|
||||
+ prinfo = &(info.play);
|
||||
+ info.mode = AUMODE_PLAY;
|
||||
+ } else {
|
||||
+ prinfo = &(info.record);
|
||||
+ info.mode = AUMODE_RECORD;
|
||||
+ }
|
||||
+
|
||||
+ prinfo->encoding = AUDIO_ENCODING_SLINEAR;
|
||||
+ prinfo->sample_rate = s->sample_rate;
|
||||
+ prinfo->channels = s->channels;
|
||||
+ prinfo->precision = 16;
|
||||
+ prinfo->pause = 0;
|
||||
+
|
||||
+ err=ioctl(audio_fd, AUDIO_SETINFO, &info);
|
||||
+ CHECK_IOCTL_ERROR(AUDIO_SETINFO)
|
||||
+
|
||||
+ err=ioctl(audio_fd, AUDIO_GETINFO, &info);
|
||||
+ CHECK_IOCTL_ERROR(AUDIO_GETINFO)
|
||||
+
|
||||
+ s->fd = audio_fd;
|
||||
+ if (is_output) {
|
||||
+ s->sample_rate = prinfo->sample_rate;
|
||||
+ s->channels = prinfo->channels;
|
||||
+ } else {
|
||||
+ s->sample_rate = prinfo->sample_rate;
|
||||
+ s->channels = prinfo->channels;
|
||||
+ }
|
||||
+
|
||||
+ switch(prinfo->encoding) {
|
||||
+ case AUDIO_ENCODING_SLINEAR_LE:
|
||||
+ s->codec_id = AV_CODEC_ID_PCM_S16LE;
|
||||
+ break;
|
||||
+ case AUDIO_ENCODING_SLINEAR_BE:
|
||||
+ s->codec_id = AV_CODEC_ID_PCM_S16BE;
|
||||
+ break;
|
||||
+ default:
|
||||
+ av_log(s1, AV_LOG_ERROR, "Soundcard does not support signed 16 bit sample format\n");
|
||||
+ close(audio_fd);
|
||||
+ return AVERROR(EIO);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+ fail:
|
||||
+ close(audio_fd);
|
||||
+ return AVERROR(EIO);
|
||||
+#undef CHECK_IOCTL_ERROR
|
||||
+}
|
||||
+
|
||||
+int ff_nbsdaudio_audio_close(NBSDAudioData *s)
|
||||
+{
|
||||
+ close(s->fd);
|
||||
+ return 0;
|
||||
+}
|
|
@ -0,0 +1,51 @@
|
|||
$NetBSD$
|
||||
|
||||
Add support for NetBSD audio.
|
||||
|
||||
--- libavdevice/nbsdaudio.h.orig 2020-03-14 15:39:35.182631007 +0000
|
||||
+++ libavdevice/nbsdaudio.h
|
||||
@@ -0,0 +1,44 @@
|
||||
+/*
|
||||
+ * 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_NBSDAUDIO_H
|
||||
+#define AVDEVICE_NBSDAUDIO_H
|
||||
+
|
||||
+#include "libavcodec/avcodec.h"
|
||||
+
|
||||
+#include "libavformat/avformat.h"
|
||||
+
|
||||
+#define NBSDAUDIO_BLOCK_SIZE 4096
|
||||
+
|
||||
+typedef struct NBSDAudioData {
|
||||
+ AVClass *class;
|
||||
+ int fd;
|
||||
+ int sample_rate;
|
||||
+ int channels;
|
||||
+ int frame_size; /* in bytes ! */
|
||||
+ enum AVCodecID codec_id;
|
||||
+ uint8_t buffer[NBSDAUDIO_BLOCK_SIZE];
|
||||
+ int buffer_ptr;
|
||||
+} NBSDAudioData;
|
||||
+
|
||||
+int ff_nbsdaudio_audio_open(AVFormatContext *s1, int is_output,
|
||||
+ const char *audio_device);
|
||||
+
|
||||
+int ff_nbsdaudio_audio_close(NBSDAudioData *s);
|
||||
+
|
||||
+#endif /* AVDEVICE_NBSDAUDIO_H */
|
|
@ -0,0 +1,157 @@
|
|||
$NetBSD$
|
||||
|
||||
Add support for NetBSD audio.
|
||||
|
||||
--- libavdevice/nbsdaudio_dec.c.orig 2020-03-14 15:39:35.195802010 +0000
|
||||
+++ libavdevice/nbsdaudio_dec.c
|
||||
@@ -0,0 +1,150 @@
|
||||
+/*
|
||||
+ * Sun and NetBSD play and grab interface
|
||||
+ * Copyright (c) 2020 Yorick Hardy
|
||||
+ *
|
||||
+ * 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 <stdint.h>
|
||||
+
|
||||
+#if HAVE_UNISTD_H
|
||||
+#include <unistd.h>
|
||||
+#endif
|
||||
+#include <fcntl.h>
|
||||
+#include <poll.h>
|
||||
+#include <sys/audioio.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+
|
||||
+#include "libavutil/internal.h"
|
||||
+#include "libavutil/opt.h"
|
||||
+#include "libavutil/time.h"
|
||||
+
|
||||
+#include "libavcodec/avcodec.h"
|
||||
+
|
||||
+#include "avdevice.h"
|
||||
+#include "libavformat/internal.h"
|
||||
+
|
||||
+#include "nbsdaudio.h"
|
||||
+
|
||||
+static int audio_read_header(AVFormatContext *s1)
|
||||
+{
|
||||
+ NBSDAudioData *s = s1->priv_data;
|
||||
+ AVStream *st;
|
||||
+ int ret;
|
||||
+ uint8_t b[4]; /* enough for 1 frame: 2 channels * 16 bit */
|
||||
+
|
||||
+ st = avformat_new_stream(s1, NULL);
|
||||
+ if (!st) {
|
||||
+ return AVERROR(ENOMEM);
|
||||
+ }
|
||||
+
|
||||
+ ret = ff_nbsdaudio_audio_open(s1, 0, s1->url);
|
||||
+ if (ret < 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 */
|
||||
+
|
||||
+ /* start recording */
|
||||
+ read(s->fd, b, 4);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int audio_read_packet(AVFormatContext *s1, AVPacket *pkt)
|
||||
+{
|
||||
+ NBSDAudioData *s = s1->priv_data;
|
||||
+ audio_info_t info;
|
||||
+ int ret, bdelay;
|
||||
+ int64_t cur_time;
|
||||
+ struct pollfd pfd;
|
||||
+
|
||||
+ if ((ret=av_new_packet(pkt, s->frame_size)) < 0)
|
||||
+ return ret;
|
||||
+
|
||||
+ pfd.fd = s->fd;
|
||||
+ pfd.events = POLLRDNORM;
|
||||
+ if ((poll(&pfd, 1, 0) != 1) || (pfd.revents != POLLRDNORM)) {
|
||||
+ av_packet_unref(pkt);
|
||||
+ pkt->size = 0;
|
||||
+ return AVERROR(EAGAIN);
|
||||
+ }
|
||||
+
|
||||
+ ret = read(s->fd, pkt->data, pkt->size);
|
||||
+ if (ret <= 0){
|
||||
+ av_packet_unref(pkt);
|
||||
+ pkt->size = 0;
|
||||
+ if (ret<0) return AVERROR(errno);
|
||||
+ else return AVERROR_EOF;
|
||||
+ }
|
||||
+ pkt->size = ret;
|
||||
+
|
||||
+ /* compute pts of the start of the packet */
|
||||
+ cur_time = av_gettime();
|
||||
+ bdelay = ret;
|
||||
+ if (ioctl(s->fd, AUDIO_GETBUFINFO, &info) == 0) {
|
||||
+ bdelay += info.record.seek;
|
||||
+ }
|
||||
+ /* subtract time represented by the number of bytes in the audio fifo */
|
||||
+ cur_time -= (bdelay * 1000000LL) / (s->sample_rate * s->channels);
|
||||
+
|
||||
+ /* convert to wanted units */
|
||||
+ pkt->pts = cur_time;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int audio_read_close(AVFormatContext *s1)
|
||||
+{
|
||||
+ NBSDAudioData *s = s1->priv_data;
|
||||
+
|
||||
+ ff_nbsdaudio_audio_close(s);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const AVOption options[] = {
|
||||
+ { "sample_rate", "", offsetof(NBSDAudioData, sample_rate), AV_OPT_TYPE_INT, {.i64 = 48000}, 1, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
|
||||
+ { "channels", "", offsetof(NBSDAudioData, channels), AV_OPT_TYPE_INT, {.i64 = 2}, 1, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
|
||||
+ { NULL },
|
||||
+};
|
||||
+
|
||||
+static const AVClass nbsdaudio_demuxer_class = {
|
||||
+ .class_name = "Sun audio demuxer",
|
||||
+ .item_name = av_default_item_name,
|
||||
+ .option = options,
|
||||
+ .version = LIBAVUTIL_VERSION_INT,
|
||||
+ .category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
|
||||
+};
|
||||
+
|
||||
+AVInputFormat ff_nbsdaudio_demuxer = {
|
||||
+ .name = "nbsdaudio",
|
||||
+ .long_name = NULL_IF_CONFIG_SMALL("Sun audio capture"),
|
||||
+ .priv_data_size = sizeof(NBSDAudioData),
|
||||
+ .read_header = audio_read_header,
|
||||
+ .read_packet = audio_read_packet,
|
||||
+ .read_close = audio_read_close,
|
||||
+ .flags = AVFMT_NOFILE,
|
||||
+ .priv_class = &nbsdaudio_demuxer_class,
|
||||
+};
|
|
@ -0,0 +1,120 @@
|
|||
$NetBSD$
|
||||
|
||||
Add support for NetBSD audio.
|
||||
|
||||
--- libavdevice/nbsdaudio_enc.c.orig 2020-03-14 15:39:35.204240213 +0000
|
||||
+++ libavdevice/nbsdaudio_enc.c
|
||||
@@ -0,0 +1,113 @@
|
||||
+/*
|
||||
+ * Sun and NetBSD play and grab interface
|
||||
+ * Copyright (c) 2020 Yorick Hardy
|
||||
+ *
|
||||
+ * 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"
|
||||
+
|
||||
+#if HAVE_UNISTD_H
|
||||
+#include <unistd.h>
|
||||
+#endif
|
||||
+#include <fcntl.h>
|
||||
+#include <sys/audioio.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+
|
||||
+#include "libavutil/internal.h"
|
||||
+
|
||||
+#include "libavcodec/avcodec.h"
|
||||
+
|
||||
+#include "avdevice.h"
|
||||
+#include "libavformat/internal.h"
|
||||
+
|
||||
+#include "nbsdaudio.h"
|
||||
+
|
||||
+static int audio_write_header(AVFormatContext *s1)
|
||||
+{
|
||||
+ NBSDAudioData *s = s1->priv_data;
|
||||
+ AVStream *st;
|
||||
+ int ret;
|
||||
+
|
||||
+ st = s1->streams[0];
|
||||
+ s->sample_rate = st->codecpar->sample_rate;
|
||||
+ s->channels = st->codecpar->channels;
|
||||
+ ret = ff_nbsdaudio_audio_open(s1, 1, s1->url);
|
||||
+ if (ret < 0) {
|
||||
+ return AVERROR(EIO);
|
||||
+ } else {
|
||||
+ return 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int audio_write_packet(AVFormatContext *s1, AVPacket *pkt)
|
||||
+{
|
||||
+ NBSDAudioData *s = s1->priv_data;
|
||||
+ int len, ret;
|
||||
+ int size= pkt->size;
|
||||
+ uint8_t *buf= pkt->data;
|
||||
+
|
||||
+ while (size > 0) {
|
||||
+ len = FFMIN(NBSDAUDIO_BLOCK_SIZE - s->buffer_ptr, size);
|
||||
+ memcpy(s->buffer + s->buffer_ptr, buf, len);
|
||||
+ s->buffer_ptr += len;
|
||||
+ if (s->buffer_ptr >= NBSDAUDIO_BLOCK_SIZE) {
|
||||
+ for(;;) {
|
||||
+ ret = write(s->fd, s->buffer, NBSDAUDIO_BLOCK_SIZE);
|
||||
+ 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)
|
||||
+{
|
||||
+ NBSDAudioData *s = s1->priv_data;
|
||||
+
|
||||
+ ff_nbsdaudio_audio_close(s);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const AVClass nbsdaudio_muxer_class = {
|
||||
+ .class_name = "NetBSD audio muxer",
|
||||
+ .item_name = av_default_item_name,
|
||||
+ .version = LIBAVUTIL_VERSION_INT,
|
||||
+ .category = AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT,
|
||||
+};
|
||||
+
|
||||
+AVOutputFormat ff_nbsdaudio_muxer = {
|
||||
+ .name = "nbsdaudio",
|
||||
+ .long_name = NULL_IF_CONFIG_SMALL("NetBSD audio playback"),
|
||||
+ .priv_data_size = sizeof(NBSDAudioData),
|
||||
+ /* XXX: we make the assumption that the soundcard accepts this format */
|
||||
+ /* 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 = &nbsdaudio_muxer_class,
|
||||
+};
|
|
@ -0,0 +1,17 @@
|
|||
$NetBSD$
|
||||
|
||||
Fix for NetBSD 7.
|
||||
|
||||
--- libavformat/sctp.c.orig 2018-02-12 19:57:53.000000000 +0000
|
||||
+++ libavformat/sctp.c
|
||||
@@ -40,6 +40,10 @@
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/sctp.h>
|
||||
|
||||
+#ifndef IPPROTO_SCTP
|
||||
+#define IPPROTO_SCTP 132
|
||||
+#endif
|
||||
+
|
||||
#include "config.h"
|
||||
|
||||
#if HAVE_POLL_H
|
|
@ -0,0 +1,29 @@
|
|||
$NetBSD$
|
||||
|
||||
Add required int includes on various opensource platforms.
|
||||
|
||||
--- libavutil/common.h.orig 2016-01-15 16:58:36.000000000 +0000
|
||||
+++ libavutil/common.h
|
||||
@@ -43,6 +43,22 @@
|
||||
#include "version.h"
|
||||
#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 <stdint.h>
|
||||
+#endif /* FreeBSD | OpenBSD | linux */
|
||||
+#if defined(__DragonFly__) || defined(__NetBSD__)
|
||||
+#include <machine/int_const.h>
|
||||
+#endif /* DragonFly | NetBSD */
|
||||
+#endif /* __cplusplus */
|
||||
+
|
||||
#if AV_HAVE_BIGENDIAN
|
||||
# define AV_NE(be, le) (be)
|
||||
#else
|
|
@ -0,0 +1,18 @@
|
|||
$NetBSD$
|
||||
|
||||
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"
|
|
@ -0,0 +1,22 @@
|
|||
$NetBSD$
|
||||
|
||||
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) {
|
Loading…
Reference in New Issue