Init Packgae
This commit is contained in:
parent
c29e80d523
commit
2730b9e99a
355
clean_ffmpeg.sh
Executable file
355
clean_ffmpeg.sh
Executable file
@ -0,0 +1,355 @@
|
||||
#!/bin/bash
|
||||
# Copyright 2013 Tomas Popela <tpopela@redhat.com>
|
||||
# Copyright 2016-2017 Kevin Kofler <Kevin@tigcc.ticalc.org>
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
where=`pwd`
|
||||
|
||||
generated_files=`./get_free_ffmpeg_source_files.py $1 0`
|
||||
generated_files_headers="${generated_files//.c/.h}"
|
||||
generated_files_headers="${generated_files_headers//.S/.h}"
|
||||
generated_files_headers="${generated_files_headers//.asm/.h}"
|
||||
|
||||
cd $1/third_party/ffmpeg
|
||||
|
||||
header_files=" libavcodec/x86/inline_asm.h \
|
||||
libavcodec/x86/hpeldsp.h \
|
||||
libavcodec/x86/mathops.h \
|
||||
libavcodec/x86/vpx_arith.h \
|
||||
libavcodec/aarch64/vp8dsp.h \
|
||||
libavcodec/arm/vp8dsp.h \
|
||||
libavcodec/arm/vpx_arith.h \
|
||||
libavcodec/aac.h \
|
||||
libavcodec/aacps.h \
|
||||
libavcodec/aacpsdsp.h \
|
||||
libavcodec/aacsbrdata.h \
|
||||
libavcodec/aac_ac3_parser.h \
|
||||
libavcodec/aac_defines.h \
|
||||
libavcodec/ac3.h \
|
||||
libavcodec/ac3defs.h \
|
||||
libavcodec/ac3tab.h \
|
||||
libavcodec/adts_header.h \
|
||||
libavcodec/avcodec.h \
|
||||
libavcodec/blockdsp.h \
|
||||
libavcodec/bytestream.h \
|
||||
libavcodec/cbrt_data.h \
|
||||
libavcodec/cbrt_tablegen.h \
|
||||
libavcodec/codec.h \
|
||||
libavcodec/codec_id.h \
|
||||
libavcodec/codec_internal.h \
|
||||
libavcodec/codec_par.h \
|
||||
libavcodec/dct.h \
|
||||
libavcodec/dct32.h \
|
||||
libavcodec/defs.h \
|
||||
libavcodec/dv.h \
|
||||
libavcodec/error_resilience.h \
|
||||
libavcodec/fdctdsp.h \
|
||||
libavcodec/fft.h \
|
||||
libavcodec/fft-internal.h \
|
||||
libavcodec/fft_table.h \
|
||||
libavcodec/flac.h \
|
||||
libavcodec/flacdsp.h \
|
||||
libavcodec/flac_parse.h \
|
||||
libavcodec/frame_thread_encoder.h \
|
||||
libavcodec/get_bits.h \
|
||||
libavcodec/h263dsp.h \
|
||||
libavcodec/h264chroma.h \
|
||||
libavcodec/hevc.h \
|
||||
libavcodec/hpeldsp.h \
|
||||
libavcodec/hwaccels.h \
|
||||
libavcodec/hwconfig.h \
|
||||
libavcodec/idctdsp.h \
|
||||
libavcodec/internal.h \
|
||||
libavcodec/kbdwin.h \
|
||||
libavcodec/mathops.h \
|
||||
libavcodec/mdct15.c \
|
||||
libavcodec/mdct15.h \
|
||||
libavcodec/me_cmp.h \
|
||||
libavcodec/mlp_parse.h \
|
||||
libavcodec/motion_est.h \
|
||||
libavcodec/mpeg12.h \
|
||||
libavcodec/mpeg12data.h \
|
||||
libavcodec/mpeg12vlc.h \
|
||||
libavcodec/mpegaudio.h \
|
||||
libavcodec/mpegaudiodecheader.h \
|
||||
libavcodec/mpegaudiodec_common_tablegen.h \
|
||||
libavcodec/mpegaudiodsp.h \
|
||||
libavcodec/mpegaudio_tablegen.h \
|
||||
libavcodec/mpegpicture.h \
|
||||
libavcodec/mpegutils.h \
|
||||
libavcodec/mpegvideo.h \
|
||||
libavcodec/mpegvideodata.h \
|
||||
libavcodec/mpegvideoencdsp.h \
|
||||
libavcodec/options_table.h \
|
||||
libavcodec/opus.h \
|
||||
libavcodec/opusdsp.h \
|
||||
libavcodec/opus_celt.h \
|
||||
libavcodec/opus_pvq.h \
|
||||
libavcodec/opus_rc.h \
|
||||
libavcodec/packet.h \
|
||||
libavcodec/packet_internal.h \
|
||||
libavcodec/pcm_tablegen.h \
|
||||
libavcodec/pixblockdsp.h \
|
||||
libavcodec/pixels.h \
|
||||
libavcodec/png.h \
|
||||
libavcodec/pngdsp.h \
|
||||
libavcodec/put_bits.h \
|
||||
libavcodec/qpeldsp.h \
|
||||
libavcodec/ratecontrol.h \
|
||||
libavcodec/rectangle.h \
|
||||
libavcodec/rl.h \
|
||||
libavcodec/rnd_avg.h \
|
||||
libavcodec/sbr.h \
|
||||
libavcodec/sbrdsp.h \
|
||||
libavcodec/sinewin.h \
|
||||
libavcodec/sinewin_tablegen.h \
|
||||
libavcodec/startcode.h \
|
||||
libavcodec/thread.h \
|
||||
libavcodec/threadframe.h \
|
||||
libavcodec/unary.h \
|
||||
libavcodec/version.h \
|
||||
libavcodec/version_major.h \
|
||||
libavcodec/videodsp.h \
|
||||
libavcodec/vlc.h \
|
||||
libavcodec/vorbisdsp.h \
|
||||
libavcodec/vp3data.h \
|
||||
libavcodec/vp4data.h \
|
||||
libavcodec/vp3dsp.h \
|
||||
libavcodec/vp56.h \
|
||||
libavcodec/vp56dsp.h \
|
||||
libavcodec/vp8data.h \
|
||||
libavcodec/vp8dsp.h \
|
||||
libavcodec/vp89_rac.h \
|
||||
libavformat/apetag.h \
|
||||
libavformat/avformat.h \
|
||||
libavformat/dv.h \
|
||||
libavformat/img2.h \
|
||||
libavformat/internal.h \
|
||||
libavformat/mov_chan.h \
|
||||
libavformat/pcm.h \
|
||||
libavformat/rdt.h \
|
||||
libavformat/rtp.h \
|
||||
libavformat/rtpdec.h \
|
||||
libavformat/spdif.h \
|
||||
libavformat/srtp.h \
|
||||
libavformat/options_table.h \
|
||||
libavformat/version.h \
|
||||
libavformat/version_major.h \
|
||||
libavformat/w64.h \
|
||||
libavutil/aarch64/cpu.h \
|
||||
libavutil/x86/asm.h \
|
||||
libavutil/x86/bswap.h \
|
||||
libavutil/x86/cpu.h \
|
||||
libavutil/x86/emms.h
|
||||
libavutil/x86/intreadwrite.h \
|
||||
libavutil/x86/intmath.h
|
||||
libavutil/x86/timer.h \
|
||||
libavutil/attributes.h \
|
||||
libavutil/attributes_internal.h \
|
||||
libavutil/audio_fifo.h \
|
||||
libavutil/avassert.h \
|
||||
libavutil/avutil.h \
|
||||
libavutil/bswap.h \
|
||||
libavutil/common.h \
|
||||
libavutil/colorspace.h \
|
||||
libavutil/cpu.h \
|
||||
libavutil/cpu_internal.h \
|
||||
libavutil/dynarray.h \
|
||||
libavutil/ffmath.h \
|
||||
libavutil/fixed_dsp.h \
|
||||
libavutil/float_dsp.h \
|
||||
libavutil/imgutils.h \
|
||||
libavutil/imgutils_internal.h \
|
||||
libavutil/internal.h \
|
||||
libavutil/intfloat.h \
|
||||
libavutil/intreadwrite.h \
|
||||
libavutil/libm.h \
|
||||
libavutil/lls.h \
|
||||
libavutil/macros.h \
|
||||
libavutil/pixfmt.h \
|
||||
libavutil/qsort.h \
|
||||
libavutil/replaygain.h \
|
||||
libavutil/softfloat.h \
|
||||
libavutil/softfloat_tables.h \
|
||||
libavutil/thread.h \
|
||||
libavutil/timer.h \
|
||||
libavutil/timestamp.h \
|
||||
libavutil/tx_priv.h \
|
||||
libavutil/version.h \
|
||||
libswresample/swresample.h \
|
||||
libswresample/version.h \
|
||||
libswresample/version_major.h \
|
||||
compat/va_copy.h \
|
||||
compat/atomics/gcc/stdatomic.h "
|
||||
|
||||
manual_files=" libavcodec/aarch64/fft_neon.S \
|
||||
libavcodec/aarch64/h264pred_neon.S \
|
||||
libavcodec/aarch64/hpeldsp_neon.S \
|
||||
libavcodec/aarch64/mdct_neon.S \
|
||||
libavcodec/aarch64/neon.S \
|
||||
libavcodec/aarch64/vorbisdsp_neon.S \
|
||||
libavcodec/aarch64/vorbisdsp_init.c \
|
||||
libavcodec/aarch64/vp8dsp_neon.S \
|
||||
libavcodec/x86/hpeldsp.asm \
|
||||
libavcodec/x86/hpeldsp_rnd_template.c \
|
||||
libavcodec/x86/mdct15.asm \
|
||||
libavcodec/x86/mdct15_init.c \
|
||||
libavcodec/x86/rnd_template.c \
|
||||
libavcodec/x86/videodsp.asm \
|
||||
libavcodec/x86/videodsp_init.c \
|
||||
libavcodec/x86/vorbisdsp_init.c \
|
||||
libavcodec/x86/vp3dsp.asm \
|
||||
libavcodec/x86/vp8dsp.asm \
|
||||
libavcodec/autorename_libavcodec_mdct15.c \
|
||||
libavcodec/bit_depth_template.c \
|
||||
libavcodec/fft_template.c \
|
||||
libavcodec/flacdec.c \
|
||||
libavcodec/flacdsp.c \
|
||||
libavcodec/flacdsp_template.c \
|
||||
libavcodec/flacdsp_lpc_template.c \
|
||||
libavcodec/h264pred_template.c \
|
||||
libavcodec/hpel_template.c \
|
||||
libavcodec/hpeldsp.c \
|
||||
libavcodec/mdct15.c \
|
||||
libavcodec/mdct_template.c \
|
||||
libavcodec/options.c \
|
||||
libavcodec/pcm.c \
|
||||
libavcodec/pel_template.c \
|
||||
libavcodec/utils.c \
|
||||
libavcodec/videodsp.c \
|
||||
libavcodec/videodsp_template.c \
|
||||
libavcodec/vorbisdsp.c \
|
||||
libavcodec/vp3dsp.c \
|
||||
libavcodec/vp8dsp.c \
|
||||
libavformat/flacdec.c \
|
||||
libavformat/options.c \
|
||||
libavformat/pcm.c \
|
||||
libavformat/utils.c \
|
||||
libavformat/version.c \
|
||||
libavutil/aarch64/asm.S \
|
||||
libavutil/aarch64/bswap.h \
|
||||
libavutil/aarch64/cpu.c \
|
||||
libavutil/aarch64/float_dsp_init.c \
|
||||
libavutil/aarch64/float_dsp_neon.S \
|
||||
libavutil/aarch64/timer.h \
|
||||
libavutil/cpu.c \
|
||||
libavutil/fixed_dsp.c \
|
||||
libavutil/float_dsp.c \
|
||||
libavutil/imgutils.c \
|
||||
libavutil/tx_float.c \
|
||||
libavutil/tx_template.c \
|
||||
libavutil/utils.c \
|
||||
libavutil/version.c \
|
||||
libavutil/x86/cpu.c \
|
||||
libavutil/x86/float_dsp_init.c \
|
||||
libavutil/x86/tx_float_init.c \
|
||||
libavutil/x86/x86inc.asm \
|
||||
libavutil/x86/x86util.asm "
|
||||
|
||||
mp3_files=" libavcodec/aarch64/aacpsdsp_init_aarch64.c \
|
||||
libavcodec/aarch64/aacpsdsp_neon.S \
|
||||
libavcodec/aarch64/autorename_libavcodec_aarch64_aacpsdsp_neon.S \
|
||||
libavcodec/aarch64/autorename_libavcodec_aarch64_sbrdsp_neon.S \
|
||||
libavcodec/aarch64/mpegaudiodsp_init.c \
|
||||
libavcodec/aarch64/mpegaudiodsp_neon.S \
|
||||
libavcodec/aarch64/sbrdsp_init_aarch64.c \
|
||||
libavcodec/aarch64/sbrdsp_neon.S \
|
||||
libavcodec/aac_ac3_parser.c \
|
||||
libavcodec/aac_parser.c \
|
||||
libavcodec/aacps_float.c \
|
||||
libavcodec/aacpsdsp_float.c \
|
||||
libavcodec/aacsbr.c \
|
||||
libavcodec/aactab.c \
|
||||
libavcodec/ac3tab.c \
|
||||
libavcodec/autorename_libavcodec_mpegaudiodsp.c \
|
||||
libavcodec/autorename_libavcodec_sbrdsp.c \
|
||||
libavcodec/cbrt_data.c \
|
||||
libavcodec/dct.c \
|
||||
libavcodec/dct32_fixed.c \
|
||||
libavcodec/dct32_float.c \
|
||||
libavcodec/dct32_template.c \
|
||||
libavcodec/kbdwin.c \
|
||||
libavcodec/mpegaudio.c \
|
||||
libavcodec/mpegaudio_parser.c \
|
||||
libavcodec/mpegaudiodec_fixed.c \
|
||||
libavcodec/mpegaudiodec_template.c \
|
||||
libavcodec/mpegaudiodecheader.c \
|
||||
libavcodec/mpegaudiodsp.c \
|
||||
libavcodec/mpegaudiodsp_data.c \
|
||||
libavcodec/mpegaudiodsp_fixed.c \
|
||||
libavcodec/mpegaudiodsp_float.c \
|
||||
libavcodec/mpegaudiodsp_template.c \
|
||||
libavcodec/sbrdsp.c \
|
||||
libavcodec/sbrdsp_template.c \
|
||||
libavcodec/sinewin.c \
|
||||
libavcodec/x86/dct_init.c \
|
||||
libavcodec/x86/dct32.asm \
|
||||
libavcodec/x86/imdct36.asm \
|
||||
libavcodec/x86/mpegaudiodsp.c \
|
||||
libavcodec/x86/sbrdsp_init.c \
|
||||
libavcodec/x86/sbrdsp.asm \
|
||||
libavformat/aacdec.c \
|
||||
libavformat/apetag.c \
|
||||
libavformat/img2.c \
|
||||
libavformat/mov.c \
|
||||
libavformat/mov_chan.c \
|
||||
libavformat/mp3dec.c "
|
||||
|
||||
other_files=" BUILD.gn \
|
||||
Changelog \
|
||||
COPYING.GPLv2 \
|
||||
COPYING.GPLv3 \
|
||||
COPYING.LGPLv2.1 \
|
||||
COPYING.LGPLv3 \
|
||||
CREDITS \
|
||||
CREDITS.chromium \
|
||||
ffmpeg_generated.gni \
|
||||
ffmpeg_options.gni \
|
||||
INSTALL.md \
|
||||
LICENSE.md \
|
||||
MAINTAINERS \
|
||||
OWNERS \
|
||||
README.chromium \
|
||||
README.md \
|
||||
RELEASE "
|
||||
|
||||
files=$generated_files$manual_files$other_files$generated_files_headers$header_files
|
||||
|
||||
for f in $files
|
||||
do
|
||||
dir_name=`dirname $f`/
|
||||
if [[ $dir_name == ./ ]]; then
|
||||
dir_name=
|
||||
else
|
||||
mkdir -p ../tmp_ffmpeg/$dir_name
|
||||
fi
|
||||
|
||||
cp -p $f ../tmp_ffmpeg/$dir_name 2>/dev/null
|
||||
done
|
||||
|
||||
# whole directory
|
||||
mkdir -p ../tmp_ffmpeg/chromium
|
||||
cp -pr chromium/config ../tmp_ffmpeg/chromium/
|
||||
|
||||
cd ..
|
||||
rm -rf ffmpeg
|
||||
mv tmp_ffmpeg ffmpeg
|
||||
|
||||
cd $where
|
||||
70
clean_qtwebengine.sh
Executable file
70
clean_qtwebengine.sh
Executable file
@ -0,0 +1,70 @@
|
||||
#!/bin/bash
|
||||
# Copyright 2015-2017 Kevin Kofler <Kevin@tigcc.ticalc.org>
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
if [ -z "$1" ] ; then
|
||||
echo "usage: ./clean_qtwebengine.sh VERSION"
|
||||
echo "e.g.: ./clean_qtwebengine.sh 6.5.0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DIRNAME="qtwebengine-everywhere-src-$1"
|
||||
|
||||
echo "removing $DIRNAME"
|
||||
rm -rf "$DIRNAME" || exit $?
|
||||
|
||||
if [ -f "$DIRNAME.tar.xz" ] ; then
|
||||
echo "unpacking $DIRNAME.tar.xz"
|
||||
XZ_OPT="-T 4" tar xJf "$DIRNAME.tar.xz" || exit $?
|
||||
elif [ -f "$DIRNAME.tar.bz2" ] ; then
|
||||
echo "unpacking $DIRNAME.tar.bz2"
|
||||
tar xjf "$DIRNAME.tar.bz2" || exit $?
|
||||
elif [ -f "$DIRNAME.tar.gz" ] ; then
|
||||
echo "unpacking $DIRNAME.tar.gz"
|
||||
tar xzf "$DIRNAME.tar.gz" || exit $?
|
||||
elif [ -f "$DIRNAME.7z" ] ; then
|
||||
echo "unpacking $DIRNAME.7z"
|
||||
if type 7za >/dev/null 2>/dev/null ; then
|
||||
7za x "$DIRNAME.7z" || exit $?
|
||||
elif type 7z >/dev/null 2>/dev/null ; then
|
||||
7z x "$DIRNAME.7z" || exit $?
|
||||
else
|
||||
echo "error: p7zip required"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "error: no archive for $DIRNAME found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "running clean_ffmpeg.sh"
|
||||
./clean_ffmpeg.sh "$DIRNAME/src/3rdparty/chromium" || exit $?
|
||||
|
||||
echo "ripping out openh264 sources, keeping just header files"
|
||||
find "$DIRNAME/src/3rdparty/chromium/third_party/openh264/src" -type f -not -name '*.h' -delete || exit $?
|
||||
|
||||
echo "repacking as $DIRNAME-clean.tar.xz"
|
||||
XZ_OPT="-8 -T 2" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $?
|
||||
|
||||
echo "removing $DIRNAME"
|
||||
rm -rf "$DIRNAME" || exit $?
|
||||
|
||||
echo "done"
|
||||
exit 0
|
||||
82
get_free_ffmpeg_source_files.py
Executable file
82
get_free_ffmpeg_source_files.py
Executable file
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/python3
|
||||
# Copyright 2015 Tomas Popela <tpopela@redhat.com>
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
def append_sources (input_sources, output_sources):
|
||||
|
||||
# Get the source files.
|
||||
source_files = re.findall(r"\"(.*?)\"", input_sources)
|
||||
output_sources += source_files
|
||||
|
||||
|
||||
def parse_sources(input_sources, output_sources, arch_not_arm):
|
||||
|
||||
# Get the type of sources in one group and sources itself in the other one.
|
||||
blocks = re.findall(r"(ffmpeg[^\s]*).*?\[(.*?)]", input_sources, re.DOTALL)
|
||||
for block in blocks:
|
||||
if (arch_not_arm):
|
||||
if not 'ffmpeg_gas_sources' in block[0]:
|
||||
append_sources (block[1], output_sources)
|
||||
else:
|
||||
append_sources (block[1], output_sources)
|
||||
|
||||
|
||||
def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
|
||||
|
||||
with open(gyni_path, "r") as input_file:
|
||||
content = input_file.read().replace('\n', '')
|
||||
|
||||
output_sources = []
|
||||
# Get all the sections.
|
||||
sections = re.findall(r"if (.*?})", content, re.DOTALL)
|
||||
for section in sections:
|
||||
# Get all the conditions (first group) and sources (second group) for the
|
||||
# current section.
|
||||
blocks = re.findall(r"(\(.*?\))\s\{(.*?)\}", section, re.DOTALL)
|
||||
for block in blocks:
|
||||
conditions = re.findall(r"\(?\((.*?)\)", block[0])
|
||||
inserted = False
|
||||
for condition in conditions:
|
||||
if inserted:
|
||||
break
|
||||
limitations = ['ffmpeg_branding == "Chrome"', 'ffmpeg_branding == "ChromeOS"']
|
||||
if ('use_linux_config' in condition) and not any(limitation in condition for limitation in limitations):
|
||||
if (arch_not_arm):
|
||||
if ('x64' in condition) or ('x86' in condition):
|
||||
parse_sources (block[1], output_sources, arch_not_arm)
|
||||
inserted = True
|
||||
else:
|
||||
parse_sources (block[1], output_sources, arch_not_arm)
|
||||
inserted = True
|
||||
|
||||
if len(output_sources) == 0:
|
||||
sys.stderr.write("Something went wrong, no sources parsed!\n")
|
||||
sys.exit(1)
|
||||
|
||||
print(' '.join(output_sources))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1]
|
||||
parse_ffmpeg_gyni_file (path, False if sys.argv[2] == "0" else True)
|
||||
4
macros.qt6-qtwebengine
Normal file
4
macros.qt6-qtwebengine
Normal file
@ -0,0 +1,4 @@
|
||||
%_qt6_qtwebengine @@NAME@@
|
||||
%_qt6_qtwebengine_epoch @@EPOCH@@
|
||||
%_qt6_qtwebengine_version @@VERSION@@
|
||||
%_qt6_qtwebengine_evr @@EVR@@
|
||||
BIN
pulseaudio-12.2-headers.tar.gz
Normal file
BIN
pulseaudio-12.2-headers.tar.gz
Normal file
Binary file not shown.
598
qt6-qtwebengine.spec
Normal file
598
qt6-qtwebengine.spec
Normal file
@ -0,0 +1,598 @@
|
||||
%global qt_module qtwebengine
|
||||
|
||||
%global _hardened_build 1
|
||||
|
||||
# package-notes causes FTBFS (#2043178)
|
||||
%undefine _package_note_file
|
||||
|
||||
%global use_system_libwebp 1
|
||||
%global use_system_jsoncpp 1
|
||||
%global use_system_re2 1
|
||||
|
||||
%global use_system_libicu 1
|
||||
|
||||
# NEON support on ARM (detected at runtime) - disable this if you are hitting
|
||||
# FTBFS due to e.g. GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495
|
||||
#global arm_neon 1
|
||||
|
||||
# the QMake CONFIG flags to force debugging information to be produced in
|
||||
# release builds, and for all parts of the code
|
||||
%ifarch %{arm} aarch64
|
||||
# the ARM builder runs out of memory during linking with the full setting below,
|
||||
# so omit debugging information for the parts upstream deems it dispensable for
|
||||
# (webcore, v8base)
|
||||
%global debug_config %{nil}
|
||||
%else
|
||||
%global debug_config force_debug_info
|
||||
# webcore_debug v8base_debug
|
||||
%endif
|
||||
|
||||
# spellchecking dictionary directory
|
||||
%global _qtwebengine_dictionaries_dir %{_qt6_datadir}/qtwebengine_dictionaries
|
||||
|
||||
# exclude plugins
|
||||
%global __provides_exclude ^lib.*plugin\\.so.*$
|
||||
# and designer plugins
|
||||
%global __provides_exclude_from ^%{_qt6_plugindir}/.*\\.so$
|
||||
|
||||
Summary: Qt6 - QtWebEngine components
|
||||
Name: qt6-qtwebengine
|
||||
Version: 6.5.0
|
||||
Release: 1
|
||||
|
||||
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
||||
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
|
||||
# The other licenses are from Chromium and the code it bundles
|
||||
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
|
||||
URL: http://www.qt.io
|
||||
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
|
||||
# ./qtwebengine-release.sh
|
||||
# ./clean_qtwebengine.sh 6.4.1
|
||||
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
|
||||
Source100: qtwebengine-everywhere-src-%{version}-clean.tar.xz.0
|
||||
Source101: qtwebengine-everywhere-src-%{version}-clean.tar.xz.1
|
||||
|
||||
# cleanup scripts used above
|
||||
Source2: clean_qtwebengine.sh
|
||||
Source3: clean_ffmpeg.sh
|
||||
Source4: get_free_ffmpeg_source_files.py
|
||||
# macros
|
||||
Source10: macros.qt6-qtwebengine
|
||||
|
||||
# pulseaudio headers
|
||||
Source20: pulseaudio-12.2-headers.tar.gz
|
||||
|
||||
# workaround FTBFS against kernel-headers-5.2.0+
|
||||
Patch1: qtwebengine-SIOCGSTAMP.patch
|
||||
Patch2: qtwebengine-link-pipewire.patch
|
||||
# Fix/workaround FTBFS on aarch64 with newer glibc
|
||||
Patch3: qtwebengine-aarch64-new-stat.patch
|
||||
Patch4: qtwebengine-ffmpeg-first_dts.patch
|
||||
|
||||
# FTBS warning: elaborated-type-specifier for a scoped enum must not
|
||||
# use the 'class' keyword
|
||||
Patch50: qtwebengine-fix-build.patch
|
||||
|
||||
## Upstream patches:
|
||||
# https://webrtc-review.googlesource.com/c/src/+/285464
|
||||
Patch100: qtwebengine-webrtc-dlopen-h264.patch
|
||||
|
||||
## Upstreamable patches:
|
||||
Patch110: qtwebengine-blink-dlopen-h264.patch
|
||||
|
||||
# handled by qt6-srpm-macros, which defines %%qt6_qtwebengine_arches
|
||||
# FIXME use/update qt6_qtwebengine_arches
|
||||
# 32-bit arches not supported (https://bugreports.qt.io/browse/QTBUG-102143)
|
||||
ExclusiveArch: aarch64 x86_64
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: make
|
||||
BuildRequires: qt6-srpm-macros
|
||||
BuildRequires: qt6-qtbase-devel
|
||||
BuildRequires: qt6-qtbase-private-devel
|
||||
# TODO: check of = is really needed or if >= would be good enough -- rex
|
||||
%{?_qt6:Requires: %{_qt6}%{?_isa} = %{_qt6_version}}
|
||||
BuildRequires: qt6-qtdeclarative-devel
|
||||
BuildRequires: qt6-qtlocation-devel
|
||||
BuildRequires: qt6-qtsensors-devel
|
||||
BuildRequires: qt6-qtsvg-devel
|
||||
BuildRequires: qt6-qttools-static
|
||||
BuildRequires: qt6-qtquickcontrols2-devel
|
||||
BuildRequires: qt6-qtwebchannel-devel
|
||||
# for examples?
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: cmake
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
BuildRequires: gcc-c++
|
||||
# gn links statically (for now)
|
||||
BuildRequires: libstdc++-static
|
||||
BuildRequires: git-core
|
||||
BuildRequires: gperf
|
||||
BuildRequires: krb5-devel
|
||||
%if 0%{?use_system_libicu}
|
||||
BuildRequires: libicu-devel >= 65
|
||||
%endif
|
||||
BuildRequires: libjpeg-devel
|
||||
BuildRequires: nodejs
|
||||
%if 0%{?use_system_re2}
|
||||
BuildRequires: re2-devel
|
||||
%endif
|
||||
BuildRequires: snappy-devel
|
||||
BuildConflicts: minizip-devel
|
||||
Provides: bundled(minizip) = 2.8.1
|
||||
BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: pkgconfig(egl)
|
||||
BuildRequires: pkgconfig(epoxy)
|
||||
BuildRequires: pkgconfig(expat)
|
||||
BuildRequires: pkgconfig(fontconfig)
|
||||
BuildRequires: pkgconfig(freetype2)
|
||||
BuildRequires: pkgconfig(gbm)
|
||||
BuildRequires: pkgconfig(gio-2.0)
|
||||
BuildRequires: pkgconfig(gl)
|
||||
BuildRequires: pkgconfig(glib-2.0)
|
||||
BuildRequires: pkgconfig(gobject-2.0)
|
||||
BuildRequires: pkgconfig(harfbuzz)
|
||||
%if 0%{?use_system_jsoncpp}
|
||||
BuildRequires: pkgconfig(jsoncpp)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(lcms2)
|
||||
BuildRequires: pkgconfig(libcap)
|
||||
BuildRequires: pkgconfig(libdrm)
|
||||
BuildRequires: pkgconfig(libevent)
|
||||
BuildRequires: pkgconfig(libpci)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
BuildRequires: pkgconfig(libpng)
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
BuildRequires: pkgconfig(libudev)
|
||||
%if 0%{?use_system_libwebp}
|
||||
BuildRequires: pkgconfig(libwebp) >= 0.6.0
|
||||
%endif
|
||||
BuildRequires: pkgconfig(nss)
|
||||
BuildRequires: pkgconfig(opus)
|
||||
BuildRequires: pkgconfig(poppler-cpp)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xcomposite)
|
||||
BuildRequires: pkgconfig(xcursor)
|
||||
BuildRequires: pkgconfig(xdamage)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xfixes)
|
||||
BuildRequires: pkgconfig(xi)
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(xkbfile)
|
||||
BuildRequires: pkgconfig(xrandr)
|
||||
BuildRequires: pkgconfig(xrender)
|
||||
BuildRequires: pkgconfig(xscrnsaver)
|
||||
BuildRequires: pkgconfig(xshmfence)
|
||||
BuildRequires: pkgconfig(xtst)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
## https://bugreports.qt.io/browse/QTBUG-59094
|
||||
## requires libxml2 built with icu support
|
||||
#BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0)
|
||||
BuildRequires: perl-interpreter
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-html5lib
|
||||
BuildRequires: pkgconfig(vpx) >= 1.8.0
|
||||
BuildRequires: pkgconfig(libavcodec)
|
||||
BuildRequires: pkgconfig(libavformat)
|
||||
BuildRequires: pkgconfig(libavutil)
|
||||
|
||||
# extra (non-upstream) functions needed, see
|
||||
# src/3rdparty/chromium/third_party/sqlite/README.chromium for details
|
||||
#BuildRequires: pkgconfig(sqlite3)
|
||||
|
||||
## Various bundled libraries that Chromium does not support unbundling :-(
|
||||
## Only the parts actually built are listed.
|
||||
## Query for candidates:
|
||||
## grep third_party/ build.log | sed 's!third_party/!\nthird_party/!g' | \
|
||||
## grep third_party/ | sed 's!^third_party/!!g' | sed 's!/.*$!!g' | \
|
||||
## sed 's/\;.*$//g' | sed 's/ .*$//g' | sort | uniq | less
|
||||
## some false positives where only shim headers are generated for some reason
|
||||
## some false positives with dummy placeholder dirs (swiftshader, widevine)
|
||||
## some false negatives where a header-only library is bundled (e.g. x86inc)
|
||||
## Spot's chromium.spec also has a list that I checked.
|
||||
|
||||
# Of course, Chromium itself is bundled. It cannot be unbundled because it is
|
||||
# not a library, but forked (modified) application code.
|
||||
Provides: bundled(chromium) = 102.0.5005.177
|
||||
|
||||
# Bundled in src/3rdparty/chromium/third_party:
|
||||
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
|
||||
# except where specified otherwise.
|
||||
# Note that many of those libraries are git snapshots, so version numbers are
|
||||
# necessarily approximate.
|
||||
# Also note that the list is probably not complete anymore due to Chromium
|
||||
# adding more and more bundled stuff at every release, some of which (but not
|
||||
# all) is actually built in QtWebEngine.
|
||||
# src/3rdparty/chromium/third_party/angle/doc/ChoosingANGLEBranch.md points to
|
||||
# http://omahaproxy.appspot.com/deps.json?version=87.0.4280.144 chromium_branch
|
||||
Provides: bundled(angle)
|
||||
# Google's fork of OpenSSL
|
||||
# We cannot build against NSS instead because it no longer works with NSS 3.21:
|
||||
# HTTPS on, ironically, Google's sites (Google, YouTube, etc.) stops working
|
||||
# completely and produces only ERR_SSL_PROTOCOL_ERROR errors:
|
||||
# http://kaosx.us/phpBB3/viewtopic.php?t=1235
|
||||
# https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1520568
|
||||
# So we have to do what Chromium now defaults to (since 47): a "chimera build",
|
||||
# i.e., use the BoringSSL code and the system NSS certificates.
|
||||
Provides: bundled(boringssl)
|
||||
Provides: bundled(brotli)
|
||||
# Don't get too excited. MPEG and other legally problematic stuff is stripped
|
||||
# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and
|
||||
# get_free_ffmpeg_source_files.py.
|
||||
# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number
|
||||
Provides: bundled(ffmpeg) = 5.1.2
|
||||
Provides: bundled(hunspell) = 1.6.0
|
||||
Provides: bundled(iccjpeg)
|
||||
# bundled as "khronos", headers only
|
||||
Provides: bundled(khronos_headers)
|
||||
# bundled as "leveldatabase"
|
||||
Provides: bundled(leveldb) = 1.23
|
||||
# bundled as "libjingle_xmpp"
|
||||
Provides: bundled(libjingle)
|
||||
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
|
||||
Provides: bundled(libsrtp) = 2.4.0
|
||||
# bundled as "libxml"
|
||||
# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h
|
||||
Provides: bundled(libxml2) = 2.9.13
|
||||
# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version
|
||||
Provides: bundled(libxslt) = 1.1.3
|
||||
Provides: bundled(libyuv) = 1819
|
||||
Provides: bundled(modp_b64)
|
||||
Provides: bundled(ots)
|
||||
Provides: bundled(re2)
|
||||
# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version
|
||||
Provides: bundled(protobuf) = 3.13.0.1
|
||||
Provides: bundled(qcms) = 4
|
||||
Provides: bundled(skia)
|
||||
# bundled as "smhasher"
|
||||
Provides: bundled(SMHasher) = 0-147
|
||||
Provides: bundled(sqlite) = 3.39.4
|
||||
Provides: bundled(usrsctp)
|
||||
Provides: bundled(webrtc) = 90
|
||||
|
||||
%ifarch %{ix86} x86_64
|
||||
# bundled by ffmpeg and libvpx:
|
||||
# header (for assembly) only
|
||||
Provides: bundled(x86inc)
|
||||
%endif
|
||||
|
||||
# Bundled in src/3rdparty/chromium/base/third_party:
|
||||
# Check src/3rdparty/chromium/third_party/base/*/README.chromium for version
|
||||
# numbers, except where specified otherwise.
|
||||
Provides: bundled(dynamic_annotations) = 4384
|
||||
Provides: bundled(superfasthash) = 0
|
||||
Provides: bundled(symbolize)
|
||||
# bundled as "valgrind", headers only
|
||||
Provides: bundled(valgrind.h)
|
||||
# bundled as "xdg_mime"
|
||||
Provides: bundled(xdg-mime)
|
||||
# bundled as "xdg_user_dirs"
|
||||
Provides: bundled(xdg-user-dirs) = 0.10
|
||||
|
||||
# Bundled in src/3rdparty/chromium/net/third_party:
|
||||
# Check src/3rdparty/chromium/third_party/net/*/README.chromium for version
|
||||
# numbers, except where specified otherwise.
|
||||
Provides: bundled(mozilla_security_manager) = 1.9.2
|
||||
|
||||
# Bundled in src/3rdparty/chromium/url/third_party:
|
||||
# Check src/3rdparty/chromium/third_party/url/*/README.chromium for version
|
||||
# numbers, except where specified otherwise.
|
||||
# bundled as "mozilla", file renamed and modified
|
||||
Provides: bundled(nsURLParsers)
|
||||
|
||||
# Bundled outside of third_party, apparently not considered as such by Chromium:
|
||||
Provides: bundled(mojo)
|
||||
# see src/3rdparty/chromium/v8/include/v8_version.h for the version number
|
||||
Provides: bundled(v8) = 10.2.154.16
|
||||
# bundled by v8 (src/3rdparty/chromium/v8/src/base/ieee754.cc)
|
||||
# The version number is 5.3, the last version that upstream released, years ago:
|
||||
# http://www.netlib.org/fdlibm/readme
|
||||
Provides: bundled(fdlibm) = 5.3
|
||||
|
||||
%{?_qt6_version:Requires: qt6-qtbase%{?_isa} = %{_qt6_version}}
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: qt6-qtbase-devel%{?_isa}
|
||||
Requires: qt6-qtdeclarative-devel%{?_isa}
|
||||
# not arch'd for now, see if can get away with avoiding multilib'ing -- rex
|
||||
Requires: %{name}-devtools = %{version}-%{release}
|
||||
%description devel
|
||||
%{summary}.
|
||||
|
||||
%package devtools
|
||||
Summary: WebEngine devtools_resources
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
%description devtools
|
||||
Support for remote debugging.
|
||||
|
||||
%package examples
|
||||
Summary: Example files for %{name}
|
||||
|
||||
%description examples
|
||||
%{summary}.
|
||||
|
||||
%prep
|
||||
cat %{SOURCE100} %{SOURCE101} > %{SOURCE0}
|
||||
%setup -q -n %{qt_module}-everywhere-src-%{version} -a20
|
||||
|
||||
mv pulse src/3rdparty/chromium/
|
||||
|
||||
pushd src/3rdparty/chromium
|
||||
popd
|
||||
|
||||
%patch1 -p1 -b .SIOCGSTAMP
|
||||
%patch2 -p1 -b .link-pipewire
|
||||
%patch3 -p1 -b .aarch64-new-stat
|
||||
%patch4 -p1 -b .qtwebengine-ffmpeg-first_dts
|
||||
|
||||
%patch50 -p1 -b .fix-build.patch
|
||||
|
||||
## upstream patches
|
||||
%patch100 -p1 -b .webrtc-dlopen-h264
|
||||
|
||||
## upstreamable patches
|
||||
%patch110 -p1 -b .blink-dlopen-h264
|
||||
|
||||
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
|
||||
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
|
||||
sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \
|
||||
src/3rdparty/chromium/build/toolchain/linux/BUILD.gn
|
||||
|
||||
%if 0%{?use_system_re2}
|
||||
# http://bugzilla.redhat.com/1337585
|
||||
# can't just delete, but we'll overwrite with system headers to be on the safe side
|
||||
cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/src/re2/
|
||||
%endif
|
||||
|
||||
# copy the Chromium license so it is installed with the appropriate name
|
||||
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
|
||||
|
||||
# consider doing this as part of the tarball creation step instead? rdieter
|
||||
# fix/workaround
|
||||
# fatal error: QtWebEngineCore/qtwebenginecoreglobal.h: No such file or directory
|
||||
# if [ ! -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" ]; then
|
||||
# {_qt6_libexecdir}/syncqt -version {version}
|
||||
# fi
|
||||
#
|
||||
# # abort if this doesn't get created by syncqt.pl
|
||||
# test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h"
|
||||
|
||||
|
||||
%build
|
||||
export STRIP=strip
|
||||
export NINJAFLAGS="%{__ninja_common_opts}"
|
||||
export NINJA_PATH=%{__ninja}
|
||||
|
||||
%cmake_qt6 \
|
||||
-DCMAKE_TOOLCHAIN_FILE:STRING="%{_libdir}/cmake/Qt6/qt.toolchain.cmake" \
|
||||
-DFEATURE_qtpdf_build:BOOL=ON \
|
||||
-DFEATURE_webengine_developer_build:BOOL=OFF \
|
||||
-DFEATURE_webengine_embedded_build:BOOL=OFF \
|
||||
-DFEATURE_webengine_extensions:BOOL=ON \
|
||||
-DFEATURE_webengine_kerberos:BOOL=ON \
|
||||
-DFEATURE_webengine_native_spellchecker:BOOL=OFF \
|
||||
-DFEATURE_webengine_printing_and_pdf:BOOL=ON \
|
||||
-DFEATURE_webengine_proprietary_codecs:BOOL=ON \
|
||||
-DFEATURE_webengine_system_icu:BOOL=%{?use_system_libicu} \
|
||||
-DFEATURE_webengine_system_libevent:BOOL=ON \
|
||||
-DFEATURE_webengine_system_ffmpeg:BOOL=ON \
|
||||
-DFEATURE_webengine_webrtc:BOOL=ON \
|
||||
-DFEATURE_webengine_webrtc_pipewire:BOOL=ON \
|
||||
-DQT_BUILD_EXAMPLES:BOOL=ON
|
||||
|
||||
cmake --build . %{?_smp_mflags} --verbose
|
||||
|
||||
|
||||
%install
|
||||
DESTDIR="%{buildroot}" cmake --install .
|
||||
|
||||
# rpm macros
|
||||
install -p -m644 -D %{SOURCE10} \
|
||||
%{buildroot}%{_rpmmacrodir}/macros.qt6-qtwebengine
|
||||
sed -i \
|
||||
-e "s|@@NAME@@|%{name}|g" \
|
||||
-e "s|@@EPOCH@@|%{?epoch}%{!?epoch:0}|g" \
|
||||
-e "s|@@VERSION@@|%{version}|g" \
|
||||
-e "s|@@EVR@@|%{?epoch:%{epoch:}}%{version}-%{release}|g" \
|
||||
%{buildroot}%{_rpmmacrodir}/macros.qt6-qtwebengine
|
||||
|
||||
# .prl/.la file love
|
||||
# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs
|
||||
pushd %{buildroot}%{_qt6_libdir}
|
||||
for prl_file in libQt6*.prl ; do
|
||||
sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file}
|
||||
if [ -f "$(basename ${prl_file} .prl).so" ]; then
|
||||
rm -fv "$(basename ${prl_file} .prl).la"
|
||||
sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file}
|
||||
fi
|
||||
done
|
||||
# explicitly omit, at least until there's a real library installed associated with it -- rex
|
||||
rm -fv Qt6WebEngineCore.la
|
||||
popd
|
||||
|
||||
mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir}
|
||||
|
||||
# adjust cmake dep(s) to allow for using the same Qt6 that was used to build it
|
||||
# using the lesser of %%version, %%_qt6_version
|
||||
%global lesser_version $(echo -e "%{version}\\n%{_qt6_version}" | sort -V | head -1)
|
||||
sed -i -e "s|%{version} \${_Qt6WebEngine|%{lesser_version} \${_Qt6WebEngine|" \
|
||||
%{buildroot}%{_qt6_libdir}/cmake/Qt6WebEngine*/Qt6WebEngine*Config.cmake
|
||||
|
||||
|
||||
#%filetriggerin -- %{_datadir}/myspell
|
||||
%filetriggerin -- %{_datadir}/hunspell
|
||||
|
||||
while read filename ; do
|
||||
case "$filename" in
|
||||
*.dic)
|
||||
bdicname=%{_qtwebengine_dictionaries_dir}/`basename -s .dic "$filename"`.bdic
|
||||
%{_qt6_libdir}/qt6/libexec/qwebengine_convert_dict "$filename" "$bdicname" &> /dev/null || :
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
%files
|
||||
%license LICENSE.*
|
||||
%if 0%{?docs}
|
||||
%license src/webengine/doc/src/qtwebengine-3rdparty.qdoc
|
||||
%endif
|
||||
%{_qt6_libdir}/libQt6Pdf.so.*
|
||||
%{_qt6_libdir}/libQt6PdfQuick.so.*
|
||||
%{_qt6_libdir}/libQt6PdfWidgets.so.*
|
||||
%{_qt6_libdir}/libQt6WebEngineCore.so.*
|
||||
%{_qt6_libdir}/libQt6WebEngineQuick.so.*
|
||||
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.so.*
|
||||
%{_qt6_libdir}/libQt6WebEngineWidgets.so.*
|
||||
%{_qt6_libdir}/qt6/libexec/gn
|
||||
%{_qt6_libdir}/qt6/libexec/qwebengine_convert_dict
|
||||
%{_qt6_libdir}/qt6/libexec/QtWebEngineProcess
|
||||
%dir %{_qt6_libdir}/qt6/qml/QtQuick/Pdf
|
||||
%{_qt6_libdir}/qt6/qml/QtQuick/Pdf/*
|
||||
%dir %{_qt6_libdir}/qt6/qml/QtWebEngine
|
||||
%{_qt6_libdir}/qt6/qml/QtWebEngine/*
|
||||
#%{_qt6_plugindir}/designer/libqwebengineview.so
|
||||
%{_qt6_plugindir}/imageformats/libqpdf.so
|
||||
%dir %{_qt6_datadir}/resources/
|
||||
%{_qt6_datadir}/resources/qtwebengine_resources.pak
|
||||
%{_qt6_datadir}/resources/qtwebengine_resources_100p.pak
|
||||
%{_qt6_datadir}/resources/qtwebengine_resources_200p.pak
|
||||
%dir %{_qtwebengine_dictionaries_dir}
|
||||
%dir %{_qt6_translationdir}/qtwebengine_locales
|
||||
%lang(am) %{_qt6_translationdir}/qtwebengine_locales/am.pak
|
||||
%lang(ar) %{_qt6_translationdir}/qtwebengine_locales/ar.pak
|
||||
%lang(bg) %{_qt6_translationdir}/qtwebengine_locales/bg.pak
|
||||
%lang(bn) %{_qt6_translationdir}/qtwebengine_locales/bn.pak
|
||||
%lang(ca) %{_qt6_translationdir}/qtwebengine_locales/ca.pak
|
||||
%lang(cs) %{_qt6_translationdir}/qtwebengine_locales/cs.pak
|
||||
%lang(da) %{_qt6_translationdir}/qtwebengine_locales/da.pak
|
||||
%lang(de) %{_qt6_translationdir}/qtwebengine_locales/de.pak
|
||||
%lang(el) %{_qt6_translationdir}/qtwebengine_locales/el.pak
|
||||
%lang(en) %{_qt6_translationdir}/qtwebengine_locales/en-GB.pak
|
||||
%lang(en) %{_qt6_translationdir}/qtwebengine_locales/en-US.pak
|
||||
%lang(es) %{_qt6_translationdir}/qtwebengine_locales/es-419.pak
|
||||
%lang(es) %{_qt6_translationdir}/qtwebengine_locales/es.pak
|
||||
%lang(et) %{_qt6_translationdir}/qtwebengine_locales/et.pak
|
||||
%lang(fa) %{_qt6_translationdir}/qtwebengine_locales/fa.pak
|
||||
%lang(fi) %{_qt6_translationdir}/qtwebengine_locales/fi.pak
|
||||
%lang(fil) %{_qt6_translationdir}/qtwebengine_locales/fil.pak
|
||||
%lang(fr) %{_qt6_translationdir}/qtwebengine_locales/fr.pak
|
||||
%lang(gu) %{_qt6_translationdir}/qtwebengine_locales/gu.pak
|
||||
%lang(he) %{_qt6_translationdir}/qtwebengine_locales/he.pak
|
||||
%lang(hi) %{_qt6_translationdir}/qtwebengine_locales/hi.pak
|
||||
%lang(hr) %{_qt6_translationdir}/qtwebengine_locales/hr.pak
|
||||
%lang(hu) %{_qt6_translationdir}/qtwebengine_locales/hu.pak
|
||||
%lang(id) %{_qt6_translationdir}/qtwebengine_locales/id.pak
|
||||
%lang(it) %{_qt6_translationdir}/qtwebengine_locales/it.pak
|
||||
%lang(ja) %{_qt6_translationdir}/qtwebengine_locales/ja.pak
|
||||
%lang(kn) %{_qt6_translationdir}/qtwebengine_locales/kn.pak
|
||||
%lang(ko) %{_qt6_translationdir}/qtwebengine_locales/ko.pak
|
||||
%lang(lt) %{_qt6_translationdir}/qtwebengine_locales/lt.pak
|
||||
%lang(lv) %{_qt6_translationdir}/qtwebengine_locales/lv.pak
|
||||
%lang(ml) %{_qt6_translationdir}/qtwebengine_locales/ml.pak
|
||||
%lang(mr) %{_qt6_translationdir}/qtwebengine_locales/mr.pak
|
||||
%lang(ms) %{_qt6_translationdir}/qtwebengine_locales/ms.pak
|
||||
%lang(nb) %{_qt6_translationdir}/qtwebengine_locales/nb.pak
|
||||
%lang(nl) %{_qt6_translationdir}/qtwebengine_locales/nl.pak
|
||||
%lang(pl) %{_qt6_translationdir}/qtwebengine_locales/pl.pak
|
||||
%lang(pt_BR) %{_qt6_translationdir}/qtwebengine_locales/pt-BR.pak
|
||||
%lang(pt_PT) %{_qt6_translationdir}/qtwebengine_locales/pt-PT.pak
|
||||
%lang(ro) %{_qt6_translationdir}/qtwebengine_locales/ro.pak
|
||||
%lang(ru) %{_qt6_translationdir}/qtwebengine_locales/ru.pak
|
||||
%lang(sk) %{_qt6_translationdir}/qtwebengine_locales/sk.pak
|
||||
%lang(sl) %{_qt6_translationdir}/qtwebengine_locales/sl.pak
|
||||
%lang(sr) %{_qt6_translationdir}/qtwebengine_locales/sr.pak
|
||||
%lang(sv) %{_qt6_translationdir}/qtwebengine_locales/sv.pak
|
||||
%lang(sw) %{_qt6_translationdir}/qtwebengine_locales/sw.pak
|
||||
%lang(ta) %{_qt6_translationdir}/qtwebengine_locales/ta.pak
|
||||
%lang(te) %{_qt6_translationdir}/qtwebengine_locales/te.pak
|
||||
%lang(th) %{_qt6_translationdir}/qtwebengine_locales/th.pak
|
||||
%lang(tr) %{_qt6_translationdir}/qtwebengine_locales/tr.pak
|
||||
%lang(uk) %{_qt6_translationdir}/qtwebengine_locales/uk.pak
|
||||
%lang(vi) %{_qt6_translationdir}/qtwebengine_locales/vi.pak
|
||||
%lang(zh_CN) %{_qt6_translationdir}/qtwebengine_locales/zh-CN.pak
|
||||
%lang(zh_TW) %{_qt6_translationdir}/qtwebengine_locales/zh-TW.pak
|
||||
|
||||
%files devel
|
||||
%{_rpmmacrodir}/macros.qt6-qtwebengine
|
||||
%dir %{_qt6_headerdir}/QtPdf
|
||||
%{_qt6_headerdir}/QtPdf/*
|
||||
%dir %{_qt6_headerdir}/QtPdfQuick
|
||||
%{_qt6_headerdir}/QtPdfQuick/*
|
||||
%dir %{_qt6_headerdir}/QtPdfWidgets
|
||||
%{_qt6_headerdir}/QtPdfWidgets/*
|
||||
%dir %{_qt6_headerdir}/QtWebEngineCore
|
||||
%{_qt6_headerdir}/QtWebEngineCore/*
|
||||
%dir %{_qt6_headerdir}/QtWebEngineQuick
|
||||
%{_qt6_headerdir}/QtWebEngineQuick/*
|
||||
%dir %{_qt6_headerdir}/QtWebEngineWidgets
|
||||
%{_qt6_headerdir}/QtWebEngineWidgets/*
|
||||
%{_qt6_libdir}/qt6/metatypes/*.json
|
||||
%{_qt6_libdir}/qt6/modules/*.json
|
||||
%{_qt6_libdir}/libQt6Pdf.so
|
||||
%{_qt6_libdir}/libQt6PdfQuick.so
|
||||
%{_qt6_libdir}/libQt6PdfWidgets.so
|
||||
%{_qt6_libdir}/libQt6WebEngineCore.so
|
||||
%{_qt6_libdir}/libQt6WebEngineQuick.so
|
||||
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.so
|
||||
%{_qt6_libdir}/libQt6WebEngineWidgets.so
|
||||
%{_qt6_libdir}/libQt6WebEngineCore.prl
|
||||
%{_qt6_libdir}/libQt6Pdf.prl
|
||||
%{_qt6_libdir}/libQt6PdfQuick.prl
|
||||
%{_qt6_libdir}/libQt6PdfWidgets.prl
|
||||
%{_qt6_libdir}/libQt6WebEngineQuick.prl
|
||||
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.prl
|
||||
%{_qt6_libdir}/libQt6WebEngineWidgets.prl
|
||||
%{_qt6_libdir}/cmake/Qt6/*.cmake
|
||||
%{_qt6_libdir}/cmake/Qt6BuildInternals/StandaloneTests
|
||||
%{_qt6_libdir}/cmake/Qt6Gui/*.cmake
|
||||
%{_qt6_libdir}/cmake/Qt6Qml/QmlPlugins/*.cmake
|
||||
#%dir %{_qt6_libdir}/cmake/Qt6Designer
|
||||
#%{_qt6_libdir}/cmake/Qt6Designer/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6Pdf
|
||||
%{_qt6_libdir}/cmake/Qt6Pdf/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6PdfQuick
|
||||
%{_qt6_libdir}/cmake/Qt6PdfQuick/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6PdfWidgets
|
||||
%{_qt6_libdir}/cmake/Qt6PdfWidgets/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6WebEngineQuick
|
||||
%{_qt6_libdir}/cmake/Qt6WebEngineQuick/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6WebEngineWidgets
|
||||
%{_qt6_libdir}/cmake/Qt6WebEngineWidgets/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6WebEngineCore
|
||||
%{_qt6_libdir}/cmake/Qt6WebEngineCore/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6WebEngineCoreTools
|
||||
%{_qt6_libdir}/cmake/Qt6WebEngineCoreTools/*.cmake
|
||||
%dir %{_qt6_libdir}/cmake/Qt6WebEngineQuickDelegatesQml
|
||||
%{_qt6_libdir}/cmake/Qt6WebEngineQuickDelegatesQml/*.cmake
|
||||
%{_qt6_libdir}/pkgconfig/Qt6Pdf.pc
|
||||
%{_qt6_libdir}/pkgconfig/Qt6PdfQuick.pc
|
||||
%{_qt6_libdir}/pkgconfig/Qt6PdfWidgets.pc
|
||||
%{_qt6_libdir}/pkgconfig/Qt6WebEngineCore.pc
|
||||
%{_qt6_libdir}/pkgconfig/Qt6WebEngineQuick.pc
|
||||
%{_qt6_libdir}/pkgconfig/Qt6WebEngineQuickDelegatesQml.pc
|
||||
%{_qt6_libdir}/pkgconfig/Qt6WebEngineWidgets.pc
|
||||
%{_qt6_archdatadir}/mkspecs/modules/*.pri
|
||||
|
||||
%files devtools
|
||||
%{_qt6_datadir}/resources/qtwebengine_devtools_resources.pak
|
||||
|
||||
%files examples
|
||||
%{_qt6_examplesdir}/
|
||||
|
||||
%if 0%{?docs}
|
||||
%files doc
|
||||
%{_qt6_docdir}/*
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Aug 02 2023 peijiankang <peijiankang@kylinos.cn> - 6.5.0-1
|
||||
- Init Package 6.5.0
|
||||
|
||||
4
qt6-qtwebengine.yaml
Normal file
4
qt6-qtwebengine.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
version_control: git
|
||||
src_repo: https://code.qt.io/qt/qtwebengine.git
|
||||
tag_prefix: "^"
|
||||
separator: "."
|
||||
16
qtwebengine-SIOCGSTAMP.patch
Normal file
16
qtwebengine-SIOCGSTAMP.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc b/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
|
||||
index c38d7fdfa..0a8b0fd8b 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
|
||||
@@ -72,6 +72,11 @@ typedef void* SockOptArg;
|
||||
|
||||
#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__)
|
||||
|
||||
+// Seems that kernel 5.2.0 renames this define to SIOCGSTAMP_OLD
|
||||
+#ifndef SIOCGSTAMP
|
||||
+#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
+#endif
|
||||
+
|
||||
int64_t GetSocketRecvTimestamp(int socket) {
|
||||
struct timeval tv_ioctl;
|
||||
int ret = ioctl(socket, SIOCGSTAMP, &tv_ioctl);
|
||||
12
qtwebengine-aarch64-new-stat.patch
Normal file
12
qtwebengine-aarch64-new-stat.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
|
||||
--- qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-19 12:55:45.000000000 -0600
|
||||
+++ qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-12-08 21:16:39.931896244 -0600
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
|
||||
#define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
|
||||
|
||||
+#define __ARCH_WANT_NEW_STAT
|
||||
+
|
||||
#include <asm-generic/unistd.h>
|
||||
|
||||
#if !defined(__NR_io_setup)
|
||||
154
qtwebengine-blink-dlopen-h264.patch
Normal file
154
qtwebengine-blink-dlopen-h264.patch
Normal file
@ -0,0 +1,154 @@
|
||||
From 828d03c76b3b108019b1cf66062b0e9679012207 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Grulich <grulja@gmail.com>
|
||||
Date: Mon, 23 Jan 2023 11:04:00 +0100
|
||||
Subject: [Blink] mediarecorder: allow to dlopen openh264
|
||||
|
||||
|
||||
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/BUILD.gn b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/BUILD.gn
|
||||
index cf6de49bef6b2..61e8879d6b97f 100644
|
||||
--- a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/BUILD.gn
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/BUILD.gn
|
||||
@@ -5,12 +5,23 @@
|
||||
import("//build/buildflag_header.gni")
|
||||
import("//third_party/blink/renderer/modules/modules.gni")
|
||||
import("//third_party/webrtc/webrtc.gni")
|
||||
+import("//tools/generate_stubs/rules.gni")
|
||||
|
||||
buildflag_header("buildflags") {
|
||||
header = "buildflags.h"
|
||||
flags = [ "RTC_USE_H264=$rtc_use_h264" ]
|
||||
}
|
||||
|
||||
+if (rtc_use_h264 && rtc_dlopen_openh264) {
|
||||
+ # When OpenH264 is not directly linked, use stubs to allow for dlopening of
|
||||
+ # the binary.
|
||||
+ generate_stubs("openh264_stubs") {
|
||||
+ extra_header = "openh264_stub_header.fragment"
|
||||
+ output_name = "openh264_stubs"
|
||||
+ sigs = [ "openh264.sigs" ]
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
blink_modules_sources("mediarecorder") {
|
||||
sources = [
|
||||
"audio_track_encoder.cc",
|
||||
@@ -56,6 +67,11 @@ blink_modules_sources("mediarecorder") {
|
||||
"h264_encoder.h",
|
||||
]
|
||||
|
||||
- deps += [ "//third_party/openh264:encoder" ]
|
||||
+ if (rtc_dlopen_openh264) {
|
||||
+ defines = [ "BLINK_DLOPEN_OPENH264" ]
|
||||
+ deps += [ ":openh264_stubs" ]
|
||||
+ } else {
|
||||
+ deps += [ "//third_party/openh264:encoder" ]
|
||||
+ }
|
||||
}
|
||||
}
|
||||
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||||
index c9aee6f3a..0f4ef593d 100644
|
||||
--- a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||||
@@ -24,10 +24,22 @@
|
||||
#include "third_party/openh264/src/codec/api/svc/codec_def.h"
|
||||
#include "ui/gfx/geometry/size.h"
|
||||
|
||||
+#if defined(BLINK_DLOPEN_OPENH264)
|
||||
+#include "third_party/blink/renderer/modules/mediarecorder/openh264_stubs.h"
|
||||
+#endif // defined(BLINK_DLOPEN_OPENH264)
|
||||
+
|
||||
namespace blink {
|
||||
|
||||
namespace {
|
||||
|
||||
+#if defined(BLINK_DLOPEN_OPENH264)
|
||||
+using third_party_blink_renderer_modules_mediarecorder::InitializeStubs;
|
||||
+using third_party_blink_renderer_modules_mediarecorder::kModuleOpenh264;
|
||||
+using third_party_blink_renderer_modules_mediarecorder::StubPathMap;
|
||||
+
|
||||
+static constexpr char kOpenH264Lib[] = "libopenh264.so.7";
|
||||
+#endif
|
||||
+
|
||||
absl::optional<EProfileIdc> ToOpenH264Profile(
|
||||
media::VideoCodecProfile profile) {
|
||||
static const HashMap<media::VideoCodecProfile, EProfileIdc>
|
||||
@@ -98,6 +110,13 @@ H264Encoder::H264Encoder(
|
||||
codec_profile_(codec_profile) {
|
||||
DCHECK(encoding_thread_);
|
||||
DCHECK_EQ(codec_profile_.codec_id, VideoTrackRecorder::CodecId::kH264);
|
||||
+
|
||||
+#if defined(BLINK_DLOPEN_OPENH264)
|
||||
+ StubPathMap paths;
|
||||
+ paths[kModuleOpenh264].push_back(kOpenH264Lib);
|
||||
+
|
||||
+ openh264_dlopened_ = InitializeStubs(paths);
|
||||
+#endif
|
||||
}
|
||||
|
||||
H264Encoder::~H264Encoder() {
|
||||
@@ -180,6 +199,14 @@ void H264Encoder::EncodeOnEncodingTaskRunner(
|
||||
bool H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
|
||||
TRACE_EVENT0("media", "H264Encoder::ConfigureEncoderOnEncodingTaskRunner");
|
||||
DCHECK(encoding_task_runner_->RunsTasksInCurrentSequence());
|
||||
+
|
||||
+#if defined(BLINK_DLOPEN_OPENH264)
|
||||
+ if (!openh264_dlopened_) {
|
||||
+ NOTREACHED() << "Failed to dlopen openh264";
|
||||
+ return false;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
ISVCEncoder* temp_encoder = nullptr;
|
||||
if (WelsCreateSVCEncoder(&temp_encoder) != 0) {
|
||||
NOTREACHED() << "Failed to create OpenH264 encoder";
|
||||
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.h b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.h
|
||||
index e7aa2c338..79e902f67 100644
|
||||
--- a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.h
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/h264_encoder.h
|
||||
@@ -62,6 +62,8 @@ class MODULES_EXPORT H264Encoder final : public VideoTrackRecorder::Encoder {
|
||||
// The |VideoFrame::timestamp()| of the first received frame. Only used on
|
||||
// VideoTrackRecorder::Encoder::encoding_thread_.
|
||||
base::TimeTicks first_frame_timestamp_;
|
||||
+
|
||||
+ bool openh264_dlopened_ = false;
|
||||
};
|
||||
|
||||
} // namespace blink
|
||||
|
||||
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/openh264.sigs b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/openh264.sigs
|
||||
new file mode 100644
|
||||
index 0000000000000..4924f8e9a17de
|
||||
--- /dev/null
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/openh264.sigs
|
||||
@@ -0,0 +1,14 @@
|
||||
+// Copyright 2022 The WebRTC project authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+//------------------------------------------------
|
||||
+// Functions from OpenH264.
|
||||
+//------------------------------------------------
|
||||
+int WelsCreateSVCEncoder(ISVCEncoder **ppEncoder);
|
||||
+void WelsDestroySVCEncoder(ISVCEncoder *pEncoder);
|
||||
+int WelsGetDecoderCapability(SDecoderCapability *pDecCapability);
|
||||
+long WelsCreateDecoder(ISVCDecoder **ppDecoder);
|
||||
+void WelsDestroyDecoder(ISVCDecoder *pDecoder);
|
||||
+OpenH264Version WelsGetCodecVersion(void);
|
||||
+void WelsGetCodecVersionEx(OpenH264Version *pVersion);
|
||||
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/openh264_stub_header.fragment b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/openh264_stub_header.fragment
|
||||
new file mode 100644
|
||||
index 0000000000000..9bc0a7cbee038
|
||||
--- /dev/null
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/mediarecorder/openh264_stub_header.fragment
|
||||
@@ -0,0 +1,11 @@
|
||||
+// The extra include header needed in the generated stub file for defining
|
||||
+// various OpenH264 types.
|
||||
+
|
||||
+extern "C" {
|
||||
+
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_api.h"
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_app_def.h"
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_def.h"
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_ver.h"
|
||||
+
|
||||
+}
|
||||
BIN
qtwebengine-everywhere-src-6.5.0-clean.tar.xz
Normal file
BIN
qtwebengine-everywhere-src-6.5.0-clean.tar.xz
Normal file
Binary file not shown.
BIN
qtwebengine-everywhere-src-6.5.0-clean.tar.xz.0
Normal file
BIN
qtwebengine-everywhere-src-6.5.0-clean.tar.xz.0
Normal file
Binary file not shown.
BIN
qtwebengine-everywhere-src-6.5.0-clean.tar.xz.1
Normal file
BIN
qtwebengine-everywhere-src-6.5.0-clean.tar.xz.1
Normal file
Binary file not shown.
168
qtwebengine-ffmpeg-first_dts.patch
Normal file
168
qtwebengine-ffmpeg-first_dts.patch
Normal file
@ -0,0 +1,168 @@
|
||||
diff --git a/configure.cmake b/configure.cmake
|
||||
index b20ab3b65..c41f66301 100644
|
||||
--- a/configure.cmake
|
||||
+++ b/configure.cmake
|
||||
@@ -203,25 +203,6 @@ int main(void){
|
||||
}"
|
||||
)
|
||||
|
||||
-qt_config_compile_test(libavformat
|
||||
- LABEL "libavformat"
|
||||
- LIBRARIES
|
||||
- PkgConfig::FFMPEG
|
||||
- CODE
|
||||
-"
|
||||
-#include \"libavformat/version.h\"
|
||||
-extern \"C\" {
|
||||
-#include \"libavformat/avformat.h\"
|
||||
-}
|
||||
-int main(void) {
|
||||
-#if LIBAVFORMAT_VERSION_MAJOR >= 59
|
||||
- AVStream stream;
|
||||
- auto first_dts = av_stream_get_first_dts(&stream);
|
||||
-#endif
|
||||
- return 0;
|
||||
-}"
|
||||
-)
|
||||
-
|
||||
#### Features
|
||||
|
||||
qt_feature("qtwebengine-build" PUBLIC
|
||||
@@ -542,11 +523,6 @@ add_check_for_support(
|
||||
CONDITION NOT LINUX OR DBUS_FOUND
|
||||
MESSAGE "Build requires dbus."
|
||||
)
|
||||
-add_check_for_support(
|
||||
- MODULES QtWebEngine
|
||||
- CONDITION NOT LINUX OR NOT QT_FEATURE_webengine_system_ffmpeg OR TEST_libavformat
|
||||
- MESSAGE "Unmodified ffmpeg >= 5.0 is not supported."
|
||||
-)
|
||||
# FIXME: This prevents non XCB Linux builds from building:
|
||||
set(xcbSupport X11 LIBDRM XCOMPOSITE XCURSOR XRANDR XI XPROTO XSHMFENCE XTST)
|
||||
foreach(xs ${xcbSupport})
|
||||
diff --git a/src/3rdparty/chromium/AUTHORS b/src/3rdparty/chromium/AUTHORS
|
||||
index 8d638184b..80e4a9b35 100644
|
||||
--- a/src/3rdparty/chromium/AUTHORS
|
||||
+++ b/src/3rdparty/chromium/AUTHORS
|
||||
@@ -94,6 +94,7 @@ Andra Paraschiv <andra.paraschiv@intel.com>
|
||||
Andras Tokodi <a.tokodi@eyeo.com>
|
||||
Andreas Nazlidis <andreas221b@gmail.com>
|
||||
Andreas Papacharalampous <andreas@apap04.com>
|
||||
+Andreas Schneider <asn@cryptomilk.org>
|
||||
Andrei Borza <andrei.borza@gmail.com>
|
||||
Andrei Parvu <andrei.prv@gmail.com>
|
||||
Andrei Parvu <parvu@adobe.com>
|
||||
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
|
||||
index 7b709d70d..d97b6b4d0 100644
|
||||
--- a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
|
||||
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
|
||||
@@ -58,7 +58,7 @@ namespace media {
|
||||
|
||||
namespace {
|
||||
|
||||
-constexpr int64_t kInvalidPTSMarker = static_cast<int64_t>(0x8000000000000000);
|
||||
+constexpr int64_t kRelativeTsBase = static_cast<int64_t>(0x7ffeffffffffffff);
|
||||
|
||||
void SetAVStreamDiscard(AVStream* stream, AVDiscard discard) {
|
||||
DCHECK(stream);
|
||||
@@ -101,7 +101,7 @@ static base::TimeDelta FramesToTimeDelta(int frames, double sample_rate) {
|
||||
sample_rate);
|
||||
}
|
||||
|
||||
-static base::TimeDelta ExtractStartTime(AVStream* stream) {
|
||||
+static base::TimeDelta ExtractStartTime(AVStream* stream, int64_t first_dts) {
|
||||
// The default start time is zero.
|
||||
base::TimeDelta start_time;
|
||||
|
||||
@@ -111,12 +111,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) {
|
||||
|
||||
// Next try to use the first DTS value, for codecs where we know PTS == DTS
|
||||
// (excludes all H26x codecs). The start time must be returned in PTS.
|
||||
- if (av_stream_get_first_dts(stream) != kInvalidPTSMarker &&
|
||||
+ if (first_dts != AV_NOPTS_VALUE &&
|
||||
stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
|
||||
stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
|
||||
stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
|
||||
const base::TimeDelta first_pts =
|
||||
- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
|
||||
+ ConvertFromTimeBase(stream->time_base, first_dts);
|
||||
if (first_pts < start_time)
|
||||
start_time = first_pts;
|
||||
}
|
||||
@@ -285,6 +285,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream(
|
||||
fixup_negative_timestamps_(false),
|
||||
fixup_chained_ogg_(false),
|
||||
num_discarded_packet_warnings_(0),
|
||||
+ first_dts_(AV_NOPTS_VALUE),
|
||||
last_packet_pos_(AV_NOPTS_VALUE),
|
||||
last_packet_dts_(AV_NOPTS_VALUE) {
|
||||
DCHECK(demuxer_);
|
||||
@@ -351,6 +352,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
|
||||
int64_t packet_dts =
|
||||
packet->dts == AV_NOPTS_VALUE ? packet->pts : packet->dts;
|
||||
|
||||
+ if (first_dts_ == AV_NOPTS_VALUE && packet->dts != AV_NOPTS_VALUE &&
|
||||
+ last_packet_dts_ != AV_NOPTS_VALUE) {
|
||||
+ first_dts_ = packet->dts - (last_packet_dts_ + kRelativeTsBase);
|
||||
+ }
|
||||
+
|
||||
// Chained ogg files have non-monotonically increasing position and time stamp
|
||||
// values, which prevents us from using them to determine if a packet should
|
||||
// be dropped. Since chained ogg is only allowed on single track audio only
|
||||
@@ -698,6 +704,7 @@ void FFmpegDemuxerStream::FlushBuffers(bool preserve_packet_position) {
|
||||
ResetBitstreamConverter();
|
||||
|
||||
if (!preserve_packet_position) {
|
||||
+ first_dts_ = AV_NOPTS_VALUE;
|
||||
last_packet_pos_ = AV_NOPTS_VALUE;
|
||||
last_packet_dts_ = AV_NOPTS_VALUE;
|
||||
}
|
||||
@@ -1449,7 +1456,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone(int result) {
|
||||
|
||||
max_duration = std::max(max_duration, streams_[i]->duration());
|
||||
|
||||
- base::TimeDelta start_time = ExtractStartTime(stream);
|
||||
+ base::TimeDelta start_time =
|
||||
+ ExtractStartTime(stream, streams_[i]->first_dts());
|
||||
|
||||
// Note: This value is used for seeking, so we must take the true value and
|
||||
// not the one possibly clamped to zero below.
|
||||
@@ -1606,7 +1614,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindStreamWithLowestStartTimestamp(
|
||||
for (const auto& stream : streams_) {
|
||||
if (!stream || stream->IsEnabled() != enabled)
|
||||
continue;
|
||||
- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
|
||||
+ if (stream->first_dts() == AV_NOPTS_VALUE)
|
||||
continue;
|
||||
if (!lowest_start_time_stream ||
|
||||
stream->start_time() < lowest_start_time_stream->start_time()) {
|
||||
@@ -1627,7 +1635,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindPreferredStreamForSeeking(
|
||||
if (stream->type() != DemuxerStream::VIDEO)
|
||||
continue;
|
||||
|
||||
- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
|
||||
+ if (stream->first_dts() == AV_NOPTS_VALUE)
|
||||
continue;
|
||||
|
||||
if (!stream->IsEnabled())
|
||||
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.h b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.h
|
||||
index 45ab0f348..6b093318f 100644
|
||||
--- a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.h
|
||||
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.h
|
||||
@@ -152,6 +152,8 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
|
||||
base::TimeDelta start_time() const { return start_time_; }
|
||||
void set_start_time(base::TimeDelta time) { start_time_ = time; }
|
||||
|
||||
+ int64_t first_dts() const { return first_dts_; }
|
||||
+
|
||||
private:
|
||||
friend class FFmpegDemuxerTest;
|
||||
|
||||
@@ -209,6 +211,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
|
||||
bool fixup_chained_ogg_;
|
||||
|
||||
int num_discarded_packet_warnings_;
|
||||
+ int64_t first_dts_;
|
||||
int64_t last_packet_pos_;
|
||||
int64_t last_packet_dts_;
|
||||
};
|
||||
515
qtwebengine-fix-build.patch
Normal file
515
qtwebengine-fix-build.patch
Normal file
@ -0,0 +1,515 @@
|
||||
diff --git a/src/3rdparty/chromium/base/debug/profiler.h b/src/3rdparty/chromium/base/debug/profiler.h
|
||||
index 5f0deadd5..803de8f2b 100644
|
||||
--- a/src/3rdparty/chromium/base/debug/profiler.h
|
||||
+++ b/src/3rdparty/chromium/base/debug/profiler.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef BASE_DEBUG_PROFILER_H_
|
||||
#define BASE_DEBUG_PROFILER_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <stddef.h>
|
||||
|
||||
#include <string>
|
||||
diff --git a/src/3rdparty/chromium/cc/trees/target_property.cc b/src/3rdparty/chromium/cc/trees/target_property.cc
|
||||
index f6e873a01..5f952c5ed 100644
|
||||
--- a/src/3rdparty/chromium/cc/trees/target_property.cc
|
||||
+++ b/src/3rdparty/chromium/cc/trees/target_property.cc
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
#include "ui/gfx/animation/keyframe/target_property.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace cc {
|
||||
|
||||
static_assert(TargetProperty::LAST_TARGET_PROPERTY <
|
||||
diff --git a/src/3rdparty/chromium/components/viz/common/shared_element_resource_id.h b/src/3rdparty/chromium/components/viz/common/shared_element_resource_id.h
|
||||
index b39a2d3dc..ca3d8aeda 100644
|
||||
--- a/src/3rdparty/chromium/components/viz/common/shared_element_resource_id.h
|
||||
+++ b/src/3rdparty/chromium/components/viz/common/shared_element_resource_id.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_VIZ_COMMON_SHARED_ELEMENT_RESOURCE_ID_H_
|
||||
#define COMPONENTS_VIZ_COMMON_SHARED_ELEMENT_RESOURCE_ID_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h b/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h
|
||||
index ee75332f0..c0168281e 100644
|
||||
--- a/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h
|
||||
+++ b/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_DELEGATE_H_
|
||||
#define CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_DELEGATE_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "base/callback_forward.h"
|
||||
diff --git a/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc b/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
|
||||
index c62a00ee0..af54520b7 100644
|
||||
--- a/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
|
||||
+++ b/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
#include "base/threading/platform_thread.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace device {
|
||||
|
||||
OneWriterSeqLock::OneWriterSeqLock() : sequence_(0) {}
|
||||
diff --git a/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.h b/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.h
|
||||
index 528b6683c..e37a16b81 100644
|
||||
--- a/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.h
|
||||
+++ b/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define DEVICE_BASE_SYNCHRONIZATION_ONE_WRITER_SEQLOCK_H_
|
||||
|
||||
#include <atomic>
|
||||
+#include <cstdint>
|
||||
#include <type_traits>
|
||||
|
||||
#include "base/atomicops.h"
|
||||
diff --git a/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h b/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h
|
||||
index 816d3405e..15c4004c0 100644
|
||||
--- a/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h
|
||||
+++ b/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef DEVICE_BLUETOOTH_PUBLIC_CPP_BLUETOOTH_UUID_H_
|
||||
#define DEVICE_BLUETOOTH_PUBLIC_CPP_BLUETOOTH_UUID_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <ostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
diff --git a/src/3rdparty/chromium/extensions/common/constants.h b/src/3rdparty/chromium/extensions/common/constants.h
|
||||
index bf6bac2b4..51c534509 100644
|
||||
--- a/src/3rdparty/chromium/extensions/common/constants.h
|
||||
+++ b/src/3rdparty/chromium/extensions/common/constants.h
|
||||
@@ -10,6 +10,8 @@
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "extensions/common/extensions_export.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace extensions {
|
||||
|
||||
// Scheme we serve extension content from.
|
||||
diff --git a/src/3rdparty/chromium/gpu/config/gpu_feature_info.h b/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
|
||||
index 1a7028e47..b9e951c0a 100644
|
||||
--- a/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
|
||||
+++ b/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef GPU_CONFIG_GPU_FEATURE_INFO_H_
|
||||
#define GPU_CONFIG_GPU_FEATURE_INFO_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/gpu/config/gpu_util.h b/src/3rdparty/chromium/gpu/config/gpu_util.h
|
||||
index 574aca1ff..fca32671c 100644
|
||||
--- a/src/3rdparty/chromium/gpu/config/gpu_util.h
|
||||
+++ b/src/3rdparty/chromium/gpu/config/gpu_util.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef GPU_CONFIG_GPU_UTIL_H_
|
||||
#define GPU_CONFIG_GPU_UTIL_H_
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
#include "build/build_config.h"
|
||||
#include "gpu/config/gpu_feature_info.h"
|
||||
#include "gpu/gpu_export.h"
|
||||
diff --git a/src/3rdparty/chromium/net/base/parse_number.h b/src/3rdparty/chromium/net/base/parse_number.h
|
||||
index d6adf388e..560e692aa 100644
|
||||
--- a/src/3rdparty/chromium/net/base/parse_number.h
|
||||
+++ b/src/3rdparty/chromium/net/base/parse_number.h
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "base/strings/string_piece.h"
|
||||
#include "net/base/net_export.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
// This file contains utility functions for parsing numbers, in the context of
|
||||
// network protocols.
|
||||
//
|
||||
diff --git a/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h b/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h
|
||||
index 5f289ddcd..44f2f9eb1 100644
|
||||
--- a/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h
|
||||
+++ b/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define NET_COOKIES_COOKIE_INCLUSION_STATUS_H_
|
||||
|
||||
#include <bitset>
|
||||
+#include <cstdint>
|
||||
#include <ostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
diff --git a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.h b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.h
|
||||
index 6a300ed0c..3e30f1cb0 100644
|
||||
--- a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.h
|
||||
+++ b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef QUICHE_QUIC_CORE_CRYPTO_QUIC_HKDF_H_
|
||||
#define QUICHE_QUIC_CORE_CRYPTO_QUIC_HKDF_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
diff --git a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h
|
||||
index 52f150172..db4d31084 100644
|
||||
--- a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h
|
||||
+++ b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_
|
||||
#define QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/pdf/document_attachment_info.h b/src/3rdparty/chromium/pdf/document_attachment_info.h
|
||||
index e0fffc2ca..095463fcb 100644
|
||||
--- a/src/3rdparty/chromium/pdf/document_attachment_info.h
|
||||
+++ b/src/3rdparty/chromium/pdf/document_attachment_info.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef PDF_DOCUMENT_ATTACHMENT_INFO_H_
|
||||
#define PDF_DOCUMENT_ATTACHMENT_INFO_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
|
||||
diff --git a/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h b/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h
|
||||
index 7c0dcdecb..97054d476 100644
|
||||
--- a/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h
|
||||
+++ b/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h
|
||||
@@ -38,6 +38,10 @@ namespace pp {
|
||||
/// As a further optimization, we can add support for this later.
|
||||
class ThreadSafeThreadTraits {
|
||||
public:
|
||||
+
|
||||
+ typedef pp::Lock Lock;
|
||||
+ typedef pp::AutoLock AutoLock;
|
||||
+
|
||||
class RefCount {
|
||||
public:
|
||||
/// Default constructor. In debug mode, this checks that the object is being
|
||||
@@ -67,8 +71,6 @@ class ThreadSafeThreadTraits {
|
||||
int32_t ref_;
|
||||
};
|
||||
|
||||
- typedef pp::Lock Lock;
|
||||
- typedef pp::AutoLock AutoLock;
|
||||
};
|
||||
|
||||
/// The non-thread-safe version of thread traits. Using this class as the
|
||||
diff --git a/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h b/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
|
||||
index b167ffb09..2347d5461 100644
|
||||
--- a/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
|
||||
+++ b/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
|
||||
|
||||
#include <bitset>
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "sandbox/sandbox_export.h"
|
||||
diff --git a/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h b/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
|
||||
index 4b76d33af..4db1902d1 100644
|
||||
--- a/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
|
||||
+++ b/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/third_party/blink/public/common/origin_trials/origin_trial_public_key.h b/src/3rdparty/chromium/third_party/blink/public/common/origin_trials/origin_trial_public_key.h
|
||||
index c1b5f59f5..246200991 100644
|
||||
--- a/src/3rdparty/chromium/third_party/blink/public/common/origin_trials/origin_trial_public_key.h
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/public/common/origin_trials/origin_trial_public_key.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_ORIGIN_TRIALS_ORIGIN_TRIAL_PUBLIC_KEY_H_
|
||||
|
||||
#include <array>
|
||||
+#include <cstdint>
|
||||
|
||||
namespace blink {
|
||||
|
||||
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h b/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h
|
||||
index e40a76207..bf5ef7f13 100644
|
||||
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h
|
||||
@@ -122,7 +122,7 @@ class PLATFORM_EXPORT EffectPaintPropertyNode
|
||||
|
||||
// An identifier for a document transition shared element. `id.valid()`
|
||||
// returns true if this has been set, and false otherwise.
|
||||
- DocumentTransitionSharedElementId document_transition_shared_element_id;
|
||||
+ cc::DocumentTransitionSharedElementId document_transition_shared_element_id;
|
||||
|
||||
// An identifier to tag shared element resources generated and cached in the
|
||||
// Viz process. This generated resource can be used as content for other
|
||||
@@ -291,7 +291,7 @@ class PLATFORM_EXPORT EffectPaintPropertyNode
|
||||
return state_.compositor_element_id;
|
||||
}
|
||||
|
||||
- const blink::DocumentTransitionSharedElementId&
|
||||
+ const cc::DocumentTransitionSharedElementId&
|
||||
DocumentTransitionSharedElementId() const {
|
||||
return state_.document_transition_shared_element_id;
|
||||
}
|
||||
diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h
|
||||
index c7e4f2b37..e491a1f68 100644
|
||||
--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h
|
||||
+++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <assert.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "client/linux/handler/microdump_extra_info.h"
|
||||
diff --git a/src/3rdparty/chromium/third_party/dawn/src/dawn/native/CacheKey.h b/src/3rdparty/chromium/third_party/dawn/src/dawn/native/CacheKey.h
|
||||
index 6cec3b6b8..541bba5b1 100644
|
||||
--- a/src/3rdparty/chromium/third_party/dawn/src/dawn/native/CacheKey.h
|
||||
+++ b/src/3rdparty/chromium/third_party/dawn/src/dawn/native/CacheKey.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef SRC_DAWN_NATIVE_CACHEKEY_H_
|
||||
#define SRC_DAWN_NATIVE_CACHEKEY_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <utility>
|
||||
|
||||
#include "dawn/native/stream/ByteVectorSink.h"
|
||||
diff --git a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/entry_point_info.h b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/entry_point_info.h
|
||||
index 90077421d..f303f9e8b 100644
|
||||
--- a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/entry_point_info.h
|
||||
+++ b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/entry_point_info.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef SRC_TINT_READER_SPIRV_ENTRY_POINT_INFO_H_
|
||||
#define SRC_TINT_READER_SPIRV_ENTRY_POINT_INFO_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "src/tint/ast/pipeline_stage.h"
|
||||
diff --git a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/namer.h b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/namer.h
|
||||
index 7a20e8738..655f69ce3 100644
|
||||
--- a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/namer.h
|
||||
+++ b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/spirv/namer.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef SRC_TINT_READER_SPIRV_NAMER_H_
|
||||
#define SRC_TINT_READER_SPIRV_NAMER_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
diff --git a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/lexer.h b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/lexer.h
|
||||
index 8e0306b6a..0fc0cc2b0 100644
|
||||
--- a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/lexer.h
|
||||
+++ b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/lexer.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef SRC_TINT_READER_WGSL_LEXER_H_
|
||||
#define SRC_TINT_READER_WGSL_LEXER_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/token.h b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/token.h
|
||||
index 4cf9aad1b..3fa13e216 100644
|
||||
--- a/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/token.h
|
||||
+++ b/src/3rdparty/chromium/third_party/dawn/src/tint/reader/wgsl/token.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef SRC_TINT_READER_WGSL_TOKEN_H_
|
||||
#define SRC_TINT_READER_WGSL_TOKEN_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <variant>
|
||||
diff --git a/src/3rdparty/chromium/third_party/dawn/src/tint/writer/spirv/operand.h b/src/3rdparty/chromium/third_party/dawn/src/tint/writer/spirv/operand.h
|
||||
index 0601ca068..ac9dde64e 100644
|
||||
--- a/src/3rdparty/chromium/third_party/dawn/src/tint/writer/spirv/operand.h
|
||||
+++ b/src/3rdparty/chromium/third_party/dawn/src/tint/writer/spirv/operand.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef SRC_TINT_WRITER_SPIRV_OPERAND_H_
|
||||
#define SRC_TINT_WRITER_SPIRV_OPERAND_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <variant>
|
||||
diff --git a/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc b/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc
|
||||
index a3099e15d..2e6f0eea7 100644
|
||||
--- a/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc
|
||||
+++ b/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
+#include <cstdio>
|
||||
#include <new>
|
||||
#include <utility>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h b/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
|
||||
index d2731dac7..46bc87ef9 100644
|
||||
--- a/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
|
||||
+++ b/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef CONSTANTS_ANNOTATION_FLAGS_H_
|
||||
#define CONSTANTS_ANNOTATION_FLAGS_H_
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace pdfium {
|
||||
namespace annotation_flags {
|
||||
|
||||
diff --git a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h
|
||||
index 1b4c53815..472042fab 100644
|
||||
--- a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h
|
||||
+++ b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h
|
||||
@@ -18,6 +18,7 @@
|
||||
#define INCLUDE_PERFETTO_EXT_BASE_UUID_H_
|
||||
|
||||
#include <array>
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "perfetto/ext/base/optional.h"
|
||||
diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h
|
||||
index d047de1bf..d7fc91a59 100644
|
||||
--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h
|
||||
+++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h
|
||||
@@ -21,6 +21,8 @@
|
||||
#include "perfetto/trace_processor/status.h"
|
||||
#include "src/trace_processor/importers/common/trace_parser.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace perfetto {
|
||||
|
||||
namespace protos {
|
||||
diff --git a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
|
||||
index 0101632c5..3f04a2dd2 100644
|
||||
--- a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
|
||||
+++ b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
|
||||
@@ -15,6 +15,10 @@
|
||||
#include <iterator>
|
||||
#include <string>
|
||||
|
||||
+#include <string.h>
|
||||
+#include <algorithm>
|
||||
+#include <iterator>
|
||||
+
|
||||
static constexpr const char* gColorNames[] = {
|
||||
"aliceblue",
|
||||
"antiquewhite",
|
||||
diff --git a/src/3rdparty/chromium/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h b/src/3rdparty/chromium/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
|
||||
index b7c586b80..d950214c3 100644
|
||||
--- a/src/3rdparty/chromium/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
|
||||
+++ b/src/3rdparty/chromium/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
|
||||
@@ -105,6 +105,8 @@ Documentation of all members: vk_mem_alloc.h
|
||||
- [Source repository on GitHub](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)
|
||||
*/
|
||||
|
||||
+#include <cstdio>
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/xdg_session_details.h b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/xdg_session_details.h
|
||||
index b70ac4aa5..7ba555564 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/xdg_session_details.h
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/xdg_session_details.h
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <gio/gio.h>
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace webrtc {
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h b/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h
|
||||
index 4190a79dc..5a9285f00 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#ifndef RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
|
||||
#define RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/ui/events/gesture_event_details.h b/src/3rdparty/chromium/ui/events/gesture_event_details.h
|
||||
index 41ff9906d..1864e9e21 100644
|
||||
--- a/src/3rdparty/chromium/ui/events/gesture_event_details.h
|
||||
+++ b/src/3rdparty/chromium/ui/events/gesture_event_details.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef UI_EVENTS_GESTURE_EVENT_DETAILS_H_
|
||||
#define UI_EVENTS_GESTURE_EVENT_DETAILS_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string.h>
|
||||
|
||||
#include "base/check_op.h"
|
||||
diff --git a/src/3rdparty/chromium/ui/events/types/scroll_types.h b/src/3rdparty/chromium/ui/events/types/scroll_types.h
|
||||
index be6b2779f..dbe2e5cf7 100644
|
||||
--- a/src/3rdparty/chromium/ui/events/types/scroll_types.h
|
||||
+++ b/src/3rdparty/chromium/ui/events/types/scroll_types.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef UI_EVENTS_TYPES_SCROLL_TYPES_H_
|
||||
#define UI_EVENTS_TYPES_SCROLL_TYPES_H_
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace ui {
|
||||
|
||||
enum class ScrollGranularity : uint8_t {
|
||||
diff --git a/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h b/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
|
||||
index 65cd4cb07..210c4318e 100644
|
||||
--- a/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
|
||||
+++ b/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef UI_GFX_LINEAR_GRADIENT_H_
|
||||
#define UI_GFX_LINEAR_GRADIENT_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <array>
|
||||
#include <string>
|
||||
|
||||
diff --git a/src/3rdparty/chromium/v8/src/base/macros.h b/src/3rdparty/chromium/v8/src/base/macros.h
|
||||
index cd5b91f74..a74c0021f 100644
|
||||
--- a/src/3rdparty/chromium/v8/src/base/macros.h
|
||||
+++ b/src/3rdparty/chromium/v8/src/base/macros.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef V8_BASE_MACROS_H_
|
||||
#define V8_BASE_MACROS_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <limits>
|
||||
#include <type_traits>
|
||||
|
||||
diff --git a/src/core/browsing_data_remover_delegate_qt.h b/src/core/browsing_data_remover_delegate_qt.h
|
||||
index 4e690ffb1..dfa884cd6 100644
|
||||
--- a/src/core/browsing_data_remover_delegate_qt.h
|
||||
+++ b/src/core/browsing_data_remover_delegate_qt.h
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
#include "content/public/browser/browsing_data_remover_delegate.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace QtWebEngineCore {
|
||||
|
||||
class BrowsingDataRemoverDelegateQt : public content::BrowsingDataRemoverDelegate {
|
||||
13
qtwebengine-link-pipewire.patch
Normal file
13
qtwebengine-link-pipewire.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
index a5da76c..9c5d358 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
@@ -138,7 +138,7 @@ declare_args() {
|
||||
rtc_use_pipewire = is_linux && use_sysroot
|
||||
|
||||
# Set this to link PipeWire and required libraries directly instead of using the dlopen.
|
||||
- rtc_link_pipewire = false
|
||||
+ rtc_link_pipewire = true
|
||||
|
||||
# Enable to use the Mozilla internal settings.
|
||||
build_with_mozilla = false
|
||||
163
qtwebengine-webrtc-dlopen-h264.patch
Normal file
163
qtwebengine-webrtc-dlopen-h264.patch
Normal file
@ -0,0 +1,163 @@
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/BUILD.gn b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/BUILD.gn
|
||||
index 640d6626d..3d1f62190 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/BUILD.gn
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/BUILD.gn
|
||||
@@ -7,6 +7,7 @@
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
import("//third_party/libaom/options.gni")
|
||||
+import("//tools/generate_stubs/rules.gni")
|
||||
import("../../webrtc.gni")
|
||||
|
||||
rtc_library("encoded_frame") {
|
||||
@@ -499,6 +500,21 @@ rtc_library("video_coding_utility") {
|
||||
]
|
||||
}
|
||||
|
||||
+if (rtc_use_h264 && rtc_dlopen_openh264) {
|
||||
+ # When OpenH264 is not directly linked, use stubs to allow for dlopening of
|
||||
+ # the binary.
|
||||
+ generate_stubs("openh264_stubs") {
|
||||
+ configs = [ "../../:common_config" ]
|
||||
+ deps = [ "../../rtc_base" ]
|
||||
+ extra_header = "codecs/h264/openh264_stub_header.fragment"
|
||||
+ logging_function = "RTC_LOG(LS_VERBOSE)"
|
||||
+ logging_include = "rtc_base/logging.h"
|
||||
+ output_name = "codecs/h264/openh264_stubs"
|
||||
+ path_from_source = "modules/video_coding/codecs/h264"
|
||||
+ sigs = [ "codecs/h264/openh264.sigs" ]
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
rtc_library("webrtc_h264") {
|
||||
visibility = [ "*" ]
|
||||
sources = [
|
||||
@@ -542,10 +558,15 @@ rtc_library("webrtc_h264") {
|
||||
]
|
||||
|
||||
if (rtc_use_h264) {
|
||||
- deps += [
|
||||
- "//third_party/ffmpeg",
|
||||
- "//third_party/openh264:encoder",
|
||||
- ]
|
||||
+ deps += [ "//third_party/ffmpeg" ]
|
||||
+
|
||||
+ if (rtc_dlopen_openh264) {
|
||||
+ defines = [ "WEBRTC_DLOPEN_OPENH264" ]
|
||||
+ deps += [ ":openh264_stubs" ]
|
||||
+ } else {
|
||||
+ deps += [ "//third_party/openh264:encoder" ]
|
||||
+ }
|
||||
+
|
||||
if (!build_with_mozilla) {
|
||||
deps += [ "../../media:rtc_media_base" ]
|
||||
}
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
||||
index fc3fd195f..48eedcefd 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
||||
@@ -36,10 +36,22 @@
|
||||
#include "third_party/openh264/src/codec/api/svc/codec_def.h"
|
||||
#include "third_party/openh264/src/codec/api/svc/codec_ver.h"
|
||||
|
||||
+#if defined(WEBRTC_DLOPEN_OPENH264)
|
||||
+#include "modules/video_coding/codecs/h264/openh264_stubs.h"
|
||||
+#endif // defined(WEBRTC_DLOPEN_OPENH264)
|
||||
+
|
||||
namespace webrtc {
|
||||
|
||||
namespace {
|
||||
|
||||
+#if defined(WEBRTC_DLOPEN_OPENH264)
|
||||
+using modules_video_coding_codecs_h264::InitializeStubs;
|
||||
+using modules_video_coding_codecs_h264::kModuleOpenh264;
|
||||
+using modules_video_coding_codecs_h264::StubPathMap;
|
||||
+
|
||||
+static constexpr char kOpenH264Lib[] = "libopenh264.so.7";
|
||||
+#endif
|
||||
+
|
||||
const bool kOpenH264EncoderDetailedLogging = false;
|
||||
|
||||
// QP scaling thresholds.
|
||||
@@ -167,6 +179,15 @@ H264EncoderImpl::~H264EncoderImpl() {
|
||||
|
||||
int32_t H264EncoderImpl::InitEncode(const VideoCodec* inst,
|
||||
const VideoEncoder::Settings& settings) {
|
||||
+#if defined(WEBRTC_DLOPEN_OPENH264)
|
||||
+ StubPathMap paths;
|
||||
+ paths[kModuleOpenh264].push_back(kOpenH264Lib);
|
||||
+
|
||||
+ static bool result = InitializeStubs(paths);
|
||||
+ if (!result)
|
||||
+ return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
|
||||
+#endif
|
||||
+
|
||||
ReportInit();
|
||||
if (!inst || inst->codecType != kVideoCodecH264) {
|
||||
ReportError();
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
index df42a48d4..cb5de2fda 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
@@ -181,6 +181,10 @@ declare_args() {
|
||||
rtc_use_h264 =
|
||||
proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang)
|
||||
|
||||
+ # Allow to use OpenH264 on systems where OpenH264 cannot be installed by
|
||||
+ # default due to licensing, but can be installed later from other sources.
|
||||
+ rtc_dlopen_openh264 = false
|
||||
+
|
||||
# Enable this flag to make webrtc::Mutex be implemented by absl::Mutex.
|
||||
rtc_use_absl_mutex = false
|
||||
|
||||
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
|
||||
index e1e551a3e..1a5f839a0 100644
|
||||
--- a/src/core/CMakeLists.txt
|
||||
+++ b/src/core/CMakeLists.txt
|
||||
@@ -401,6 +401,9 @@ foreach(arch ${archs})
|
||||
use_bluez=false
|
||||
use_vaapi=false
|
||||
use_udev=true
|
||||
+ media_use_openh264=false
|
||||
+ rtc_use_h264=true
|
||||
+ rtc_dlopen_openh264=true
|
||||
enable_session_service=false
|
||||
is_cfi=false
|
||||
use_ozone=true
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/openh264.sigs b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/openh264.sigs
|
||||
new file mode 100644
|
||||
index 000000000..4924f8e9a
|
||||
--- /dev/null
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/openh264.sigs
|
||||
@@ -0,0 +1,14 @@
|
||||
+// Copyright 2022 The WebRTC project authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+//------------------------------------------------
|
||||
+// Functions from OpenH264.
|
||||
+//------------------------------------------------
|
||||
+int WelsCreateSVCEncoder(ISVCEncoder **ppEncoder);
|
||||
+void WelsDestroySVCEncoder(ISVCEncoder *pEncoder);
|
||||
+int WelsGetDecoderCapability(SDecoderCapability *pDecCapability);
|
||||
+long WelsCreateDecoder(ISVCDecoder **ppDecoder);
|
||||
+void WelsDestroyDecoder(ISVCDecoder *pDecoder);
|
||||
+OpenH264Version WelsGetCodecVersion(void);
|
||||
+void WelsGetCodecVersionEx(OpenH264Version *pVersion);
|
||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/openh264_stub_header.fragment b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/openh264_stub_header.fragment
|
||||
new file mode 100644
|
||||
index 000000000..9bc0a7cbe
|
||||
--- /dev/null
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/openh264_stub_header.fragment
|
||||
@@ -0,0 +1,11 @@
|
||||
+// The extra include header needed in the generated stub file for defining
|
||||
+// various OpenH264 types.
|
||||
+
|
||||
+extern "C" {
|
||||
+
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_api.h"
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_app_def.h"
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_def.h"
|
||||
+#include "third_party/openh264/src/codec/api/svc/codec_ver.h"
|
||||
+
|
||||
+}
|
||||
Loading…
x
Reference in New Issue
Block a user