From nobody Sat Nov 23 08:54:26 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4XwQkq1sRmz5fBfq; Sat, 23 Nov 2024 08:54:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XwQkq0ZPjz4f44; Sat, 23 Nov 2024 08:54:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1732352067; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h43bP4ffBMcIJQsBM1zN7WETYRex+IrBywMfkuSCAPQ=; b=ut/tT8oZLGW6ajUNYlz3FLqp7bG/9KWlUUIjd1x52+Rhl17WXyXYzoH94OhHi5NYo1zsu6 Y6c3vLnKLMkHlBlSguupp4TmMjoeFppScBd32E4z0nPzivChAV+enHRfyBPwNo5hu8+cZa JGyc0WLJHPto7WqKaRqTsWzL8542Cid/6K5SsFezACM+xf7riZj9dl+qt6IRHTpuhQmosI u/Kdx9bSNt6B3IKUl4R77zjJOem5oaMM+bB+oPlJ2u9nRxVlcmf8pKT1tvXq20/wMTz1dy SQjaaTGHyRXAfypX5rONWmZLF7U9HSmq/9+c1WNxGtGxhPOLL321sXJRVH3tug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1732352067; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h43bP4ffBMcIJQsBM1zN7WETYRex+IrBywMfkuSCAPQ=; b=seEjq38H7cJy0+txUvuGTDKDFZZUKkAcEPA04St9d6prustvTuz4JrBHnwbpfeIC27I5Tx 7+onKzB3xRvt5sk3SiGwwLjkEWNsrs3mY2u0sZoMhR7msXUd4z7FXG1TtrwxujpCUWJtuc 1Ao/ZLvg7en4hTRZdvtzqp7r1YQ1eVnZSAF7ohRjetYK1SiGbpaT/FCkW/qdZmXcN+jidL QAkyzBjZTutrOqA4g1f+eOPH/GxwYKD2DdiwYvLrAfKm13t507t/UK0BTTJLGAIJgGBzwE 2Qmz0OTXBAxW92Jx8SSi/HTAOa/lmDPlVDoaJYkV1PBuvpR7i0HDmuV4FifgTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1732352067; a=rsa-sha256; cv=none; b=BrdfdYAkaspY9R8MBRnWHzP4P7h49VH6yLEkgJNVNLLXQ4h1N6+smuPtdwTSj9NSt9LoYP t/3VCc9Jufly7KpSuF0N1J/cR8Z/uNW5iZeXf0oG0I7pk3j72Uhe2KPhpnLBdTmoSXD7J+ MYkAW52xuT73PVbqFzXBLcxgtQ3L8EybrzruFI0RoEXEjdmZA2j8xbhU8StXBMe0AgjVZH A4+TZea5m2uxDjrSqHlW4zNuHzrrnS89To5lUDjenbeDPtsk51stobYken6C3nCu+QrZ2v RYLF5PVJUz3dp2fNI746mQoY3lIXqQiVwDeXGtWZK9Zbyywr8j/jJ7FE1Sf+QA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4XwQkq03Ptz130k; Sat, 23 Nov 2024 08:54:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4AN8sQZd074411; Sat, 23 Nov 2024 08:54:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4AN8sQwG074408; Sat, 23 Nov 2024 08:54:26 GMT (envelope-from git) Date: Sat, 23 Nov 2024 08:54:26 GMT Message-Id: <202411230854.4AN8sQwG074408@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Daniel Engberg <diizzy@FreeBSD.org> Subject: git: 2438c611d737 - main - multimedia/ffmpeg3: New port: Legacy branch of ffmpeg 3.* List-Id: Commits to the main branch of the FreeBSD ports repository <dev-commits-ports-main.freebsd.org> List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: <mailto:dev-commits-ports-main+help@freebsd.org> List-Post: <mailto:dev-commits-ports-main@freebsd.org> List-Subscribe: <mailto:dev-commits-ports-main+subscribe@freebsd.org> List-Unsubscribe: <mailto:dev-commits-ports-main+unsubscribe@freebsd.org> X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: diizzy X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2438c611d73764c64186c48b2789036602f7bd21 Auto-Submitted: auto-generated The branch main has been updated by diizzy: URL: https://cgit.FreeBSD.org/ports/commit/?id=2438c611d73764c64186c48b2789036602f7bd21 commit 2438c611d73764c64186c48b2789036602f7bd21 Author: Kevin Reinholz <kreinholz@gmail.com> AuthorDate: 2024-11-17 05:16:29 +0000 Commit: Daniel Engberg <diizzy@FreeBSD.org> CommitDate: 2024-11-23 08:42:35 +0000 multimedia/ffmpeg3: New port: Legacy branch of ffmpeg 3.* To be used exclusively with emulators/ppsspp as newer versions are incompatible due to how the hardware in the Sony PSP works. FFmpeg is stripped down to avoid incompatbilities with external dependencies, only provides static libraries to avoid getting pull in unintentionally and is statically linked to PPSSPP. PR: 282188, 282792 --- multimedia/Makefile | 1 + multimedia/ffmpeg3/Makefile | 128 ++++++++++++++++++++++ multimedia/ffmpeg3/distinfo | 5 + multimedia/ffmpeg3/files/patch-configure | 17 +++ multimedia/ffmpeg3/files/patch-libavformat_rtsp.c | 44 ++++++++ multimedia/ffmpeg3/files/patch-libavutil_common.h | 13 +++ multimedia/ffmpeg3/override.mk | 8 ++ multimedia/ffmpeg3/pkg-descr | 3 + multimedia/ffmpeg3/pkg-plist | 99 +++++++++++++++++ 9 files changed, 318 insertions(+) diff --git a/multimedia/Makefile b/multimedia/Makefile index dc98f7652001..2257a624a998 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -57,6 +57,7 @@ SUBDIR += ffaudioconverter SUBDIR += ffdec SUBDIR += ffmpeg + SUBDIR += ffmpeg3 SUBDIR += ffmpeg4 SUBDIR += ffmpegthumbnailer SUBDIR += ffms2 diff --git a/multimedia/ffmpeg3/Makefile b/multimedia/ffmpeg3/Makefile new file mode 100644 index 000000000000..5da288bac41c --- /dev/null +++ b/multimedia/ffmpeg3/Makefile @@ -0,0 +1,128 @@ +PORTNAME= ffmpeg +DISTVERSION= 3.0.2 +CATEGORIES= multimedia audio net +MASTER_SITES= https://ffmpeg.org/releases/ +PKGNAMESUFFIX= 3 + +PATCH_SITES= https://github.com/hrydgard/ppsspp-ffmpeg/commit/ +PATCHFILES= 9c4f84d9d9ad147f4a44cff582829647a0c65420.patch:-p1 + +MAINTAINER= kreinholz@gmail.com +COMMENT= Realtime audio/video encoder/converter and streaming server (legacy 3.* series) +WWW= https://ffmpeg.org/ + +LICENSE= GPLv2+ LGPL21+ +LICENSE_COMB= multi + +NOT_FOR_ARCHS= mips mips64 powerpc powerpc64 powerpcspe +NOT_FOR_ARCHS_REASON= emulators/ppsspp only supports little-endian, see \ + https://github.com/hrydgard/ppsspp/issues/8823 + +USES= compiler:c11 cpe gmake localbase:ldflags perl5 pkgconfig \ + shebangfix tar:xz +USE_PERL5= build +SHEBANG_FILES= doc/texi2pod.pl +USE_LDCONFIG= yes + +.ifdef PKGNAMESUFFIX +PORTSCOUT= limit:^3\. +PREFIX= ${LOCALBASE}/${PKGBASE} # avoid conflict with the default +.endif + +HAS_CONFIGURE= yes +CONFIGURE_LOG= ffbuild/config.log + +LDFLAGS_aarch64=-Wl,-z,notext + +INSTALL_TARGET= install-libs install-headers + +NOPRECIOUSMAKEVARS= yes +MAKE_ENV+= V=1 + +.if defined(WITH_DEBUG) +CONFIGURE_ARGS= --disable-stripping +.else +CONFIGURE_ARGS= --disable-debug +.endif + +CONFIGURE_ARGS+=--prefix="${PREFIX}" \ + --pkgconfigdir="${PREFIX}/libdata/pkgconfig" \ + --enable-static \ + --disable-shared \ + --enable-pic \ + --enable-zlib \ + --disable-everything \ + --enable-gpl \ + --cc="${CC}" \ + --cxx="${CXX}" \ + --disable-avdevice \ + --disable-filters \ + --disable-programs \ + --disable-network \ + --disable-avfilter \ + --disable-postproc \ + --disable-encoders \ + --disable-doc \ + --disable-ffplay \ + --disable-ffprobe \ + --disable-ffserver \ + --disable-ffmpeg \ + --enable-decoder=h264 \ + --enable-decoder=mpeg4 \ + --enable-decoder=h263 \ + --enable-decoder=h263p \ + --enable-decoder=mpeg2video \ + --enable-decoder=mjpeg \ + --enable-decoder=mjpegb \ + --enable-decoder=aac \ + --enable-decoder=aac_latm \ + --enable-decoder=atrac3 \ + --enable-decoder=atrac3p \ + --enable-decoder=mp3 \ + --enable-decoder=pcm_s16le \ + --enable-decoder=pcm_s8 \ + --enable-demuxer=h264 \ + --enable-demuxer=h263 \ + --enable-demuxer=m4v \ + --enable-demuxer=mpegps \ + --enable-demuxer=mpegvideo \ + --enable-demuxer=avi \ + --enable-demuxer=mp3 \ + --enable-demuxer=aac \ + --enable-demuxer=pmp \ + --enable-demuxer=oma \ + --enable-demuxer=pcm_s16le \ + --enable-demuxer=pcm_s8 \ + --enable-demuxer=wav \ + --enable-encoder=ffv1 \ + --enable-encoder=huffyuv \ + --enable-encoder=mpeg4 \ + --enable-encoder=pcm_s16le \ + --enable-muxer=avi \ + --enable-parser=h264 \ + --enable-parser=mpeg4video \ + --enable-parser=mpegvideo \ + --enable-parser=aac \ + --enable-parser=aac_latm \ + --enable-parser=mpegaudio \ + --enable-protocol=file \ + --disable-sdl \ + --disable-asm \ + --disable-iconv \ + --disable-vaapi \ + --disable-hwaccels + +OPTIONS_DEFINE= LTO OPTIMIZED_CFLAGS RTCPU +OPTIONS_DEFAULT= LTO OPTIMIZED_CFLAGS +OPTIONS_DEFAULT_amd64= RTCPU +OPTIONS_EXCLUDE_aarch64=RTCPU + +RTCPU_DESC= Detect CPU capabilities at runtime + +LTO_CONFIGURE_ENABLE= lto + +OPTIMIZED_CFLAGS_CONFIGURE_ENABLE= optimizations + +RTCPU_CONFIGURE_ENABLE= runtime-cpudetect + +.include <bsd.port.mk> diff --git a/multimedia/ffmpeg3/distinfo b/multimedia/ffmpeg3/distinfo new file mode 100644 index 000000000000..4707639a5537 --- /dev/null +++ b/multimedia/ffmpeg3/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1730140299 +SHA256 (ffmpeg-3.0.2.tar.xz) = 82943cc7b0c4d14b612404de0dd7b24cd8ca3511d51e4fd3ae36b2d71bb95223 +SIZE (ffmpeg-3.0.2.tar.xz) = 7461808 +SHA256 (9c4f84d9d9ad147f4a44cff582829647a0c65420.patch) = 120263d3b5a97e98ed9968d3a69da1e6e0770b870f4d0e5cb30e64a8036bdf60 +SIZE (9c4f84d9d9ad147f4a44cff582829647a0c65420.patch) = 1135 diff --git a/multimedia/ffmpeg3/files/patch-configure b/multimedia/ffmpeg3/files/patch-configure new file mode 100644 index 000000000000..dc52cf1ac148 --- /dev/null +++ b/multimedia/ffmpeg3/files/patch-configure @@ -0,0 +1,17 @@ +--- configure.orig 2024-05-15 16:58:49 UTC ++++ configure +@@ -3024,13 +3024,7 @@ host_os=$target_os_default + target_os_default=$(tolower $(uname -s)) + host_os=$target_os_default + +-# machine +-if test "$target_os_default" = aix; then +- arch_default=$(uname -p) +- strip_default="strip -X32_64" +-else +- arch_default=$(uname -m) +-fi ++arch_default=$(uname -p) + cpu="generic" + intrinsics="none" + diff --git a/multimedia/ffmpeg3/files/patch-libavformat_rtsp.c b/multimedia/ffmpeg3/files/patch-libavformat_rtsp.c new file mode 100644 index 000000000000..ba9e13d5b3e8 --- /dev/null +++ b/multimedia/ffmpeg3/files/patch-libavformat_rtsp.c @@ -0,0 +1,44 @@ +--- libavformat/rtsp.c.orig 2024-05-15 16:46:06 UTC ++++ libavformat/rtsp.c +@@ -1607,7 +1607,12 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, con + } + if (ttl > 0) + snprintf(optbuf, sizeof(optbuf), "?ttl=%d", ttl); +- getnameinfo((struct sockaddr*) &addr, sizeof(addr), ++ getnameinfo((struct sockaddr*) &addr, ++#if HAVE_STRUCT_SOCKADDR_SA_LEN ++ ((struct sockaddr*) &addr)->sa_len, ++#else ++ sizeof(addr), ++#endif + namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST); + ff_url_join(url, sizeof(url), "rtp", NULL, namebuf, + port, "%s", optbuf); +@@ -1815,8 +1820,13 @@ redirect: + goto fail; + } + if (!getpeername(tcp_fd, (struct sockaddr*) &peer, &peer_len)) { +- getnameinfo((struct sockaddr*) &peer, peer_len, host, sizeof(host), +- NULL, 0, NI_NUMERICHOST); ++ getnameinfo((struct sockaddr*) &peer, ++#if HAVE_STRUCT_SOCKADDR_SA_LEN ++ ((struct sockaddr*) &peer)->sa_len, ++#else ++ peer_len, ++#endif ++ host, sizeof(host), NULL, 0, NI_NUMERICHOST); + } + + /* request options supported by the server; this also detects server +@@ -2295,7 +2305,11 @@ static int sdp_read_header(AVFormatContext *s) + AVDictionary *opts = map_to_opts(rt); + + err = getnameinfo((struct sockaddr*) &rtsp_st->sdp_ip, ++#if HAVE_STRUCT_SOCKADDR_SA_LEN ++ ((struct sockaddr*) &rtsp_st->sdp_ip)->sa_len, ++#else + sizeof(rtsp_st->sdp_ip), ++#endif + namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST); + if (err) { + av_log(s, AV_LOG_ERROR, "getnameinfo: %s\n", gai_strerror(err)); diff --git a/multimedia/ffmpeg3/files/patch-libavutil_common.h b/multimedia/ffmpeg3/files/patch-libavutil_common.h new file mode 100644 index 000000000000..d1f70b663a7f --- /dev/null +++ b/multimedia/ffmpeg3/files/patch-libavutil_common.h @@ -0,0 +1,13 @@ +--- libavutil/common.h.orig 2024-05-15 16:55:52 UTC ++++ libavutil/common.h +@@ -50,6 +50,10 @@ + # define AV_NE(be, le) (le) + #endif + ++#ifndef UINT64_C ++#define UINT64_C(c) (c ## UL) ++#endif ++ + //rounded division & shift + #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) + /* assume b>0 */ diff --git a/multimedia/ffmpeg3/override.mk b/multimedia/ffmpeg3/override.mk new file mode 100644 index 000000000000..2141b02b8266 --- /dev/null +++ b/multimedia/ffmpeg3/override.mk @@ -0,0 +1,8 @@ +FF_SUFFIX= 3 + +BUILD_DEPENDS:= ${BUILD_DEPENDS:S/ffmpeg/&${FF_SUFFIX}/g} +LIB_DEPENDS:= ${LIB_DEPENDS:S/ffmpeg$/&${FF_SUFFIX}/} + +USES+= localbase # -isystem +CONFIGURE_ENV+= PKG_CONFIG_PATH="${LOCALBASE}/ffmpeg${FF_SUFFIX}/libdata/pkgconfig" +MAKE_ENV+= PKG_CONFIG_PATH="${LOCALBASE}/ffmpeg${FF_SUFFIX}/libdata/pkgconfig" diff --git a/multimedia/ffmpeg3/pkg-descr b/multimedia/ffmpeg3/pkg-descr new file mode 100644 index 000000000000..e8c52c22f088 --- /dev/null +++ b/multimedia/ffmpeg3/pkg-descr @@ -0,0 +1,3 @@ +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 is a custom build of FFmpeg-3.0.2, a legacy version released in 2016, intended for use with PPSSPP. diff --git a/multimedia/ffmpeg3/pkg-plist b/multimedia/ffmpeg3/pkg-plist new file mode 100644 index 000000000000..a700a44512de --- /dev/null +++ b/multimedia/ffmpeg3/pkg-plist @@ -0,0 +1,99 @@ +include/libavcodec/avcodec.h +include/libavcodec/avdct.h +include/libavcodec/avfft.h +include/libavcodec/d3d11va.h +include/libavcodec/dirac.h +include/libavcodec/dv_profile.h +include/libavcodec/dxva2.h +include/libavcodec/qsv.h +include/libavcodec/vaapi.h +include/libavcodec/vda.h +include/libavcodec/vdpau.h +include/libavcodec/version.h +include/libavcodec/videotoolbox.h +include/libavcodec/vorbis_parser.h +include/libavcodec/xvmc.h +include/libavformat/avformat.h +include/libavformat/avio.h +include/libavformat/version.h +include/libavutil/adler32.h +include/libavutil/aes.h +include/libavutil/aes_ctr.h +include/libavutil/attributes.h +include/libavutil/audio_fifo.h +include/libavutil/avassert.h +include/libavutil/avconfig.h +include/libavutil/avstring.h +include/libavutil/avutil.h +include/libavutil/base64.h +include/libavutil/blowfish.h +include/libavutil/bprint.h +include/libavutil/bswap.h +include/libavutil/buffer.h +include/libavutil/camellia.h +include/libavutil/cast5.h +include/libavutil/channel_layout.h +include/libavutil/common.h +include/libavutil/cpu.h +include/libavutil/crc.h +include/libavutil/des.h +include/libavutil/dict.h +include/libavutil/display.h +include/libavutil/downmix_info.h +include/libavutil/error.h +include/libavutil/eval.h +include/libavutil/ffversion.h +include/libavutil/fifo.h +include/libavutil/file.h +include/libavutil/frame.h +include/libavutil/hash.h +include/libavutil/hmac.h +include/libavutil/imgutils.h +include/libavutil/intfloat.h +include/libavutil/intreadwrite.h +include/libavutil/lfg.h +include/libavutil/log.h +include/libavutil/macros.h +include/libavutil/mastering_display_metadata.h +include/libavutil/mathematics.h +include/libavutil/md5.h +include/libavutil/mem.h +include/libavutil/motion_vector.h +include/libavutil/murmur3.h +include/libavutil/opt.h +include/libavutil/parseutils.h +include/libavutil/pixdesc.h +include/libavutil/pixelutils.h +include/libavutil/pixfmt.h +include/libavutil/random_seed.h +include/libavutil/rational.h +include/libavutil/rc4.h +include/libavutil/replaygain.h +include/libavutil/ripemd.h +include/libavutil/samplefmt.h +include/libavutil/sha.h +include/libavutil/sha512.h +include/libavutil/stereo3d.h +include/libavutil/tea.h +include/libavutil/threadmessage.h +include/libavutil/time.h +include/libavutil/timecode.h +include/libavutil/timestamp.h +include/libavutil/tree.h +include/libavutil/twofish.h +include/libavutil/version.h +include/libavutil/xtea.h +include/libswresample/swresample.h +include/libswresample/version.h +include/libswscale/swscale.h +include/libswscale/version.h +lib/libavcodec.a +lib/libavformat.a +lib/libavutil.a +lib/libswresample.a +lib/libswscale.a +libdata/pkgconfig/libavcodec.pc +libdata/pkgconfig/libavformat.pc +libdata/pkgconfig/libavutil.pc +libdata/pkgconfig/libswresample.pc +libdata/pkgconfig/libswscale.pc