From: Rafael Sadowski Subject: Re: UPDATE: FFmpeg 4.4.5 To: Brad Smith Cc: ports@openbsd.org Date: Thu, 1 Aug 2024 10:43:03 +0200 On Mon Jul 29, 2024 at 03:57:36AM UTC, Brad Smith wrote: > Here is an update to FFmpeg 4.4.5. Works in my setup. OK rsadowski > > > Index: graphics/ffmpeg/Makefile > =================================================================== > RCS file: /cvs/ports/graphics/ffmpeg/Makefile,v > retrieving revision 1.240 > diff -u -p -u -p -r1.240 Makefile > --- graphics/ffmpeg/Makefile 28 Jul 2024 06:38:23 -0000 1.240 > +++ graphics/ffmpeg/Makefile 29 Jul 2024 04:19:06 -0000 > @@ -1,9 +1,8 @@ > COMMENT= audio/video converter and streamer > > -V= 4.4.4 > +V= 4.4.5 > DISTNAME= ffmpeg-${V} > EPOCH= 1 > -REVISION= 6 > CATEGORIES= graphics multimedia > SITES= https://ffmpeg.org/releases/ > EXTRACT_SUFX= .tar.xz > @@ -68,16 +67,19 @@ LIB_DEPENDS= archivers/bzip2 \ > # inter-library dependencies for the current configuration > LIBavcodec_EXTRALIBS=-L${LOCALBASE}/lib -L${X11BASE}/lib -laom -ldav1d -lgsm -liconv -llzma > LIBavcodec_EXTRALIBS+=-lmp3lame -lopus -lspeex -ltheoradec -ltheoraenc -lvorbis > -LIBavcodec_EXTRALIBS+=-lvorbisenc -lvpx -lx264 -lx265 -lxvidcore -lm -lz -pthread > -LIBavcodec_EXTRALIBS+=-lva -lva-drm > +LIBavcodec_EXTRALIBS+=-lvorbisenc -lvpx -lx264 -lx265 -lxvidcore -lm -lz -lva > +LIBavcodec_EXTRALIBS+=-lva-drm -pthread > > LIBavdevice_EXTRALIBS=-L${LOCALBASE}/lib -L${X11BASE}/lib -lX11 -lXext -lXv > LIBavdevice_EXTRALIBS+=-lxcb-shape -lxcb-shm -lxcb-xfixes -lxcb -lsndio -lv4l2 -lm > > LIBavfilter_EXTRALIBS=-L${LOCALBASE}/lib -L${X11BASE}/lib -lass -lfontconfig > -LIBavfilter_EXTRALIBS+=-lfreetype -lfribidi -lvidstab -lm -lz -lzimg -pthread -lva > +LIBavfilter_EXTRALIBS+=-lfreetype -lfribidi -lvidstab -lm -lz -lzimg -lva -pthread > + > LIBavformat_EXTRALIBS=-L${LOCALBASE}/lib -lbz2 -lxml2 -lssl -lcrypto -lm -lz > + > LIBavutil_EXTRALIBS=-L${X11BASE}/lib -lva -lva-drm -lva-x11 -lm -pthread > + > LIBpostproc_EXTRALIBS=-lm > LIBswresample_EXTRALIBS=-lm > LIBswscale_EXTRALIBS=-lm > @@ -102,7 +104,6 @@ CONFIGURE_ARGS+=--enable-shared \ > --disable-stripping \ > --disable-indev=jack \ > --disable-outdev=sdl2 \ > - --enable-vaapi \ > --enable-fontconfig \ > --enable-frei0r \ > --enable-gpl \ > Index: graphics/ffmpeg/distinfo > =================================================================== > RCS file: /cvs/ports/graphics/ffmpeg/distinfo,v > retrieving revision 1.66 > diff -u -p -u -p -r1.66 distinfo > --- graphics/ffmpeg/distinfo 30 Apr 2023 05:25:28 -0000 1.66 > +++ graphics/ffmpeg/distinfo 29 Jul 2024 04:19:06 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (ffmpeg-4.4.4.tar.xz) = 6As4DVlcgJBg9m+WpdhJUR70p2omt26s9XeLlMNXAwk= > -SIZE (ffmpeg-4.4.4.tar.xz) = 9565584 > +SHA256 (ffmpeg-4.4.5.tar.xz) = +VFODTUVruWicSg99xY24dH/cnSxWFO82E4US+QWqwc= > +SIZE (ffmpeg-4.4.5.tar.xz) = 9575596 > Index: graphics/ffmpeg/patches/patch-configure > =================================================================== > RCS file: /cvs/ports/graphics/ffmpeg/patches/patch-configure,v > retrieving revision 1.72 > diff -u -p -u -p -r1.72 patch-configure > --- graphics/ffmpeg/patches/patch-configure 4 Dec 2022 20:12:36 -0000 1.72 > +++ graphics/ffmpeg/patches/patch-configure 29 Jul 2024 04:19:06 -0000 > @@ -1,4 +1,3 @@ > -- configure: use pkg-config for sndio > - configure: add initial RISC-V support > - Fix broken libatomic test > > @@ -43,7 +42,7 @@ Index: configure > s390) > check_64bit s390 s390x > enabled shared && enable_weak pic > -@@ -5378,7 +5386,6 @@ case $target_os in > +@@ -5379,7 +5387,6 @@ case $target_os in > enable section_data_rel_ro > striptype="" > SHFLAGS='-shared' > @@ -51,7 +50,7 @@ Index: configure > SLIB_INSTALL_LINKS= > oss_indev_extralibs="-lossaudio" > oss_outdev_extralibs="-lossaudio" > -@@ -5734,7 +5741,7 @@ set_default libdir > +@@ -5736,7 +5743,7 @@ set_default libdir > set_default $PATHS_LIST > set_default nm > > @@ -60,7 +59,7 @@ Index: configure > > enable_weak_pic() { > disabled pic && return > -@@ -6189,7 +6196,7 @@ check_headers asm/types.h > +@@ -6191,7 +6198,7 @@ check_headers asm/types.h > # > # some configurations also require linking to libatomic, so try > # both with -latomic and without > @@ -69,13 +68,3 @@ Index: configure > check_builtin stdatomic stdatomic.h \ > "atomic_int foo, bar = ATOMIC_VAR_INIT(-1); atomic_store(&foo, 0); foo += bar" \ > $LATOMIC && eval stdatomic_extralibs="\$LATOMIC" && break > -@@ -6657,7 +6664,8 @@ enabled alsa && { check_pkg_config alsa alsa "alsa/aso > - enabled libjack && > - require_pkg_config libjack jack jack/jack.h jack_port_get_latency_range > - > --enabled sndio && check_lib sndio sndio.h sio_open -lsndio > -+enabled sndio && { check_pkg_config sndio sndio "sndio.h" sio_open || > -+ check_lib sndio sndio.h sio_open -lsndio; } > - > - if enabled libcdio; then > - check_pkg_config libcdio libcdio_paranoia "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open || > Index: graphics/ffmpeg/patches/patch-libavcodec_libsvtav1_c > =================================================================== > RCS file: /cvs/ports/graphics/ffmpeg/patches/patch-libavcodec_libsvtav1_c,v > retrieving revision 1.3 > diff -u -p -u -p -r1.3 patch-libavcodec_libsvtav1_c > --- graphics/ffmpeg/patches/patch-libavcodec_libsvtav1_c 5 Dec 2022 10:03:55 -0000 1.3 > +++ graphics/ffmpeg/patches/patch-libavcodec_libsvtav1_c 29 Jul 2024 04:19:06 -0000 > @@ -13,7 +13,6 @@ > - avcodec/libsvtav1: update avctx bit rate according to RC mode > - avcodec/libsvtav1: signal CPB properties through side data > - avcodec/libsvtav1: properly initialize the flush EbBufferHeaderType struct > -- avcodec/libsvtav1: remove compressed_ten_bit_format and simplify alloc_buffer > - avcodec/libsvtav1: replace vbv_bufsize with maximum_buffer_size_ms > - avcodec/libsvtav1: only set max_buf_sz if both bitrate and rc_buf_sz is set > - avcodec/libsvtav1: don't force a default value for deprecated options > @@ -45,27 +44,7 @@ Index: libavcodec/libsvtav1.c > } SvtContext; > > static const struct { > -@@ -120,16 +123,12 @@ static int svt_print_error(void *log_ctx, EbErrorType > - > - static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) > - { > -- const int pack_mode_10bit = > -- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0; > -- const size_t luma_size_8bit = > -- config->source_width * config->source_height * (1 << pack_mode_10bit); > -- const size_t luma_size_10bit = > -- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0; > -+ const size_t luma_size = config->source_width * config->source_height * > -+ (config->encoder_bit_depth > 8 ? 2 : 1); > - > - EbSvtIOFormat *in_data; > - > -- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2; > -+ svt_enc->raw_size = luma_size * 3 / 2; > - > - // allocate buffer for in and out > - svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf)); > -@@ -151,11 +150,132 @@ static int config_enc_params(EbSvtAv1EncConfiguration > +@@ -147,11 +150,132 @@ static int config_enc_params(EbSvtAv1EncConfiguration > { > SvtContext *svt_enc = avctx->priv_data; > const AVPixFmtDescriptor *desc; > @@ -199,7 +178,7 @@ Index: libavcodec/libsvtav1.c > param->encoder_bit_depth = desc->comp[0].depth; > > if (desc->log2_chroma_w == 1 && desc->log2_chroma_h == 1) > -@@ -169,12 +289,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration > +@@ -165,12 +289,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration > return AVERROR(EINVAL); > } > > @@ -212,7 +191,7 @@ Index: libavcodec/libsvtav1.c > if ((param->encoder_color_format == EB_YUV422 || param->encoder_bit_depth > 10) > && param->profile != FF_PROFILE_AV1_PROFESSIONAL ) { > av_log(avctx, AV_LOG_WARNING, "Forcing Professional profile\n"); > -@@ -184,40 +298,21 @@ static int config_enc_params(EbSvtAv1EncConfiguration > +@@ -180,40 +298,21 @@ static int config_enc_params(EbSvtAv1EncConfiguration > param->profile = FF_PROFILE_AV1_HIGH; > } > > @@ -264,7 +243,7 @@ Index: libavcodec/libsvtav1.c > return 0; > } > > -@@ -330,11 +425,8 @@ static int eb_send_frame(AVCodecContext *avctx, const > +@@ -326,11 +425,8 @@ static int eb_send_frame(AVCodecContext *avctx, const > if (svt_enc->eos_flag == EOS_SENT) > return 0; > > @@ -278,7 +257,7 @@ Index: libavcodec/libsvtav1.c > headerPtrLast.flags = EB_BUFFERFLAG_EOS; > > svt_av1_enc_send_picture(svt_enc->svt_handle, &headerPtrLast); > -@@ -350,6 +442,16 @@ static int eb_send_frame(AVCodecContext *avctx, const > +@@ -346,6 +442,16 @@ static int eb_send_frame(AVCodecContext *avctx, const > headerPtr->p_app_private = NULL; > headerPtr->pts = frame->pts; > > @@ -295,7 +274,7 @@ Index: libavcodec/libsvtav1.c > svt_av1_enc_send_picture(svt_enc->svt_handle, headerPtr); > > return 0; > -@@ -472,21 +574,22 @@ static av_cold int eb_enc_close(AVCodecContext *avctx) > +@@ -468,21 +574,22 @@ static av_cold int eb_enc_close(AVCodecContext *avctx) > #define OFFSET(x) offsetof(SvtContext, x) > #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM > static const AVOption options[] = { > @@ -327,7 +306,7 @@ Index: libavcodec/libsvtav1.c > > FF_AV1_PROFILE_OPTS > > -@@ -518,21 +621,20 @@ static const AVOption options[] = { > +@@ -514,21 +621,20 @@ static const AVOption options[] = { > { LEVEL("7.3", 73) }, > #undef LEVEL > > @@ -360,7 +339,7 @@ Index: libavcodec/libsvtav1.c > {NULL}, > }; > > -@@ -544,9 +646,10 @@ static const AVClass class = { > +@@ -540,9 +646,10 @@ static const AVClass class = { > }; > > static const AVCodecDefault eb_enc_defaults[] = { > @@ -373,7 +352,7 @@ Index: libavcodec/libsvtav1.c > { "qmax", "63" }, > { NULL }, > }; > -@@ -561,12 +664,11 @@ AVCodec ff_libsvtav1_encoder = { > +@@ -557,12 +664,11 @@ AVCodec ff_libsvtav1_encoder = { > .receive_packet = eb_receive_packet, > .close = eb_enc_close, > .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, > Index: graphics/ffmpeg/patches/patch-libavdevice_v4l2_c > =================================================================== > RCS file: graphics/ffmpeg/patches/patch-libavdevice_v4l2_c > diff -N graphics/ffmpeg/patches/patch-libavdevice_v4l2_c > --- graphics/ffmpeg/patches/patch-libavdevice_v4l2_c 23 Jul 2024 10:18:14 -0000 1.3 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,20 +0,0 @@ > -lavd/v4l2: Use proper field type for second parameter of ioctl() with BSD's > -9e674b31606c805dd31b4bb754364a72a5877238 > - > -Index: libavdevice/v4l2.c > ---- libavdevice/v4l2.c.orig > -+++ libavdevice/v4l2.c > -@@ -107,10 +107,10 @@ struct video_data { > - int (*open_f)(const char *file, int oflag, ...); > - int (*close_f)(int fd); > - int (*dup_f)(int fd); > --#ifdef __GLIBC__ > -- int (*ioctl_f)(int fd, unsigned long int request, ...); > --#else > -+#if defined(__sun) || defined(__BIONIC__) || defined(__musl__) /* POSIX-like */ > - int (*ioctl_f)(int fd, int request, ...); > -+#else > -+ int (*ioctl_f)(int fd, unsigned long int request, ...); > - #endif > - ssize_t (*read_f)(int fd, void *buffer, size_t n); > - void *(*mmap_f)(void *start, size_t length, int prot, int flags, int fd, int64_t offset); > Index: graphics/ffmpeg/patches/patch-libavformat_utils_c > =================================================================== > RCS file: graphics/ffmpeg/patches/patch-libavformat_utils_c > diff -N graphics/ffmpeg/patches/patch-libavformat_utils_c > --- graphics/ffmpeg/patches/patch-libavformat_utils_c 19 Dec 2023 09:00:06 -0000 1.7 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,24 +0,0 @@ > -llvm 16 optimizations lead to a segfault when seeking in opus files because > -checks that could leave pos_max uninitialized are optimized away, leading > -to out-of-bounds reads from the guard pages. > - > -av_uninit() is complete batshittery: > - > -https://marc.info/?l=openbsd-ports&m=170284868209618&w=2 > - > -Turns out the same commit has landed upstream: > - > -https://github.com/FFmpeg/FFmpeg/commit/ab792634197e364ca1bb194f9abe36836e42f12d > - > -Index: libavformat/utils.c > ---- libavformat/utils.c.orig > -+++ libavformat/utils.c > -@@ -2146,7 +2146,7 @@ int ff_seek_frame_binary(AVFormatContext *s, int strea > - int64_t target_ts, int flags) > - { > - const AVInputFormat *avif = s->iformat; > -- int64_t av_uninit(pos_min), av_uninit(pos_max), pos, pos_limit; > -+ int64_t pos_min = 0, pos_max = 0, pos, pos_limit; > - int64_t ts_min, ts_max, ts; > - int index; > - int64_t ret; > Index: x11/mplayer/Makefile > =================================================================== > RCS file: /cvs/ports/x11/mplayer/Makefile,v > retrieving revision 1.329 > diff -u -p -u -p -r1.329 Makefile > --- x11/mplayer/Makefile 27 Sep 2023 20:37:18 -0000 1.329 > +++ x11/mplayer/Makefile 29 Jul 2024 04:19:06 -0000 > @@ -1,9 +1,9 @@ > COMMENT= movie player supporting many formats > > V= 20230409 > -FFMPEG_V= 4.4.4 > +FFMPEG_V= 4.4.5 > DISTNAME= mplayer-${V} > -REVISION= 1 > +REVISION= 2 > CATEGORIES= x11 multimedia > SITES= https://comstyle.com/source/ > EXTRACT_SUFX= .tar.xz >