From patchwork Wed Aug 21 18:46:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 8043 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R11" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4WpwK727HWz3wwl for ; Wed, 21 Aug 2024 18:46:19 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4WpwK65wQcz1GP; Wed, 21 Aug 2024 18:46:18 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4WpwK65MmVz345C; Wed, 21 Aug 2024 18:46:18 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R11" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4WpwK45NrYz2ybk for ; Wed, 21 Aug 2024 18:46:16 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (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) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4WpwK41lrpz1GP; Wed, 21 Aug 2024 18:46:16 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1724265976; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=gyua9FoeU05eDxGuPpMx1/Up+VxYWxZ6KvdpprfE3sw=; b=USMzIUc+q9DUQazx5bAgDXmVHbFjZJJ/GBXuFcsm7sy6KpF9PIMN2M0AyJCHDO8jBPeKyI 4GhW5d4dXYF3EDDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1724265976; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=gyua9FoeU05eDxGuPpMx1/Up+VxYWxZ6KvdpprfE3sw=; b=KbXgl2dta91eddK2kjWUMpwUckx0EymwHV11PW4q2daEq+FKvyT6SnGenWuTz/+VQ7Pma4 +M5cBnKi2N2FdD8Gs1NrUpHTPkAV2B/4onc4JqbfgqkoYfE0Eikp7kWXuSy/67oJHxn2QO WSaaZOxqf1xXEduiRArwf+rQ7wV+YX1XhB9RT4TPK7odjzQ6Pj0ktKkYt513kU0Mn9fg0s U7imN5gpT1Ho/HFVjF5zbPSxDT1fEBizQ5Er7AZWYBxS5XqaH3dX8klbCsdTX9kTxiiH+4 t9cHSYqa4oSqcV2xbEN5q8e7cEpLvOciYCz4hLq0eo+8JqH0WQ382RxoSqQZRQ== From: Adolf Belka To: development@lists.ipfire.org Subject: [PATCH 1/4] ffmpeg: Update to version 7.0.2 Date: Wed, 21 Aug 2024 20:46:08 +0200 Message-ID: <20240821184611.1906582-1-adolf.belka@ipfire.org> MIME-Version: 1.0 Message-ID-Hash: 3OAASUXTWWNQWWJFCFJIS3KGXY2FCUUC X-Message-ID-Hash: 3OAASUXTWWNQWWJFCFJIS3KGXY2FCUUC X-MailFrom: adolf.belka@ipfire.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: IPFire development talk Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: - Update from version 6.0 to 7.0.2 - Removal of mathpops patch as content now included in source tarball. - Update of rootfile - sobump means that mpd, shairport-sync and minidlna need to be shipped - minidlna also requires an update due to a variable name change from ffmpeg-7.0 onwards - Changelog 7.0.2 avcodec/snow: Fix off by 1 error in run_buffer avcodec/utils: apply the same alignment to YUV410 as we do to YUV420 for snow avformat/iamf_parse: Check for 0 samples swscale: [loongarch] Fix checkasm-sw_yuv2rgb failure. avcodec/aacps_tablegen_template: don't redefine CONFIG_HARDCODED_TABLES avutil/hwcontext_vaapi: use the correct type for VASurfaceAttribExternalBuffers.buffers avcodec/pcm-bluray/dvd: Use correct pointer types on BE avcodec/pngenc: fix sBIT writing for indexed-color PNGs avcodec/pngdec: use 8-bit sBIT cap for indexed PNGs per spec avformat/mov: check that child boxes of trak are only present inside it avformat/mov: check that sample and chunk count is 1 for HEIF avcodec/videotoolboxenc: Fix bitrate doesn't work as expected avdevice/dshow: Don't skip audio devices if no video device is present avcodec/hdrenc: Allocate more space avcodec/cfhdenc: Height of 16 is not supported avcodec/cfhdenc: Allocate more space avcodec/osq: fix integer overflow when applying factor avcodec/osq: avoid using too large numbers for shifts and integers in update_residue_parameter() avcodec/vaapi_encode: Check hwctx avcodec/proresdec: Consider negative bits left avcodec/alsdec: Clear shift_value avcodec/hevc/hevcdec: Do not allow slices to depend on failed slices avformat/mov: add an EOF check in IPRP avfilter/vf_xfade: Check ff_inlink_consume_frame() for failure avutil/slicethread: Check pthread_*_init() for failure avutil/frame: Check log2_crop_align avutil/buffer: Check ff_mutex_init() for failure avformat/xmv: Check this_packet_size avformat/webpenc: Check filesize in trailer avformat/ty: rec_size seems to only need 32bit avformat/tty: Check avio_size() avformat/siff: Basic pkt_size check avformat/sauce: Check avio_size() for failure avformat/sapdec: Check ffurl_get_file_handle() for error avformat/nsvdec: Check asize for PCM avformat/mp3dec: Check header_filesize avformat/mp3dec; Check for avio_size() failure avformat/mov: Use 64bit for str_size avformat/mm: Check length avformat/hnm: Check *chunk_size avformat/hlsenc: Check ret avformat/bintext: Check avio_size() return avformat/asfdec_o: Check size of index object avfilter/vf_scale: Check ff_scale_adjust_dimensions() for failure avfilter/scale_eval: Use 64bit, check values in ff_scale_adjust_dimensions() avfilter/vf_lut3d: Check av_scanf() avfilter/vf_elbg: Use unsigned for shifting into the top bit avfilter/vf_premultiply: Use AV_PIX_MAX_PLANES avfilter/vf_deshake_opencl: Ensure that the first iteration initializes the best variables avformat/iamf_parse: Check for negative sample sizes swscale/output: Fix integer overflows in yuv2rgba64_X_c_template avformat/mxfdec: Reorder elements of expression in bisect loop avutil/timecode: Use a 64bit framenum internally avcodec/pnmdec: Use 64bit for input size check avformat/mov: Check extradata in mov_read_iacb() avcodec/mpeg12enc: Use av_rescale() in vbv_buffer_size computation avcodec/utvideoenc: Use unsigned shift to build flags avcodec/j2kenc: Merge dwt_norm into lambda avcodec/vc2enc: Fix overflows with storing large values avcodec/mpegvideo_enc: Do not duplicate pictures on shifting avdevice/dshow_capture: Fix error handling in ff_dshow_##prefix##_Create() avcodec/tiff: Check value on positive signed targets avfilter/vf_convolution_opencl: Assert that the filter name is one of the filters avfilter/vf_bm3d: Dont round MSE2SSE to an integer avdevice/dshow: Remove NULL check on pin avdevice/dshow: check ff_dshow_pin_ConnectionMediaType() for failure avdevice/dshow: Check device_filter_unique_name before use avdevice/dshow: Cleanup also on av_log case avdevice/dshow_filter: Use wcscpy_s() avcodec/flac_parser: Assert that we do not overrun the link_penalty array avcodec/osq: avoid signed overflow in downsample path avcodec/pixlet: Simplify pfx computation avcodec/motion_est: Fix score squaring overflow avcodec/mlpenc: Use 64 for ml, mr avcodec/loco: Check loco_get_rice() for failure avcodec/loco: check get_ur_golomb_jpegls() for failure avcodec/leaddec: Check init_get_bits8() for failure avcodec/imm4: check cbphi for error avcodec/iff: Use signed count avcodec/golomb: Assert that k is in the supported range for get_ur/sr_golomb() avcodec/golomb: Document return for get_ur_golomb_jpegls() and get_sr_golomb_flac() avcodec/dxv: Fix type in get_opcodes() avcodec/cri: Check length avcodec/xsubdec: Check parse_timecode() avutil/imgutils: av_image_check_size2() ensure width and height fit in 32bit avfilter/vf_tiltandshift: Free dst on error doc/examples/mux: remove nop avcodec/proresenc_kostya: use unsigned alpha for rotation avformat/rtpenc_rfc4175: Use 64bit in computation if copy_offset avformat/rtmpproto: Use AV_DICT_MATCH_CASE instead of litteral number avformat/rtmppkt: Simplify and deobfuscate amf_tag_skip() slightly avformat/rmdec: use 64bit for audio_framesize checks avutil/wchar_filename: Correct sizeof avutil/hwcontext_d3d11va: correct sizeof IDirect3DSurface9 avutil/hwcontext_d3d11va: Free AVD3D11FrameDescriptor on error avutil/hwcontext_d3d11va: correct sizeof AVD3D11FrameDescriptor avcodec/vvc/refs: Use unsigned mask doc/examples/vaapi_encode: Try to check fwrite() for failure avformat/usmdec: Initialize value avformat/tls_schannel: Initialize ret avformat/subfile: Assert that whence is a known case avformat/subfile: Merge if into switch() avformat/rtsp: Check that lower transport is handled in one of the if() avformat/rtsp: initialize reply1 avformat/rtsp: use < 0 for error check avformat/rtpenc_vc2hq: Check sizes avfilter/af_aderivative: Free out on error swscale/swscale: Use ptrdiff_t for linesize computations avfilter/af_amerge: Cleanup on av_channel_layout_copy() failure avfilter/af_afir: Assert format avfilter/af_afftdn: Assert format avfilter/af_pan: check nb_output_channels before use cbs_av1: Reject thirty-two zero bits in uvlc code avfilter/af_mcompand: compute half frequency in double avfilter/af_channelsplit: Assert that av_channel_layout_channel_from_index() succeeds avfilter/af_aresample: Cleanup on av_channel_layout_copy() failure tools/coverity: Phase 1 study of anti-halicogenic for coverity av_rescale() avfilter/vf_avgblur: Check plane instead of AVFrame avfilter/drawutils: Fix depthb computation avfilter/avf_showcwt: Check av_parse_video_rate() for failure avformat/rdt: Check pkt_len avformat/mpeg: Check len in mpegps_probe() avformat/mxfenc: resurrects the error print avdevice/dshow: Check ICaptureGraphBuilder2_SetFiltergraph() for failure avcodec/mfenc: check IMFSample_ConvertToContiguousBuffer() for failure avcodec/vc1_loopfilter: Factor duplicate code in vc1_b_h_intfi_loop_filter() avcodec/vvc/ctu: Remove dead ret check avcodec/vvc/dec: Remove constant eos_at_start avformat/img2dec: assert no pipe on ts_from_file avcodec/cbs_jpeg: Try to move the read entity to one side in a test fftools/ffplay: Check vulkan_params fftools/ffmpeg_enc: Initialize Decoder fftools/ffmpeg_enc: Initialize fd fftools/ffmpeg_enc: simplify opaque_ref check avformat/mov: Check edit list for overflow fftools/ffmpeg: Check read() for failure avcodec/vvc/dec: Check ff_init_cabac_decoder() for failure swscale/output: Avoid undefined overflow in yuv2rgb_write_full() swscale/output: alpha can become negative after scaling, use multiply avcodec/targaenc: Allocate space for the palette avcodec/r210enc: Use av_rescale for bitrate avcodec/jfdctint_template: Fewer integer anomalies avcodec/snowenc: MV limits due to mv_penalty table size tools/target_dec_fuzzer: Adjust threshold for MV30 tools/target_dec_fuzzer: Adjust threshold for jpeg2000 avformat/mxfdec: Check container_ul->desc before use avcodec/libvpxenc: Cleanup on error doc/developer: Provide information about git send-email and gmail avfilter/vf_rotate: Check ff_draw_init2() return value avformat/mov: Use int64_t in intermediate for corrected_dts avformat/mov: Use 64bit in intermediate for current_dts avformat/matroskadec: Assert that num_levels is non negative avformat/libzmq: Check av_strstart() avformat/img2dec: Little JFIF / Exif cleanup avformat/img2dec: Move DQT after unrelated if() avformat/imfdec: Simplify get_next_track_with_minimum_timestamp() avdevice/xcbgrab: Check sscanf() return fftools/cmdutils: Add protective () to FLAGS avformat/sdp: Check before appending "," avcodec/libx264: Check init_get_bits8() return code avcodec/ilbcdec: Remove dead code avcodec/vp8: Check cond init avcodec/vp8: Check mutex init avcodec/proresenc_anatoliy: Assert that AV_PROFILE_UNKNOWN is replaced avcodec/pcm-dvdenc: 64bit pkt-size avcodec/notchlc: Check init_get_bits8() for failure avcodec/tests/dct: Use 64bit in intermediate for error computation avcodec/scpr3: Check add_dec() for failure avcodec/rv34: assert that size is not 0 in rv34_gen_vlc_ext() avcodec/wavpackenc: Use unsigned for potential 31bit shift avcodec/vvc/mvs: Initialize mvf avcodec/tests/jpeg2000dwt: Use 64bit in comparission avcodec/tests/jpeg2000dwt: Use 64bit in err2 computation avformat/fwse: Remove always false expression avcodec/sga: Make it clear that the return is intentionally not checked avformat/asfdec_f: Use 64bit for preroll computation avformat/argo_asf: Use 64bit in offset intermediate avformat/ape: Use 64bit for final frame size avformat/ac4dec: Check remaining space in ac4_probe() avdevice/pulse_audio_enc: Use av_rescale() to avoid integer overflow avcodec/vlc: Cleanup on multi table alloc failure in ff_vlc_init_multi_from_lengths() avcodec/tiff: Assert init_get_bits8() success in unpack_gray() avcodec/tiff: Assert init_get_bits8() success in horizontal_fill() tools/decode_simple: Check avcodec_send_packet() for errors on flushing swscale/yuv2rgb: Use 64bit for brightness computation swscale/x86/swscale: use a clearer name for INPUT_PLANER_RGB_A_FUNC_CASE avutil/tests/opt: Check av_set_options_string() for failure avutil/tests/dict: Check av_dict_set() before get for failure avdevice/dshow: fix badly indented line avformat/demux: resurrect dead stores avcodec/tests/bitstream_template: Assert bits_init8() return tools/enc_recon_frame_test: Assert that av_image_get_linesize() succeeds avformat/iamf_writer: disallow Opus extradata with mapping family other than 0 avformat/iamf_parse: sanitize audio_roll_distance values avformat/iamf: byteswap values in OpusHeader avformat/iamf: rename Codec Config seek_preroll to audio_roll_distance avformat/iamf_writer: fix coded audio_roll_distance values avformat/iamf_writer: fix PCM endian-ness flag avformat/movenc: fix channel count and samplerate fields for IAMF tracks avformat/iamf_parse: keep substream count consistent avformat/iamf_parse: add missing padding to AAC extradata avformat/iamf_parse: 0 layers are not allowed avformat/iamf_parse: consider nb_substreams when accessing substreams array avformat/iamf_parse: Remove dead case avcodec/png: more informative error message for invalid sBIT size avcodec/pngdec: avoid erroring with sBIT on indexed-color images avfilter/vf_tiltandshift: fix buffer offset for yuv422p input avutil/timestamp: avoid possible FPE when 0 is passed to av_ts_make_time_string2() avformat/mov: add more checks for infe atom size avformat/mov: check for EOF inside the infe list parsing loop avformat/mov: check extent_offset calculation for overflow avformat/mov: check that iloc offset values fit on an int64_t avcodec/pngenc: fix mDCv typo avcodec/pngdec: fix mDCv typo avcodec/nvenc: fix segfault in intra-only mode avdevice/avfoundation: add external video devices aarch64: Add OpenBSD runtime detection of dotprod and i8mm using sysctl fftools/ffplay_renderer: use correct NULL value for Vulkan type qsv: Initialize impl_value avutil/hwcontext_qsv: fix GCC 14.1 warnings avcodec/mediacodecenc: workaround the alignment requirement for H.265 avcodec/mediacodecenc: workaround the alignment requirement only for H.264 lavc/lpc: fix off-by-one in R-V V compute_autocorr lavc/vp9: reset segmentation fields when segmentation isn't enabled configure: enable ffnvcodec, nvenc, nvdec for FreeBSD lavc/sbrdsp: fix potential overflow in noise table 7.0.1 lavc/flacdsp: do not assume maximum R-V VL avformat/flacdec: Reorder allocations to avoid leak on error avcodec/adts_parser: Don't presume buffer to be padded avformat/movenc: Check av_malloc() avcodec/vp8: Return error on error avformat/mov: store sample_sizes as unsigned ints avformat/vvc: fix parsing sps_subpic_id avformat/vvc: initialize some ptl flags avcodec/mscc & mwsc: Check loop counts before use avcodec/mpegvideo_enc: Fix potential overflow in RD avcodec/mpeg4videodec: assert impossible wrap points avcodec/mpeg12dec: Use 64bit in bit computation avcodec/vqcdec: Check init_get_bits8() for failure avcodec/vvc/dec: Check init_get_bits8() for failure avcodec/vble: Check av_image_get_buffer_size() for failure avcodec/vp3: Replace check by assert avcodec/vp8: Forward return of ff_vpx_init_range_decoder() avcodec/jpeg2000dec: remove ST=3 case avcodec/qsvdec: Check av_image_get_buffer_size() for failure avcodec/exr: Fix preview overflow avcodec/decode: decode_simple_internal() only implements audio and video avcodec/fmvc: remove dead assignment avcodec/h2645_sei: Remove dead checks avcodec/h264_slice: Remove dead sps check avcodec/lpc: copy levenson coeffs only when they have been computed avutil/tests/base64: Check with too short output array libavutil/base64: Try not to write over the array end avcodec/cbs_av1: Avoid shift overflow fftools/ffplay: Check return of swr_alloc_set_opts2() tools/opt_common: Check for malloc failure doc/examples/demux_decode: Simplify loop avformat/concatdec: Check file avcodec/mpegvideo_enc: Fix 1 line and one column images avcodec/amrwbdec: assert mode to be valid in decode_fixed_vector() avcodec/wavarc: fix integer overflow in decode_5elp() block type 2 swscale/output: Fix integer overflow in yuv2rgba64_full_1_c_template() swscale/output: Fix integer overflow in yuv2rgba64_1_c_template avcodec/av1dec: Change bit_depth to int avcodec/av1dec: bit_depth cannot be another values than 8,10,12 avcodec/avs3_parser: assert the return value of init_get_bits() avcodec/avs2_parser: Assert init_get_bits8() success with const size 15 avfilter/avfiltergraph: return value of ff_request_frame() is unused avformat/mxfdec: Check body_offset avformat/kvag: Check sample_rate avcodec/atrac9dec: Check init_get_bits8() for failure avcodec/ac3_parser: Check init_get_bits8() for failure avcodec/pngdec: Check last AVFrame before deref avcodec/hevcdec: Check ref frame doc/examples/qsv_transcode: Initialize pointer before free doc/examples/qsv_transcode: Simplify str_to_dict() loop doc/examples/vaapi_transcode: Simplify loop doc/examples/qsv_transcode: Simplify loop avcodec/cbs_h2645: Check NAL space avfilter/vf_thumbnail_cuda: Set ret before checking it avfilter/signature_lookup: Dont copy uninitialized stuff around avfilter/signature_lookup: Fix 2 differences to the refernce SW avcodec/x86/vp3dsp_init: Set correct function pointer, fix crash avformat/mp3dec: change bogus error message if read_header encounters EOF avformat/mp3dec: simplify inner frame size check in mp3_read_header avformat/mp3dec: only call ffio_ensure_seekback once avcodec/cbs_h266: read vps_ptl_max_tid before using it avcodec/cbs_h266: fix sh_collocated_from_l0_flag and sh_collocated_ref_idx infer avformat/vvc: fix parsing some early VPS bitstream values avformat/vvc: fix writing general_constraint_info bytes avutil/ppc/cpu: Also use the machdep.altivec sysctl on NetBSD lavd/v4l2: Use proper field type for second parameter of ioctl() with BSD's vulkan_av1: Fix force_integer_mv value vaapi_av1: Fix force_integer_mv value av1dec: Add force_integer_mv derived field for decoder use avutil/iamf: fix offsets for mix_gain options avformat/iamfdec: check nb_streams in header read avformat/mov: free the infe allocated item data on failure avformat/iamf_writer: reject duplicated stream ids in a stream group avformat/mov: don't read key_size bytes twice in the keys atom avformat/mov: take into account the first eight bytes in the keys atom avformat/mov: fix the check for the heif item parsing loop avutil/iamf: fix mix_gain_class name av1dec: Fix RefFrameSignBias calculation avcodec/codec_par: always clear extradata_size in avcodec_parameters_to_context() avcodec/mediacodecenc: Fix return empty packet when bsf is used avcodec/hevcdec: Fix precedence, bogus film grain warning avcodec/hevcdec: fix segfault on invalid film grain metadata lavc/vvc: Skip enhancement layer NAL units avformat/mov: ignore old infe box versions vulkan_av1: add workaround for NVIDIA drivers tested on broken CTS lavc/vulkan_av1: Use av1dec reference order hint information lavc/av1: Record reference ordering information for each frame doc/encoders: add missing libxvid option doc/encoders: remove non-existent flag fate/ffmpeg: Avoid dependency on samples avcodec/wavpack: Remove always-false check avcodec/wavpack: Fix leak and segfault on reallocation error avcodec/lossless_videoencdsp: Don't presume alignment in diff_bytes avcodec/ppc/h264dsp: Fix left shifts of negative numbers 7.0 - DXV DXT1 encoder - LEAD MCMP decoder - EVC decoding using external library libxevd - EVC encoding using external library libxeve - QOA decoder and demuxer - aap filter - demuxing, decoding, filtering, encoding, and muxing in the ffmpeg CLI now all run in parallel - enable gdigrab device to grab a window using the hwnd=HANDLER syntax - IAMF raw demuxer and muxer - D3D12VA hardware accelerated H264, HEVC, VP9, AV1, MPEG-2 and VC1 decoding - tiltandshift filter - qrencode filter and qrencodesrc source - quirc filter - lavu/eval: introduce randomi() function in expressions - VVC decoder (experimental) - fsync filter - Raw Captions with Time (RCWT) closed caption muxer - ffmpeg CLI -bsf option may now be used for input as well as output - ffmpeg CLI options may now be used as -/opt , which is equivalent to -opt > - showinfo bitstream filter - a C11-compliant compiler is now required; note that this requirement will be bumped to C17 in the near future, so consider updating your build environment if it lacks C17 support - Change the default bitrate control method from VBR to CQP for QSV encoders. - removed deprecated ffmpeg CLI options -psnr and -map_channel - DVD-Video demuxer, powered by libdvdnav and libdvdread - ffprobe -show_stream_groups option - ffprobe (with -export_side_data film_grain) now prints film grain metadata - AEA muxer - ffmpeg CLI loopback decoders - Support PacketTypeMetadata of PacketType in enhanced flv format - ffplay with hwaccel decoding support (depends on vulkan renderer via libplacebo) - dnn filter libtorch backend - Android content URIs protocol - AOMedia Film Grain Synthesis 1 (AFGS1) - RISC-V optimizations for AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1, VP8, and more - Loongarch optimizations for HEVC decoding - Important AArch64 optimizations for HEVC - IAMF support inside MP4/ISOBMFF - Support for HEIF/AVIF still images and tiled still images - Dolby Vision profile 10 support in AV1 - Support for Ambient Viewing Environment metadata in MP4/ISOBMFF - HDR10 metadata passthrough when encoding with libx264, libx265, and libsvtav1 6.1 - libaribcaption decoder - Playdate video decoder and demuxer - Extend VAAPI support for libva-win32 on Windows - afireqsrc audio source filter - arls filter - ffmpeg CLI new option: -readrate_initial_burst - zoneplate video source filter - command support in the setpts and asetpts filters - Vulkan decode hwaccel, supporting H264, HEVC and AV1 - color_vulkan filter - bwdif_vulkan filter - nlmeans_vulkan filter - RivaTuner video decoder - xfade_vulkan filter - vMix video decoder - Essential Video Coding parser, muxer and demuxer - Essential Video Coding frame merge bsf - bwdif_cuda filter - Microsoft RLE video encoder - Raw AC-4 muxer and demuxer - Raw VVC bitstream parser, muxer and demuxer - Bitstream filter for editing metadata in VVC streams - Bitstream filter for converting VVC from MP4 to Annex B - scale_vt filter for videotoolbox - transpose_vt filter for videotoolbox - support for the P_SKIP hinting to speed up libx264 encoding - Support HEVC,VP9,AV1 codec in enhanced flv format - apsnr and asisdr audio filters - OSQ demuxer and decoder - Support HEVC,VP9,AV1 codec fourcclist in enhanced rtmp protocol - CRI USM demuxer - ffmpeg CLI '-top' option deprecated in favor of the setfield filter - VAAPI AV1 encoder - ffprobe XML output schema changed to account for multiple variable-fields elements within the same parent element - ffprobe -output_format option added as an alias of -of Signed-off-by: Adolf Belka --- config/rootfiles/packages/ffmpeg | 37 ++++----- lfs/ffmpeg | 24 +++--- ...hpops-clip-constants-used-with-shift.patch | 76 ------------------- 3 files changed, 31 insertions(+), 106 deletions(-) delete mode 100644 src/patches/ffmpeg-6.0-mathpops-clip-constants-used-with-shift.patch diff --git a/config/rootfiles/packages/ffmpeg b/config/rootfiles/packages/ffmpeg index 31097eaac..d6b7985f6 100644 --- a/config/rootfiles/packages/ffmpeg +++ b/config/rootfiles/packages/ffmpeg @@ -26,7 +26,6 @@ usr/bin/ffprobe #usr/include/libavcodec/version_major.h #usr/include/libavcodec/videotoolbox.h #usr/include/libavcodec/vorbis_parser.h -#usr/include/libavcodec/xvmc.h #usr/include/libavdevice #usr/include/libavdevice/avdevice.h #usr/include/libavdevice/version.h @@ -74,6 +73,7 @@ usr/bin/ffprobe #usr/include/libavutil/encryption_info.h #usr/include/libavutil/error.h #usr/include/libavutil/eval.h +#usr/include/libavutil/executor.h #usr/include/libavutil/ffversion.h #usr/include/libavutil/fifo.h #usr/include/libavutil/file.h @@ -86,6 +86,7 @@ usr/bin/ffprobe #usr/include/libavutil/hwcontext.h #usr/include/libavutil/hwcontext_cuda.h #usr/include/libavutil/hwcontext_d3d11va.h +#usr/include/libavutil/hwcontext_d3d12va.h #usr/include/libavutil/hwcontext_drm.h #usr/include/libavutil/hwcontext_dxva2.h #usr/include/libavutil/hwcontext_mediacodec.h @@ -95,6 +96,7 @@ usr/bin/ffprobe #usr/include/libavutil/hwcontext_vdpau.h #usr/include/libavutil/hwcontext_videotoolbox.h #usr/include/libavutil/hwcontext_vulkan.h +#usr/include/libavutil/iamf.h #usr/include/libavutil/imgutils.h #usr/include/libavutil/intfloat.h #usr/include/libavutil/intreadwrite.h @@ -134,6 +136,7 @@ usr/bin/ffprobe #usr/include/libavutil/uuid.h #usr/include/libavutil/version.h #usr/include/libavutil/video_enc_params.h +#usr/include/libavutil/video_hint.h #usr/include/libavutil/xtea.h #usr/include/libpostproc #usr/include/libpostproc/postprocess.h @@ -148,29 +151,29 @@ usr/bin/ffprobe #usr/include/libswscale/version.h #usr/include/libswscale/version_major.h #usr/lib/libavcodec.so -usr/lib/libavcodec.so.60 -usr/lib/libavcodec.so.60.3.100 +usr/lib/libavcodec.so.61 +usr/lib/libavcodec.so.61.3.100 #usr/lib/libavdevice.so -usr/lib/libavdevice.so.60 -usr/lib/libavdevice.so.60.1.100 +usr/lib/libavdevice.so.61 +usr/lib/libavdevice.so.61.1.100 #usr/lib/libavfilter.so -usr/lib/libavfilter.so.9 -usr/lib/libavfilter.so.9.3.100 +usr/lib/libavfilter.so.10 +usr/lib/libavfilter.so.10.1.100 #usr/lib/libavformat.so -usr/lib/libavformat.so.60 -usr/lib/libavformat.so.60.3.100 +usr/lib/libavformat.so.61 +usr/lib/libavformat.so.61.1.100 #usr/lib/libavutil.so -usr/lib/libavutil.so.58 -usr/lib/libavutil.so.58.2.100 +usr/lib/libavutil.so.59 +usr/lib/libavutil.so.59.8.100 #usr/lib/libpostproc.so -usr/lib/libpostproc.so.57 -usr/lib/libpostproc.so.57.1.100 +usr/lib/libpostproc.so.58 +usr/lib/libpostproc.so.58.1.100 #usr/lib/libswresample.so -usr/lib/libswresample.so.4 -usr/lib/libswresample.so.4.10.100 +usr/lib/libswresample.so.5 +usr/lib/libswresample.so.5.1.100 #usr/lib/libswscale.so -usr/lib/libswscale.so.7 -usr/lib/libswscale.so.7.1.100 +usr/lib/libswscale.so.8 +usr/lib/libswscale.so.8.1.100 #usr/lib/pkgconfig/libavcodec.pc #usr/lib/pkgconfig/libavdevice.pc #usr/lib/pkgconfig/libavfilter.pc diff --git a/lfs/ffmpeg b/lfs/ffmpeg index 0118f75f2..0431de125 100644 --- a/lfs/ffmpeg +++ b/lfs/ffmpeg @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2023 IPFire Team # +# Copyright (C) 2007-2024 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,7 +26,7 @@ include Config SUMMARY = Library for working with various multimedia formats -VER = 6.0 +VER = 7.0.2 THISAPP = ffmpeg-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = ffmpeg -PAK_VER = 16 +PAK_VER = 17 DEPS = sdl2 lame libvorbis xvid @@ -52,7 +52,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = c70884911f3a3e40fe87473f241a2a56b303f5abe7f1d7fa797d05e29e00971f98cbf37832c1c3dc5fa949a5beddef05a6ec55ae6668091976ea870ad93c0e8d +$(DL_FILE)_BLAKE2 = f6536f41f784f1b49ed0728d80a522676dfe1facbeb7fec3f7796683ce28c73e41508f9a5dd1e5cd18d3ff787d562bb1e6a5085ee0660076b84a76040587e5a8 install : $(TARGET) @@ -85,19 +85,17 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ffmpeg-6.0-mathpops-clip-constants-used-with-shift.patch cd $(DIR_APP) && \ CFLAGS="$(CFLAGS)" \ LDFLAGS="$(LDFLAGS)" \ ./configure \ - --prefix=/usr \ - --enable-shared \ - --disable-static \ - --enable-gpl \ - --enable-version3 \ - --enable-avfilter \ - --disable-doc - + --prefix=/usr \ + --enable-shared \ + --disable-static \ + --enable-gpl \ + --enable-version3 \ + --enable-avfilter \ + --disable-doc cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/src/patches/ffmpeg-6.0-mathpops-clip-constants-used-with-shift.patch b/src/patches/ffmpeg-6.0-mathpops-clip-constants-used-with-shift.patch deleted file mode 100644 index 52a931002..000000000 --- a/src/patches/ffmpeg-6.0-mathpops-clip-constants-used-with-shift.patch +++ /dev/null @@ -1,76 +0,0 @@ -From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001 -From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= -Date: Sun, 16 Jul 2023 18:18:02 +0300 -Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift - instructions within inline assembly - -Fixes assembling with binutil as >= 2.41 - -Signed-off-by: James Almer ---- - libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++--- - 1 file changed, 23 insertions(+), 3 deletions(-) - -diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h -index 6298f5ed19..ca7e2dffc1 100644 ---- a/libavcodec/x86/mathops.h -+++ b/libavcodec/x86/mathops.h -@@ -35,12 +35,20 @@ - static av_always_inline av_const int MULL(int a, int b, unsigned shift) - { - int rt, dummy; -+ if (__builtin_constant_p(shift)) - __asm__ ( - "imull %3 \n\t" - "shrdl %4, %%edx, %%eax \n\t" - :"=a"(rt), "=d"(dummy) -- :"a"(a), "rm"(b), "ci"((uint8_t)shift) -+ :"a"(a), "rm"(b), "i"(shift & 0x1F) - ); -+ else -+ __asm__ ( -+ "imull %3 \n\t" -+ "shrdl %4, %%edx, %%eax \n\t" -+ :"=a"(rt), "=d"(dummy) -+ :"a"(a), "rm"(b), "c"((uint8_t)shift) -+ ); - return rt; - } - -@@ -113,19 +121,31 @@ __asm__ volatile(\ - // avoid +32 for shift optimization (gcc should do that ...) - #define NEG_SSR32 NEG_SSR32 - static inline int32_t NEG_SSR32( int32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("sarl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("sarl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - - #define NEG_USR32 NEG_USR32 - static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("shrl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("shrl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - --- -2.25.1 -