From 8182f2424626a7508b1ae8153106f37c4416fd4c Mon Sep 17 00:00:00 2001 From: Funda Wang Date: Fri, 21 Nov 2025 09:21:34 +0800 Subject: [PATCH] 8.0.1 --- CVE-2024-55069.patch | 25 -- CVE-2025-1816.patch | 32 -- CVE-2025-25473.patch | 24 -- backport-CVE-2025-0518.patch | 26 -- backport-CVE-2025-10256.patch | 32 -- backport-CVE-2025-22921.patch | 29 -- backport-fix-h264idct-rvv.patch | 81 ------ ...x-compilation-without-Vector-support.patch | 33 --- ffmpeg-7.1-build-with-texinfo-7.2.patch | 274 ------------------ ffmpeg-7.1.tar.xz => ffmpeg-8.0.1.tar.xz | 4 +- ffmpeg.spec | 132 ++++++--- fix-CVE-2025-22919.patch | 29 -- fix_libsvgdec_compile_error.patch | 27 -- 13 files changed, 91 insertions(+), 657 deletions(-) delete mode 100644 CVE-2024-55069.patch delete mode 100644 CVE-2025-1816.patch delete mode 100644 CVE-2025-25473.patch delete mode 100644 backport-CVE-2025-0518.patch delete mode 100644 backport-CVE-2025-10256.patch delete mode 100644 backport-CVE-2025-22921.patch delete mode 100644 backport-fix-h264idct-rvv.patch delete mode 100644 backport-riscv-fix-compilation-without-Vector-support.patch delete mode 100644 ffmpeg-7.1-build-with-texinfo-7.2.patch rename ffmpeg-7.1.tar.xz => ffmpeg-8.0.1.tar.xz (32%) delete mode 100644 fix-CVE-2025-22919.patch delete mode 100644 fix_libsvgdec_compile_error.patch diff --git a/CVE-2024-55069.patch b/CVE-2024-55069.patch deleted file mode 100644 index 50554ab..0000000 --- a/CVE-2024-55069.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8fda3be2f6a70098dd3e24206059f6d004b3b050 Mon Sep 17 00:00:00 2001 -From: Michael Niedermayer -Date: Tue, 8 Jul 2025 10:39:32 +0800 -Subject: [PATCH] avformat/iamf_parse: reject ambisonics mode > 1 - ---- - libavformat/iamf_parse.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c -index 8bc0a41..901eb9f 100644 ---- a/libavformat/iamf_parse.c -+++ b/libavformat/iamf_parse.c -@@ -413,7 +413,7 @@ static int ambisonics_config(void *s, AVIOContext *pb, - - ambisonics_mode = ffio_read_leb(pb); - if (ambisonics_mode > 1) -- return 0; -+ return AVERROR_INVALIDDATA; - - output_channel_count = avio_r8(pb); // C - substream_count = avio_r8(pb); // N --- -2.43.0 - diff --git a/CVE-2025-1816.patch b/CVE-2025-1816.patch deleted file mode 100644 index ecda47b..0000000 --- a/CVE-2025-1816.patch +++ /dev/null @@ -1,32 +0,0 @@ -From c857f5e7b00babbf0a73a034ba9658712764a65e Mon Sep 17 00:00:00 2001 -From: James Almer -Date: Tue, 22 Apr 2025 15:35:19 +0800 -Subject: [PATCH] avformat/iamf_parse: add missing constrains for num_parameters in audio_element_oub() - ---- - libavformat/iamf_parse.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c -index e0a138a..8bc0a41 100644 ---- a/libavformat/iamf_parse.c -+++ b/libavformat/iamf_parse.c -@@ -716,7 +716,14 @@ static int audio_element_obu(void *s, IAMFContext *c, AVIOContext *pb, int len) - } - - num_parameters = ffio_read_leb(pbc); -- if (num_parameters && audio_element_type != 0) { -+ if (num_parameters > 2 && audio_element_type == 0) { -+ av_log(s, AV_LOG_ERROR, "Audio Element parameter count %u is invalid" -+ " for Channel representations\n", num_parameters); -+ ret = AVERROR_INVALIDDATA; -+ goto fail; -+ } -+ -+ if (num_parameters && audio_element_type != 0) { - av_log(s, AV_LOG_ERROR, "Audio Element parameter count %u is invalid" - " for Scene representations\n", num_parameters); - ret = AVERROR_INVALIDDATA; --- -2.43.0 - diff --git a/CVE-2025-25473.patch b/CVE-2025-25473.patch deleted file mode 100644 index 1c8a7f0..0000000 --- a/CVE-2025-25473.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 3b97409dbe2f23c49e1bb4288f74a49f14f91351 Mon Sep 17 00:00:00 2001 -From: happyworker <208suo@208suo.com> -Date: Tue, 22 Apr 2025 17:03:20 +0800 -Subject: [PATCH] createpath - ---- - libavformat/avformat.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libavformat/avformat.c b/libavformat/avformat.c -index 06dcde0..4f93887 100644 ---- a/libavformat/avformat.c -+++ b/libavformat/avformat.c -@@ -184,6 +184,7 @@ void avformat_free_context(AVFormatContext *s) - av_dict_free(&si->id3v2_meta); - av_packet_free(&si->pkt); - av_packet_free(&si->parse_pkt); -+ avpriv_packet_list_free(&si->packet_buffer); - av_freep(&s->streams); - av_freep(&s->stream_groups); - ff_flush_packet_queue(s); --- -2.43.0 - diff --git a/backport-CVE-2025-0518.patch b/backport-CVE-2025-0518.patch deleted file mode 100644 index 6300c1c..0000000 --- a/backport-CVE-2025-0518.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b5b6391d64807578ab872dc58fb8aa621dcfc38a Mon Sep 17 00:00:00 2001 -From: Michael Niedermayer -Date: Mon, 6 Jan 2025 22:01:39 +0100 -Subject: [PATCH] avfilter/af_pan: Fix sscanf() use - -Fixes: Memory Data Leak - -Found-by: Simcha Kosman -Signed-off-by: Michael Niedermayer ---- - libavfilter/af_pan.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libavfilter/af_pan.c b/libavfilter/af_pan.c -index 0d20b0307b3bf..5feb2439c72e2 100644 ---- a/libavfilter/af_pan.c -+++ b/libavfilter/af_pan.c -@@ -196,7 +196,7 @@ static av_cold int init(AVFilterContext *ctx) - sign = 1; - while (1) { - gain = 1; -- if (sscanf(arg, "%lf%n *%n", &gain, &len, &len)) -+ if (sscanf(arg, "%lf%n *%n", &gain, &len, &len) >= 1) - arg += len; - if (parse_channel_name(&arg, &in_ch_id, &named)){ - av_log(ctx, AV_LOG_ERROR, diff --git a/backport-CVE-2025-10256.patch b/backport-CVE-2025-10256.patch deleted file mode 100644 index fd8390c..0000000 --- a/backport-CVE-2025-10256.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0e8ccde9e5c9daa081eb4c037d83350390c9aa2b Mon Sep 17 00:00:00 2001 -From: Jiasheng Jiang -Date: Wed, 6 Aug 2025 16:39:47 +0000 -Subject: [PATCH] libavfilter/af_firequalizer: Add check for av_malloc_array() - -Add check for the return value of av_malloc_array() to avoid potential NULL pointer dereference. - -Fixes: d3be186ed1 ("avfilter/firequalizer: add dumpfile and dumpscale option") -Signed-off-by: Jiasheng Jiang -Signed-off-by: Michael Niedermayer -(cherry picked from commit a25462482c02c004d685a8fcf2fa63955aaa0931) -Signed-off-by: Michael Niedermayer ---- - libavfilter/af_firequalizer.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/libavfilter/af_firequalizer.c b/libavfilter/af_firequalizer.c -index 386d8cd242..1ce8cabbd6 100644 ---- a/libavfilter/af_firequalizer.c -+++ b/libavfilter/af_firequalizer.c -@@ -808,6 +808,8 @@ static int config_input(AVFilterLink *inlink) - if ((ret = av_tx_init(&s->analysis_rdft, &s->analysis_rdft_fn, AV_TX_FLOAT_RDFT, 0, 1 << rdft_bits, &scale, 0)) < 0) - return ret; - s->dump_buf = av_malloc_array(s->analysis_rdft_len + 2, sizeof(*s->dump_buf)); -+ if (!s->dump_buf) -+ return AVERROR(ENOMEM); - } - - s->analysis_buf = av_malloc_array((s->analysis_rdft_len + 2), sizeof(*s->analysis_buf)); --- -2.25.1 - diff --git a/backport-CVE-2025-22921.patch b/backport-CVE-2025-22921.patch deleted file mode 100644 index 3a522c8..0000000 --- a/backport-CVE-2025-22921.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7f9c7f9849a2155224711f0ff57ecdac6e4bfb57 Mon Sep 17 00:00:00 2001 -From: James Almer -Date: Wed, 1 Jan 2025 23:58:39 -0300 -Subject: [PATCH] avcodec/jpeg2000dec: clear array length when freeing it - -Fixes NULL pointer dereferences. -Fixes ticket #11393. - -Reviewed-by: Michael Niedermayer -Signed-off-by: James Almer ---- - libavcodec/jpeg2000dec.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c -index e5e897a29f..b82d85d5ee 100644 ---- a/libavcodec/jpeg2000dec.c -+++ b/libavcodec/jpeg2000dec.c -@@ -1521,6 +1521,7 @@ static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, - } - } - av_freep(&cblk->lengthinc); -+ cblk->nb_lengthinc = 0; - } - } - // Save state of stream --- -2.48.1 - diff --git a/backport-fix-h264idct-rvv.patch b/backport-fix-h264idct-rvv.patch deleted file mode 100644 index c6ed38f..0000000 --- a/backport-fix-h264idct-rvv.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 20cbd13a11c1b4262545006c7541c0380ba1936d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= -Date: Sat, 16 Nov 2024 08:58:35 +0200 -Subject: [PATCH] lavc/h264dsp: remove RISC-V table alignment - -These values are bytes and need not be aligned. - -lavc/h264idct: fix RISC-V group multiplier - -After the branch, the expected SEW/LMUL ratio is 1 byte/vector. -So we have to set the same ratio before branching (QEMU does not care, -but real hardware does). - -lavc/h264idct: fix compilation for RV32IMA ---- - libavcodec/riscv/h264idct_rvv.S | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/libavcodec/riscv/h264idct_rvv.S b/libavcodec/riscv/h264idct_rvv.S -index d2f77a5b47..2a40e87d62 100644 ---- a/libavcodec/riscv/h264idct_rvv.S -+++ b/libavcodec/riscv/h264idct_rvv.S -@@ -542,7 +542,7 @@ func ff_h264_idct8_dc_add_\depth\()_rvv, zve64x - endfunc - .endr - --const ff_h264_scan8 -+const ff_h264_scan8, align=0 - .byte 014, 015, 024, 025, 016, 017, 026, 027 - .byte 034, 035, 044, 045, 036, 037, 046, 047 - .byte 064, 065, 074, 075, 066, 067, 076, 077 -@@ -629,6 +629,7 @@ endfunc - .endm - - .macro idct4_add8 type, depth -+#if (__riscv_xlen == 64) - func ff_h264_idct4_add\type\()_\depth\()_rvv, zve32x - .if \depth == 8 - lpad 0 -@@ -644,7 +645,7 @@ func ff_h264_idct4_add\type\()_\depth\()_rvv, zve32x - sd a4, 24(sp) - ld a0, 0(a0) # dest[0] - addi a1, a1, 16 * 4 # &block_offset[16] -- vsetivli zero, 4, e8, mf4, ta, ma -+ vsetivli zero, 4, e8, m1, ta, ma - jal .Lidct4_add4_\depth\()_rvv - - ld a4, 24(sp) # nnzc -@@ -655,7 +656,7 @@ func ff_h264_idct4_add\type\()_\depth\()_rvv, zve32x - ld a0, 8(a0) # dest[1] - lla t0, ff_h264_scan8 + 32 - .ifc \type, 8_422 -- vsetivli zero, 4, e8, mf4, ta, ma -+ vsetivli zero, 4, e8, m1, ta, ma - jal .Lidct4_add4_\depth\()_rvv - - ld a4, 24(sp) # nnzc -@@ -665,7 +666,7 @@ func ff_h264_idct4_add\type\()_\depth\()_rvv, zve32x - addi a1, t5, (-8 - 4) * 4 # &block_offset[24] - ld a0, 0(a0) # dest[0] - lla t0, ff_h264_scan8 + 24 -- vsetivli zero, 4, e8, mf4, ta, ma -+ vsetivli zero, 4, e8, m1, ta, ma - jal .Lidct4_add4_\depth\()_rvv - - ld a4, 24(sp) # nnzc -@@ -679,9 +680,10 @@ func ff_h264_idct4_add\type\()_\depth\()_rvv, zve32x - ld ra, 8(sp) - ld s0, 0(sp) - addi sp, sp, 32 -- vsetivli zero, 4, e8, mf4, ta, ma -+ vsetivli zero, 4, e8, m1, ta, ma - j .Lidct4_add4_\depth\()_rvv - endfunc -+#endif - .endm - - .irp depth, 8, 16 --- -2.50.1 - diff --git a/backport-riscv-fix-compilation-without-Vector-support.patch b/backport-riscv-fix-compilation-without-Vector-support.patch deleted file mode 100644 index 5dd4fb8..0000000 --- a/backport-riscv-fix-compilation-without-Vector-support.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e29432e6bbb6184d3ff2c7d1e070e9424cb25fe6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= -Date: Sun, 17 Nov 2024 11:15:01 +0200 -Subject: [PATCH] lavu/riscv: fix compilation without Vector support - -The half-baked assembler in Clang 16 and earlier can't process our -RISC-V assembler. This adds yet another work around that. - -If you must use Clang, please use version 17 or later. ---- - libavutil/riscv/cpu.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libavutil/riscv/cpu.h b/libavutil/riscv/cpu.h -index 191e4478c5..f2e6b7b430 100644 ---- a/libavutil/riscv/cpu.h -+++ b/libavutil/riscv/cpu.h -@@ -56,7 +56,6 @@ static inline size_t ff_get_rv_vlenb(void) - ".option pop\n" : "=r" (vlenb)); - return vlenb; - } --#endif - - /** - * Checks that the vector bit-size is at least the given value. -@@ -78,3 +77,4 @@ static inline bool ff_rv_vlen_least(unsigned int bits) - return bits <= (8 * ff_get_rv_vlenb()); - } - #endif -+#endif /* HAVE_RVV */ --- -2.50.1 - diff --git a/ffmpeg-7.1-build-with-texinfo-7.2.patch b/ffmpeg-7.1-build-with-texinfo-7.2.patch deleted file mode 100644 index e910b29..0000000 --- a/ffmpeg-7.1-build-with-texinfo-7.2.patch +++ /dev/null @@ -1,274 +0,0 @@ ---- - doc/t2h.pm | 169 ++++++++++++++++++++++++++++++++++++++++------------- - 1 file changed, 129 insertions(+), 40 deletions(-) - -diff --git a/doc/t2h.pm b/doc/t2h.pm -index b7485e1f1e..1359960f27 100644 ---- a/doc/t2h.pm -+++ b/doc/t2h.pm -@@ -54,12 +54,24 @@ sub get_formatting_function($$) { - } - - # determine texinfo version --my $program_version_num = version->declare(ff_get_conf('PACKAGE_VERSION'))->numify; -+my $package_version = ff_get_conf('PACKAGE_VERSION'); -+$package_version =~ s/\+dev$//; -+my $program_version_num = version->declare($package_version)->numify; - my $program_version_6_8 = $program_version_num >= 6.008000; - - # no navigation elements - ff_set_from_init_file('HEADERS', 0); - -+my %sectioning_commands = %Texinfo::Common::sectioning_commands; -+if (scalar(keys(%sectioning_commands)) == 0) { -+ %sectioning_commands = %Texinfo::Commands::sectioning_heading_commands; -+} -+ -+my %root_commands = %Texinfo::Common::root_commands; -+if (scalar(keys(%root_commands)) == 0) { -+ %root_commands = %Texinfo::Commands::root_commands; -+} -+ - sub ffmpeg_heading_command($$$$$) - { - my $self = shift; -@@ -77,6 +89,9 @@ sub ffmpeg_heading_command($$$$$) - return $result; - } - -+ # no need to set it as the $element_id is output unconditionally -+ my $heading_id; -+ - my $element_id = $self->command_id($command); - $result .= "\n" - if (defined($element_id) and $element_id ne ''); -@@ -84,24 +99,40 @@ sub ffmpeg_heading_command($$$$$) - print STDERR "Process $command " - .Texinfo::Structuring::_print_root_command_texi($command)."\n" - if ($self->get_conf('DEBUG')); -- my $element; -- if ($Texinfo::Common::root_commands{$command->{'cmdname'}} -- and $command->{'parent'} -- and $command->{'parent'}->{'type'} -- and $command->{'parent'}->{'type'} eq 'element') { -- $element = $command->{'parent'}; -+ my $output_unit; -+ if ($root_commands{$command->{'cmdname'}}) { -+ if ($command->{'associated_unit'}) { -+ $output_unit = $command->{'associated_unit'}; -+ } elsif ($command->{'structure'} -+ and $command->{'structure'}->{'associated_unit'}) { -+ $output_unit = $command->{'structure'}->{'associated_unit'}; -+ } elsif ($command->{'parent'} -+ and $command->{'parent'}->{'type'} -+ and $command->{'parent'}->{'type'} eq 'element') { -+ $output_unit = $command->{'parent'}; -+ } - } -- if ($element) { -+ -+ if ($output_unit) { - $result .= &{get_formatting_function($self, 'format_element_header')}($self, $cmdname, -- $command, $element); -+ $command, $output_unit); - } - - my $heading_level; - # node is used as heading if there is nothing else. - if ($cmdname eq 'node') { -- if (!$element or (!$element->{'extra'}->{'section'} -- and $element->{'extra'}->{'node'} -- and $element->{'extra'}->{'node'} eq $command -+ if (!$output_unit or -+ (((!$output_unit->{'extra'}->{'section'} -+ and $output_unit->{'extra'}->{'node'} -+ and $output_unit->{'extra'}->{'node'} eq $command) -+ or -+ ((($output_unit->{'extra'}->{'unit_command'} -+ and $output_unit->{'extra'}->{'unit_command'} eq $command) -+ or -+ ($output_unit->{'unit_command'} -+ and $output_unit->{'unit_command'} eq $command)) -+ and $command->{'extra'} -+ and not $command->{'extra'}->{'associated_section'})) - # bogus node may not have been normalized - and defined($command->{'extra'}->{'normalized'}))) { - if ($command->{'extra'}->{'normalized'} eq 'Top') { -@@ -111,7 +142,15 @@ sub ffmpeg_heading_command($$$$$) - } - } - } else { -- $heading_level = $command->{'level'}; -+ if (defined($command->{'extra'}) -+ and defined($command->{'extra'}->{'section_level'})) { -+ $heading_level = $command->{'extra'}->{'section_level'}; -+ } elsif ($command->{'structure'} -+ and defined($command->{'structure'}->{'section_level'})) { -+ $heading_level = $command->{'structure'}->{'section_level'}; -+ } else { -+ $heading_level = $command->{'level'}; -+ } - } - - my $heading = $self->command_text($command); -@@ -119,8 +158,8 @@ sub ffmpeg_heading_command($$$$$) - # if there is an error in the node. - if (defined($heading) and $heading ne '' and defined($heading_level)) { - -- if ($Texinfo::Common::root_commands{$cmdname} -- and $Texinfo::Common::sectioning_commands{$cmdname}) { -+ if ($root_commands{$cmdname} -+ and $sectioning_commands{$cmdname}) { - my $content_href = $self->command_contents_href($command, 'contents', - $self->{'current_filename'}); - if ($content_href) { -@@ -140,7 +179,13 @@ sub ffmpeg_heading_command($$$$$) - } - } - -- if ($self->in_preformatted()) { -+ my $in_preformatted; -+ if ($program_version_num >= 7.001090) { -+ $in_preformatted = $self->in_preformatted_context(); -+ } else { -+ $in_preformatted = $self->in_preformatted(); -+ } -+ if ($in_preformatted) { - $result .= $heading."\n"; - } else { - # if the level was changed, set the command name right -@@ -149,21 +194,25 @@ sub ffmpeg_heading_command($$$$$) - $cmdname - = $Texinfo::Common::level_to_structuring_command{$cmdname}->[$heading_level]; - } -- # format_heading_text expects an array of headings for texinfo >= 7.0 - if ($program_version_num >= 7.000000) { -- $heading = [$heading]; -- } -- $result .= &{get_formatting_function($self,'format_heading_text')}( -+ $result .= &{get_formatting_function($self,'format_heading_text')}($self, -+ $cmdname, [$cmdname], $heading, -+ $heading_level +$self->get_conf('CHAPTER_HEADER_LEVEL') -1, -+ $heading_id, $command); -+ -+ } else { -+ $result .= &{get_formatting_function($self,'format_heading_text')}( - $self, $cmdname, $heading, - $heading_level + - $self->get_conf('CHAPTER_HEADER_LEVEL') - 1, $command); -+ } - } - } - $result .= $content if (defined($content)); - return $result; - } - --foreach my $command (keys(%Texinfo::Common::sectioning_commands), 'node') { -+foreach my $command (keys(%sectioning_commands), 'node') { - texinfo_register_command_formatting($command, \&ffmpeg_heading_command); - } - -@@ -188,28 +237,56 @@ sub ffmpeg_begin_file($$$) - my $filename = shift; - my $element = shift; - -- my $command; -- if ($element and $self->get_conf('SPLIT')) { -- $command = $self->element_command($element); -+ my ($element_command, $node_command, $command_for_title); -+ if ($element) { -+ if ($element->{'unit_command'}) { -+ $element_command = $element->{'unit_command'}; -+ } elsif ($self->can('tree_unit_element_command')) { -+ $element_command = $self->tree_unit_element_command($element); -+ } elsif ($self->can('tree_unit_element_command')) { -+ $element_command = $self->element_command($element); -+ } -+ -+ $node_command = $element_command; -+ if ($element_command and $element_command->{'cmdname'} -+ and $element_command->{'cmdname'} ne 'node' -+ and $element_command->{'extra'} -+ and $element_command->{'extra'}->{'associated_node'}) { -+ $node_command = $element_command->{'extra'}->{'associated_node'}; -+ } -+ -+ $command_for_title = $element_command if ($self->get_conf('SPLIT')); - } - -- my ($title, $description, $encoding, $date, $css_lines, -- $doctype, $bodytext, $copying_comment, $after_body_open, -- $extra_head, $program_and_version, $program_homepage, -+ my ($title, $description, $keywords, $encoding, $date, $css_lines, $doctype, -+ $root_html_element_attributes, $body_attributes, $copying_comment, -+ $after_body_open, $extra_head, $program_and_version, $program_homepage, - $program, $generator); -- if ($program_version_num >= 7.000000) { -- ($title, $description, $encoding, $date, $css_lines, -- $doctype, $bodytext, $copying_comment, $after_body_open, -+ if ($program_version_num >= 7.001090) { -+ ($title, $description, $keywords, $encoding, $date, $css_lines, $doctype, -+ $root_html_element_attributes, $body_attributes, $copying_comment, -+ $after_body_open, $extra_head, $program_and_version, $program_homepage, -+ $program, $generator) = $self->_file_header_information($command_for_title, -+ $filename); -+ } elsif ($program_version_num >= 7.000000) { -+ ($title, $description, $encoding, $date, $css_lines, $doctype, -+ $root_html_element_attributes, $copying_comment, $after_body_open, - $extra_head, $program_and_version, $program_homepage, -- $program, $generator) = $self->_file_header_information($command); -+ $program, $generator) = $self->_file_header_information($command_for_title, -+ $filename); - } else { - ($title, $description, $encoding, $date, $css_lines, -- $doctype, $bodytext, $copying_comment, $after_body_open, -- $extra_head, $program_and_version, $program_homepage, -- $program, $generator) = $self->_file_header_informations($command); -+ $doctype, $root_html_element_attributes, $copying_comment, -+ $after_body_open, $extra_head, $program_and_version, $program_homepage, -+ $program, $generator) = $self->_file_header_informations($command_for_title); - } - -- my $links = $self->_get_links ($filename, $element); -+ my $links; -+ if ($program_version_num >= 7.000000) { -+ $links = $self->_get_links($filename, $element, $node_command); -+ } else { -+ $links = $self->_get_links ($filename, $element); -+ } - - my $head1 = $ENV{"FFMPEG_HEADER1"} || < -@@ -252,13 +329,25 @@ sub ffmpeg_program_string($) - if (defined($self->get_conf('PROGRAM')) - and $self->get_conf('PROGRAM') ne '' - and defined($self->get_conf('PACKAGE_URL'))) { -- return $self->convert_tree( -+ if ($program_version_num >= 7.001090) { -+ return $self->convert_tree( -+ $self->cdt('This document was generated using @uref{{program_homepage}, @emph{{program}}}.', -+ { 'program_homepage' => {'text' => $self->get_conf('PACKAGE_URL')}, -+ 'program' => {'text' => $self->get_conf('PROGRAM') }})); -+ } else { -+ return $self->convert_tree( - $self->gdt('This document was generated using @uref{{program_homepage}, @emph{{program}}}.', -- { 'program_homepage' => $self->get_conf('PACKAGE_URL'), -- 'program' => $self->get_conf('PROGRAM') })); -+ { 'program_homepage' => {'text' => $self->get_conf('PACKAGE_URL')}, -+ 'program' => {'text' => $self->get_conf('PROGRAM') }})); -+ } - } else { -- return $self->convert_tree( -- $self->gdt('This document was generated automatically.')); -+ if ($program_version_num >= 7.001090) { -+ return $self->convert_tree( -+ $self->cdt('This document was generated automatically.')); -+ } else { -+ return $self->convert_tree( -+ $self->gdt('This document was generated automatically.')); -+ } - } - } - if ($program_version_6_8) { --- -2.45.2 diff --git a/ffmpeg-7.1.tar.xz b/ffmpeg-8.0.1.tar.xz similarity index 32% rename from ffmpeg-7.1.tar.xz rename to ffmpeg-8.0.1.tar.xz index ff3d112..1d8c3a4 100644 --- a/ffmpeg-7.1.tar.xz +++ b/ffmpeg-8.0.1.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:40973d44970dbc83ef302b0609f2e74982be2d85916dd2ee7472d30678a7abe6 -size 11011364 +oid sha256:05ee0b03119b45c0bdb4df654b96802e909e0a752f72e4fe3794f487229e5a41 +size 11388848 diff --git a/ffmpeg.spec b/ffmpeg.spec index 7b14d57..f299e07 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -72,30 +72,14 @@ Summary: Digital VCR and streaming server Name: ffmpeg%{?flavor} -Version: 7.1 -Release: 12 +Version: 8.0.1 +Release: 1 License: GPL-3.0-or-later URL: https://ffmpeg.org/ Source0: https://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz # Special patch for building chromium Patch0: avformat-get_first_dts.patch -Patch5: fix_libsvgdec_compile_error.patch -# https://ffmpeg.org//pipermail/ffmpeg-devel/2024-November/335575.html -Patch6: ffmpeg-7.1-build-with-texinfo-7.2.patch -Patch7: backport-CVE-2025-0518.patch -Patch8: backport-CVE-2025-22921.patch -Patch9: CVE-2025-1816.patch -Patch10: CVE-2025-25473.patch -Patch11: CVE-2024-55069.patch -Patch12: fix-CVE-2025-22919.patch -# https://github.com/FFmpeg/FFmpeg/commit/690c015758dcbf08dd53b95981a65ccb9687dfa4 -# https://github.com/FFmpeg/FFmpeg/commit/bbb0fdedb78c289f1d3ce3fccb000f031ccfa748 -Patch13: backport-fix-h264idct-rvv.patch -# https://github.com/FFmpeg/FFmpeg/commit/e29432e6bbb6184d3ff2c7d1e070e9424cb25fe6 -Patch14: backport-riscv-fix-compilation-without-Vector-support.patch -Patch15: backport-CVE-2025-10256.patch - -Requires: %{name}-libs%{?_isa} = %{version}-%{release} + %{?_with_cuda:BuildRequires: cuda-minimal-build-%{_cuda_version_rpm} cuda-drivers-devel} %{?_with_libnpp:BuildRequires: pkgconfig(nppc-%{_cuda_version})} BuildRequires: alsa-lib-devel @@ -187,19 +171,20 @@ broadcasting solution for Linux/Unix. It also includes a digital VCR. It can encode in real time in many formats including MPEG1 audio and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. -%package libs -Summary: Libraries for %{name} +%package -n libavcodec%{?flavor} +Summary: FFmpeg codec library -%description libs -FFmpeg is a complete and free Internet live audio and video -broadcasting solution for Linux/Unix. It also includes a digital -VCR. It can encode in real time in many formats including MPEG1 audio -and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. -This package contains the libraries for %{name} +%description -n libavcodec%{?flavor} +The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. + +%files -n libavcodec%{?flavor} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavcodec%{?build_suffix}.so.* %package -n libavdevice%{?flavor} Summary: Special devices muxing/demuxing library -Requires: %{name}-libs%{_isa} = %{version}-%{release} Requires: jack-audio-connection-kit %description -n libavdevice%{?flavor} @@ -207,10 +192,80 @@ Libavdevice is a complementary library to libavf "libavformat". It provides various "special" platform-specific muxers and demuxers, e.g. for grabbing devices, audio capture and playback etc. +%files -n libavdevice%{?flavor} +%{_libdir}/libavdevice%{?build_suffix}.so.* + +%package -n libavfilter%{?flavor} +Summary: FFmpeg audio and video filtering library + +%description -n libavfilter%{?flavor} +The libavfilter library provides a generic audio/video filtering +framework containing several filters, sources and sinks. + +%files -n libavfilter%{?flavor} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavfilter%{?build_suffix}.so.* + +%package -n libavformat%{?flavor} +Summary: FFmpeg's stream format library + +%description -n libavformat%{?flavor} +The libavformat library provides a generic framework for multiplexing +and demultiplexing (muxing and demuxing) audio, video and subtitle +streams. It encompasses multiple muxers and demuxers for multimedia +container formats. + +%files -n libavformat%{?flavor} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavformat%{?build_suffix}.so.* + +%package -n libavutil%{?flavor} +Summary: FFmpeg's utility library + +%description -n libavutil%{?flavor} +The libavutil library is a utility library to aid portable multimedia +programming. It contains safe portable string functions, random +number generators, data structures, additional mathematics functions, +cryptography and multimedia related functionality (like enumerations +for pixel and sample formats). + +%files -n libavutil%{?flavor} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavutil%{?build_suffix}.so.* + +%package -n libswresample%{?flavor} +Summary: FFmpeg software resampling library + +%description -n libswresample%{?flavor} +The libswresample library performs audio conversion between different +sample rates, channel layout and channel formats. + +%files -n libswresample%{?flavor} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libswresample%{?build_suffix}.so.* + +%package -n libswscale%{?flavor} +Summary: FFmpeg image scaling and colorspace/pixel conversion library + +%description -n libswscale%{?flavor} +The libswscale library performs image scaling and colorspace and +pixel format conversion operations. + +%files -n libswscale%{?flavor} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libswscale%{?build_suffix}.so.* + %package devel Summary: Development package for %{name} -Requires: %{name}-libs%{_isa} = %{version}-%{release} +Requires: libavcodec%{?flavor}%{_isa} = %{version}-%{release} Requires: libavdevice%{?flavor}%{_isa} = %{version}-%{release} +Requires: libavfilter%{?flavor}%{_isa} = %{version}-%{release} +Requires: libavformat%{?flavor}%{_isa} = %{version}-%{release} +Requires: libavutil%{?flavor}%{_isa} = %{version}-%{release} +Requires: libswresample%{?flavor}%{_isa} = %{version}-%{release} +Requires: libswscale%{?flavor}%{_isa} = %{version}-%{release} +Conflicts: libavdevice%{?flavor} < 8.0 +Conflicts: ffmpeg-libs < 8.0 %description devel FFmpeg is a complete and free Internet live audio and video @@ -305,7 +360,6 @@ This package contains development files for %{name} %{!?_without_lto:--enable-lto} \\\ --enable-avfilter \\\ --enable-libmodplug \\\ - --enable-postproc \\\ --enable-pthreads \\\ --disable-static \\\ --enable-shared \\\ @@ -394,19 +448,6 @@ install -pm755 tools/qt-faststart %{buildroot}%{_bindir} %{_datadir}/%{name} %endif -%files libs -%doc CREDITS README.md -%license COPYING.* -%{_libdir}/lib*.so.* -%exclude %{_libdir}/libavdevice%{?build_suffix}.so.* -%{!?flavor:%{_mandir}/man3/lib*.3.* -%exclude %{_mandir}/man3/libavdevice.3* -} - -%files -n libavdevice%{?flavor} -%{_libdir}/libavdevice%{?build_suffix}.so.* -%{!?flavor:%{_mandir}/man3/libavdevice.3*} - %files devel %doc MAINTAINERS doc/APIchanges doc/*.txt %doc _doc/examples @@ -415,8 +456,13 @@ install -pm755 tools/qt-faststart %{buildroot}%{_bindir} %{_includedir}/%{name} %{_libdir}/pkgconfig/lib*.pc %{_libdir}/lib*.so +%{_mandir}/man3/* %changelog +* Fri Nov 21 2025 Funda Wang - 8.0.1-1 +- update to 8.0.1 +- split out libs + * Thu Oct 9 2025 wangziliang - 7.1-12 - fix-CVE-2025-10256 diff --git a/fix-CVE-2025-22919.patch b/fix-CVE-2025-22919.patch deleted file mode 100644 index a92e789..0000000 --- a/fix-CVE-2025-22919.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 746729aa53b6a6f6d3522f43fce84f21fd76cd5b Mon Sep 17 00:00:00 2001 -From: James Almer -Date: Tue, 15 Jul 2025 15:32:35 +0800 -Subject: [PATCH] avfilter/buffersrc: check for valid sample rate - ---- - libavfilter/buffersrc.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c -index b568200..c8195cd 100644 ---- a/libavfilter/buffersrc.c -+++ b/libavfilter/buffersrc.c -@@ -414,6 +414,12 @@ static av_cold int init_audio(AVFilterContext *ctx) - av_channel_layout_describe(&s->ch_layout, buf, sizeof(buf)); - } - -+ if (s->sample_rate <= 0) { -+ av_log(ctx, AV_LOG_ERROR, "Sample rate not set\n"); -+ return AVERROR(EINVAL); -+ } -+ -+ - if (!s->time_base.num) - s->time_base = (AVRational){1, s->sample_rate}; - --- -2.43.0 - diff --git a/fix_libsvgdec_compile_error.patch b/fix_libsvgdec_compile_error.patch deleted file mode 100644 index 1560668..0000000 --- a/fix_libsvgdec_compile_error.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a414e25b60b8d11e30479d4f33fb9a94719dae8e Mon Sep 17 00:00:00 2001 -From: technology208 -Date: Tue, 4 Jun 2024 10:44:30 +0800 -Subject: [PATCH] fix_libsvgdec_compile_error.patch - ---- - libavcodec/librsvgdec.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/libavcodec/librsvgdec.c b/libavcodec/librsvgdec.c -index c328fbc..756c26d 100644 ---- a/libavcodec/librsvgdec.c -+++ b/libavcodec/librsvgdec.c -@@ -90,8 +90,10 @@ static int librsvg_decode_frame(AVCodecContext *avctx, AVFrame *frame, - goto end; - - avctx->pix_fmt = AV_PIX_FMT_RGB32; -+#if LIBRSVG_MAJOR_VERSION > 2 || LIBRSVG_MAJOR_VERSION == 2 && LIBRSVG_MINOR_VERSION >= 52 - viewport.width = dimensions.width; - viewport.height = dimensions.height; -+#endif - - ret = ff_get_buffer(avctx, frame, 0); - if (ret < 0) --- -2.33.0 - -- Gitee