mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
extra/ffmpeg to 7.1-6
This commit is contained in:
parent
35cc66cefd
commit
66e0d3cc2f
3 changed files with 293 additions and 3 deletions
|
@ -1,7 +1,7 @@
|
|||
pkgbase = ffmpeg
|
||||
pkgdesc = Complete solution to record, convert and stream audio and video
|
||||
pkgver = 7.1
|
||||
pkgrel = 5
|
||||
pkgrel = 6
|
||||
epoch = 2
|
||||
url = https://ffmpeg.org
|
||||
arch = x86_64
|
||||
|
@ -104,9 +104,11 @@ pkgbase = ffmpeg
|
|||
options = debug
|
||||
source = git+https://git.ffmpeg.org/ffmpeg.git?signed#tag=507a51fbe9732f0f6f12f43ce12431e8faa834b7
|
||||
source = add-av_stream_get_first_dts-for-chromium.patch
|
||||
source = fix_build_with_texinfo-7.2.patch
|
||||
validpgpkeys = DD1EC9E8DE085C629B3E1846B18E8928B3948D64
|
||||
b2sums = c7ec6b1db61608195117b79f3f0c8f6323c3abeb39721359da0f10e7d739da8301e04ff5fa83c022f86fc760f66e00066f9a50d97b771f797ccc679f9d912c40
|
||||
b2sums = 555274228e09a233d92beb365d413ff5c718a782008075552cafb2130a3783cf976b51dfe4513c15777fb6e8397a34122d475080f2c4483e8feea5c0d878e6de
|
||||
b2sums = 7b33e9527322604532f2b26b5c78680c54d7e50c07ff6acaddd4d17e031724ae91474f46cb034d9d02fb0cf370d6477e1d4f5b04c4dddab5e8b319f03c0fc9b9
|
||||
|
||||
pkgname = ffmpeg
|
||||
depends = alsa-lib
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
pkgname=ffmpeg
|
||||
pkgver=7.1
|
||||
pkgrel=5
|
||||
pkgrel=6
|
||||
epoch=2
|
||||
pkgdesc='Complete solution to record, convert and stream audio and video'
|
||||
arch=(x86_64)
|
||||
|
@ -123,13 +123,21 @@ _tag=507a51fbe9732f0f6f12f43ce12431e8faa834b7
|
|||
source=(
|
||||
git+https://git.ffmpeg.org/ffmpeg.git?signed#tag=${_tag}
|
||||
add-av_stream_get_first_dts-for-chromium.patch
|
||||
fix_build_with_texinfo-7.2.patch
|
||||
)
|
||||
b2sums=('c7ec6b1db61608195117b79f3f0c8f6323c3abeb39721359da0f10e7d739da8301e04ff5fa83c022f86fc760f66e00066f9a50d97b771f797ccc679f9d912c40'
|
||||
'555274228e09a233d92beb365d413ff5c718a782008075552cafb2130a3783cf976b51dfe4513c15777fb6e8397a34122d475080f2c4483e8feea5c0d878e6de')
|
||||
'555274228e09a233d92beb365d413ff5c718a782008075552cafb2130a3783cf976b51dfe4513c15777fb6e8397a34122d475080f2c4483e8feea5c0d878e6de'
|
||||
'7b33e9527322604532f2b26b5c78680c54d7e50c07ff6acaddd4d17e031724ae91474f46cb034d9d02fb0cf370d6477e1d4f5b04c4dddab5e8b319f03c0fc9b9')
|
||||
validpgpkeys=(DD1EC9E8DE085C629B3E1846B18E8928B3948D64) # Michael Niedermayer <michael@niedermayer.cc>
|
||||
|
||||
prepare() {
|
||||
cd ffmpeg
|
||||
|
||||
# Fix build with texinfo-7.2
|
||||
# See https://www.linuxquestions.org/questions/slackware-14/texinfo-7-2-looks-to-have-broken-texinfo-convert-html-4175745581/
|
||||
# Patch taken from LSF: https://www.linuxfromscratch.org/patches/blfs/svn/ffmpeg-7.1-texinfo_fix-1.patch
|
||||
patch -Np1 -i ../fix_build_with_texinfo-7.2.patch
|
||||
|
||||
patch -Np1 -i ../add-av_stream_get_first_dts-for-chromium.patch # https://crbug.com/1251779
|
||||
|
||||
# VAAPI HEVC encode alignment fix
|
||||
|
|
280
extra/ffmpeg/fix_build_with_texinfo-7.2.patch
Normal file
280
extra/ffmpeg/fix_build_with_texinfo-7.2.patch
Normal file
|
@ -0,0 +1,280 @@
|
|||
Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org>
|
||||
Date: 2025-01-02
|
||||
Initial Package Version: 7.1
|
||||
Origin: Upstream Mailing List (https://ffmpeg.org/pipermail/ffmpeg-devel/2024-November/335575.html)
|
||||
Upstream Status: Submitted
|
||||
Description: Fixes building ffmpeg-7.1 with texinfo-7.2. The issue
|
||||
is due to API changes in the Texinfo::Convert::HTML
|
||||
perl submodule, where the gdt method was removed. The
|
||||
patch uses the cdt method instead, and portability
|
||||
guards are put into place for users who are using
|
||||
older versions of Texinfo. Thanks goes to Marty Jack
|
||||
for bringing it to our attention in the LFS ticket.
|
||||
|
||||
diff -Naurp ffmpeg-7.1.orig/doc/t2h.pm ffmpeg-7.1/doc/t2h.pm
|
||||
--- ffmpeg-7.1.orig/doc/t2h.pm 2025-01-02 14:52:50.960834600 -0600
|
||||
+++ ffmpeg-7.1/doc/t2h.pm 2025-01-02 14:53:01.048047754 -0600
|
||||
@@ -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 .= "<a name=\"$element_id\"></a>\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"} || <<EOT;
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
@@ -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) {
|
Loading…
Reference in a new issue