mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-06 17:00:13 +00:00
Update ffmpeg to 7.1.1
This commit is contained in:
parent
46f8362501
commit
8d2639f940
11
submodules/ffmpeg/BUILD
vendored
11
submodules/ffmpeg/BUILD
vendored
@ -261,14 +261,10 @@ genrule(
|
||||
BUILD_DIR="$$ABS_RULEDIR/build"
|
||||
rm -rf "$$BUILD_DIR"
|
||||
mkdir -p "$$BUILD_DIR"
|
||||
YASM_DIR="$$BUILD_DIR/yasm"
|
||||
rm -rf "$$YASM_DIR"
|
||||
mkdir -p "$$YASM_DIR"
|
||||
tar -xf "$(location //third-party/yasm:yasm.tar)" -C "$$YASM_DIR"
|
||||
|
||||
VARIANT=release
|
||||
|
||||
FFMPEG_VERSION="7.1"
|
||||
FFMPEG_VERSION="7.1.1"
|
||||
|
||||
if [ "$(TARGET_CPU)" == "ios_armv7" ]; then
|
||||
BUILD_ARCH="armv7"
|
||||
@ -283,7 +279,7 @@ genrule(
|
||||
echo "Unsupported architecture $(TARGET_CPU)"
|
||||
fi
|
||||
|
||||
PATH="$$PATH:$$YASM_DIR" "$$SOURCE_PATH/build-ffmpeg-bazel.sh" "$$VARIANT" "$$BUILD_ARCH" "$$BUILD_DIR" "$$SOURCE_PATH" "$$FFMPEG_VERSION"
|
||||
"$$SOURCE_PATH/build-ffmpeg-bazel.sh" "$$VARIANT" "$$BUILD_ARCH" "$$BUILD_DIR" "$$SOURCE_PATH" "$$FFMPEG_VERSION"
|
||||
""" + "\n" + "\n".join([
|
||||
"cp \"$$BUILD_DIR/FFmpeg-iOS/include/{header_path}\" \"$(location Public/third_party/ffmpeg/{header_path})\"".format(header_path = header_path) for header_path in ffmpeg_header_paths
|
||||
]) + "\n" + "\n".join([
|
||||
@ -296,9 +292,6 @@ genrule(
|
||||
] + [
|
||||
"Public/{}".format(header_path) for header_path in ffmpeg_header_paths
|
||||
] + ffmpeg_libs,
|
||||
tools = [
|
||||
"//third-party/yasm:yasm.tar",
|
||||
],
|
||||
visibility = [
|
||||
"//visibility:public",
|
||||
],
|
||||
|
||||
@ -73,7 +73,7 @@ fi
|
||||
|
||||
COMPILE="y"
|
||||
|
||||
DEPLOYMENT_TARGET="9.0"
|
||||
DEPLOYMENT_TARGET="12.0"
|
||||
|
||||
LIBS_HASH=""
|
||||
for ARCH in $ARCHS
|
||||
@ -90,10 +90,6 @@ done
|
||||
|
||||
if [ "$COMPILE" ]
|
||||
then
|
||||
if [ ! `which yasm` ]; then
|
||||
echo 'Yasm not found'
|
||||
exit 1
|
||||
fi
|
||||
if [ ! `which pkg-config` ]; then
|
||||
echo 'pkg-config not found'
|
||||
exit 1
|
||||
@ -171,7 +167,7 @@ then
|
||||
--target-os=darwin \
|
||||
--arch=$ARCH \
|
||||
--cc="$CC" \
|
||||
--as="$AS" \
|
||||
--as="$AS" \
|
||||
$CONFIGURE_FLAGS \
|
||||
--extra-cflags="$CFLAGS" \
|
||||
--extra-ldflags="$LDFLAGS" \
|
||||
|
||||
@ -1,7 +1,222 @@
|
||||
Entries are sorted chronologically from oldest to youngest within each release,
|
||||
releases are sorted from youngest to oldest.
|
||||
|
||||
version <next>:
|
||||
version 7.1.1:
|
||||
avformat/hls: Partially revert "reduce default max reload to 3"
|
||||
avformat/mov: (v4) fix get_eia608_packet
|
||||
avformat/iff: Check that we have a stream in read_dst_frame()
|
||||
avcodec/aac/aacdec_lpd: Limit get_unary()
|
||||
avcodec/aac/aacdec_usac: Simplify decode_usac_scale_factors()
|
||||
avcodec/aac/aacdec: Clear SFO on error
|
||||
avformat/mlvdec: fix size checks
|
||||
avformat/wavdec: Fix overflow of intermediate in block_align check
|
||||
avformat/mxfdec: Check edit unit for overflow in mxf_set_current_edit_unit()
|
||||
avformat/hls: Fix twitter
|
||||
avcodec/vvc/refs: fix negative pps_scaling_win offsets
|
||||
libavformat/hls: Be more restrictive on mpegts extensions
|
||||
avformat/hls: .ts is always ok even if its a mov/mp4
|
||||
avcodec/h263dec: Check against previous dimensions instead of coded
|
||||
avformat/hls: Print input format in error message
|
||||
avformat/hls: Be more picky on extensions
|
||||
avformat/iamf_parse: ensure there's at most one of each parameter types in audio elements
|
||||
avformat/iamf_parse: add missing constrains for num_parameters in audio_element_oub()
|
||||
avformat/iamf_parse: add missing av_free() call on failure path
|
||||
lavc/hevcdec: unbreak WPP/progress2 code
|
||||
fate: Add a dependency on ffprobe for fate-flcl1905
|
||||
checkasm: aacencdsp: Actually test nonzero values in quant_bands
|
||||
x86: aacencdsp: Fix negating signed values in aac_quantize_bands
|
||||
rtmpproto: Avoid rare crashes in the fail: codepath in rtmp_open
|
||||
configure: Improve the check for the rsync --contimeout option
|
||||
avutil/downmix_info: add missing semicolon
|
||||
doc/t2h: Support texinfo 7.1 and 7.2 pretest
|
||||
avfilter/drawtext: fix memory leak when using "reinit" runtime command
|
||||
avutil/downmix_info: zero the allocated buffer
|
||||
avformat/mov: fix overflow in drift timestamp calculation
|
||||
Changelog: update
|
||||
avformat/mxfdec: Check avio_read() success in mxf_decrypt_triplet()
|
||||
avcodec/huffyuvdec: Initialize whole output for decode_gray_bitstream()
|
||||
avformat/iamf_reader: Initialize padding and check read in ff_iamf_read_packet()
|
||||
avformat/ipmovie: Check signature_buffer read
|
||||
avformat/wtvdec: Initialize buf
|
||||
avcodec/cbs_vp9: Initialize VP9RawSuperframeIndex
|
||||
avformat/vqf: Propagate errors from add_metadata()
|
||||
avformat/vqf: Check avio_read() in add_metadata()
|
||||
avcodec/ffv1enc: Fix RCT for GBR colorspace
|
||||
avformat/dashdec: Check whitelist
|
||||
avutil/avstring: dont mess with NULL pointers in av_match_list()
|
||||
avfilter/vf_v360: Fix NULL pointer use
|
||||
avcodec/mpegvideo_enc: Check FLV1 resolution limits
|
||||
avcodec/ffv1enc: Fix handling of 32bit unsigned symbols
|
||||
avformat/mov: perform sanity checks for heif before index building
|
||||
avformat/mov: Factorize sanity check out
|
||||
avcodec/vc1dec: Clear block_index in vc1_decode_reset()
|
||||
avcodec/aacsbr_template: Clear n_q on error
|
||||
avformat/iamf_parse: Check output_channel_count
|
||||
avcodec/osq: Fixes several undefined overflows in do_decode()
|
||||
swscale/output: Fix undefined overflow in yuv2rgba64_full_X_c_template()
|
||||
avfilter/af_pan: Fix sscanf() use
|
||||
avfilter/vf_grayworld: Use the correct pointer for av_log()
|
||||
avfilter/vf_addroi: Add missing NULL termination to addroi_var_names[]()
|
||||
avcodec/get_buffer: Use av_buffer_mallocz() for audio same as its done for video
|
||||
avformat/jpegxl_anim_dec: clear buffer padding
|
||||
avformat/rmdec: check that buf if completely filled
|
||||
avcodec/cfhdenc: Clear dwt_tmp
|
||||
avcodec/hapdec: Clear tex buffer
|
||||
avformat/mxfdec: Check that key was read sucessfull
|
||||
avformat/hevc: fix writing hvcC when no arrays are provided in hvcC-formatted input
|
||||
avformat/rtpdec: int overflow in start_time_realtime
|
||||
avcodec/decode: Fix incorrect enum type used in side_data_map()
|
||||
avformat/mov: fix crash when trying to get a fragment time for a non-existing fragment
|
||||
avformat/libssh: fix credential variables typo
|
||||
avformat/hlsenc: check return value of avcodec_parameters_copy()
|
||||
avformat/dashdec: format open_demux_for_component()
|
||||
avformat/dashdec: check return code of avcodec_parameters_copy()
|
||||
avformat/dashdec: return ret directly in open_demux_for_component()
|
||||
avformat/smoothstreamingenc: check return value of avcodec_parameters_copy()
|
||||
avcodec/cbs_av1: fix variable shadowing in cbs_av1_split_fragment()
|
||||
doc/demuxers/dvdvideo: seeking is supported, remove outdated statement
|
||||
avformat/dvdvideodec: check return code of ff_dvdclut_yuv_to_rgb()
|
||||
avformat/dvdvideodec: fix missing last chapter marker due to off-by-one
|
||||
avformat/dvdvideodec: don't allow seeking beyond dvdnav reported duration
|
||||
avformat/dvdvideodec: discard duplicate or partial AC3 samples
|
||||
avformat/dvdvideodec: drop packets with unset PTS or DTS
|
||||
avformat/dvdvideodec: remove unnecessary need_parsing argument
|
||||
avformat/dvdvideodec: open subdemuxer after initializing IFO headers
|
||||
avformat/dvdvideodec: remove auto value for menu_lu option
|
||||
avformat/dvdvideodec: default menu_vts option to 1 and clarify description
|
||||
avformat/dvdvideodec: check the length of a NAV packet when reading titles
|
||||
avformat/dvdvideodec: reset the subdemuxer on discontinuity instead of flushing
|
||||
avformat/dvdvideodec: simplify dvdvideo_read_packet()
|
||||
avformat/dvdvideodec: enable chapter calculation for menus
|
||||
avformat/dvdvideodec: standardize the NAV packet event signal
|
||||
avformat/dvdvideodec: move memcpy below missed NAV packet warning
|
||||
avformat/dvdvideodec: remove "auto" value for -pg option, default to 1
|
||||
avformat/dvdvideodec: measure duration of the current menu VOBU in state
|
||||
avformat/dvdvideodec: fix menu PGC number off-by-one in state
|
||||
avformat/dvdvideodec: remove unused headers
|
||||
lavc/aarch64: Fix ff_pred16x16_plane_neon_10
|
||||
lavc/aarch64: Fix ff_pred8x8_plane_neon_10
|
||||
aarch64/vvc: Fix clip in alf
|
||||
vp9: recon: Use emulated edge to prevent buffer overflows
|
||||
arm: vp9mc: Load only 12 pixels in the 4 pixel wide horizontal filter
|
||||
aarch64: vp9mc: Load only 12 pixels in the 4 pixel wide horizontal filter
|
||||
avformat/rpl: Fix check for negative values
|
||||
avformat/mlvdec: Check avio_read()
|
||||
avcodec/aac/aacdec: Free channel layout
|
||||
avformat/mov: dereference pointer after null check
|
||||
avcodec/utils: Fix block align overflow for ADPCM_IMA_WAV
|
||||
avformat/matroskadec: Check pre_ns for overflow
|
||||
tools/target_dec_fuzzer: Adjust threshold for EACMV
|
||||
tools/target_dec_fuzzer: Adjust threshold for MVC1
|
||||
tools/target_dec_fuzzer: Adjust Threshold for indeo5
|
||||
avutil/timecode: Avoid fps overflow in av_timecode_get_smpte_from_framenum()
|
||||
avcodec/aac/aacdec_usac: Dont leave type at a invalid value
|
||||
avcodec/aac/aacdec_usac: Clean ics2->max_sfb when first SCE fails
|
||||
avcodec/webp: Check ref_x/y
|
||||
avcodec/ilbcdec: Initialize tempbuff2
|
||||
swscale/swscale_unscaled: Fix odd height with nv24_to_yuv420p_chroma()
|
||||
avcodec/hevc/hevcdec: initialize qp_y_tab
|
||||
avformat/qcp: Check for read failure in header
|
||||
avcodec/eatgq: Check bytestream2_get_buffer() for failure
|
||||
avformat/dxa: check bpc
|
||||
swscale/slice: clear allocated memory in alloc_lines()
|
||||
avcodec/h2645_parse: Ignore NAL with nuh_layer_id == 63
|
||||
MAINTAINERS: Lauri is still available but is really low on time nowadays
|
||||
MAINTAINERS: Remove Guillaume Poirier and Romain Dolbeau
|
||||
avcodec/mjpegdec: Disallow progressive bayer images
|
||||
avformat/icodec: fix integer overflow with nb_pal
|
||||
doc/developer: Document relationship between git accounts and MAINTAINERS
|
||||
doc/infra: Document trac backup system
|
||||
doc/infra: Document gitolite
|
||||
avformat/vividas: Check avio_read() for failure
|
||||
avformat/ilbc: Check avio_read() for failure
|
||||
avformat/nistspheredec: Clear buffer
|
||||
avformat/mccdec: Initialize and check rate.den
|
||||
avformat/rpl: check channels
|
||||
INSTALL: explain the circular dependency issue and solution
|
||||
avformat/mpegts: Initialize predefined_SLConfigDescriptor_seen
|
||||
avformat/mxfdec: Fix overflow in midpoint computation
|
||||
swscale/output: used unsigned for bit accumulation
|
||||
swscale/rgb2rgb_template: Fix ff_rgb24toyv12_c() with odd height
|
||||
avcodec/rangecoder: only perform renorm check/loop for callers that need it
|
||||
avcodec/ffv1: add a named constant for the quant table size
|
||||
avcodec/ffv1: RCT is only possible with RGB
|
||||
avcodec/ffv1enc: Fix RCT with RGB64
|
||||
avcodec/ffv1dec: Fix end computation with ec=2
|
||||
avcodec/ffv1enc: Move slice termination into threads
|
||||
avcodec/ffv1enc: Prevent generation of files with broken slices
|
||||
avformat/matroskadec: Check desc_bytes so bits fit in 64bit
|
||||
avformat/mov: Avoid overflow in dts
|
||||
avcodec/ffv1enc: Correct error message about unsupported version
|
||||
avcodec/ffv1: Store and reuse sx/sy
|
||||
avcodec/ffv1enc: Slice combination is unsupported
|
||||
avcodec/ffv1enc: 2Pass mode is not possible with golomb coding
|
||||
avfilter/buffersrc: check for valid sample rate
|
||||
avcodec/libdav1d: clear the buffered Dav1dData on decoding failure
|
||||
avformat/iamf_writer: ensure the stream groups are not empty
|
||||
avformat/iamf_writer: fix setting num_samples_per_frame for OPUS
|
||||
avformat/iamf_parse: fix setting duration for the last subblock in a parameter definition
|
||||
avformat/iamf_parse: add checks to parameter definition durations
|
||||
avformat/iamf_parse: reject ambisonics mode > 1
|
||||
checkasm: Print benchmarks of C-only functions
|
||||
avcodec/ac3dec: fix downmix logic for eac3
|
||||
avcodec/codec_desc: remove Intra Only prop for AAC
|
||||
avcodec/mediacodecdec: set set keyframe flag in output frames
|
||||
avcodec/libfdk-aacenc: set keyframe in output packets
|
||||
avcodec/libfdk-aacdec: set keyframe flag and profile in output frames
|
||||
avcodec/audiotoolboxnec: set set keyframe flag in output packets
|
||||
avcodec/audiotoolboxdec: set set keyframe flag in output frames
|
||||
avcodec/aacenc: set keyframe flag in output packets
|
||||
avcodec/aac/aacdec: set keyframe flag in output frames
|
||||
avcodec/aac_parser: set key_frame and profile
|
||||
avformat/mov: don't unconditionally set all audio packets in fragments as key frames
|
||||
avformat/matroskadec: set all frames in a keyframe simple box as keyframes
|
||||
avformat/test/movenc: set audio packets as key frames
|
||||
avformat/movenc: write stss boxes for xHE-AAC
|
||||
avformat/spdifdec: parse headers for audio codecs
|
||||
avformat/movenc: don't disable edit lists when writing CMAF output
|
||||
avcodec/libfdk-aacenc: export CPB properties
|
||||
avformat/movenc: don't write a calculated avgBitrate when the provided one is unset
|
||||
libavutil/riscv: Make use of elf_aux_info() on FreeBSD / OpenBSD riscv
|
||||
libavutil/ppc: defines involving bit shifts should be unsigned
|
||||
libavutil/ppc: Include the hardware feature flags like the other archs
|
||||
lavu/riscv: fix compilation without Vector support
|
||||
avfilter/f_loop: fix aloop activate logic
|
||||
avfilter/f_loop: fix length of aloop leftover buffer
|
||||
avfilter/vf_zscale: align the frame buffers
|
||||
lavfi/vf_zscale: fix call to av_pix_fmt_count_planes
|
||||
lavfi/vf_zscale: fix tmp buffer ptr alignment for zimg_filter_graph_process
|
||||
avfilter/framepool: align the frame buffers
|
||||
avcodec/h2645_sei: use the RefStruct API for film_grain_characteristics
|
||||
avcodec/aom_film_grain: allocate film grain metadata dynamically
|
||||
avformat/mov: use an array of pointers for heif_item
|
||||
avformat/mov: split off heif item initialization to its own function
|
||||
avformat/mov: factorize getting the current item
|
||||
lavc/h264idct: fix RISC-V group multiplier
|
||||
lavc/h264dsp: move RISC-V fn pointers to .data.rel.ro
|
||||
avcodec/jpegxl_parser: fix reading lz77-pair as initial entropy symbol
|
||||
avcodec/jpegxl_parser: check entropy_decoder_read_symbol return value
|
||||
avcodec/cbs_h266: Fix regression in DVB clip introduced by 93281630a71c06642adfebebb0d4b105a4e02e91
|
||||
avcodec/x86/vvc: add prototypes for OF functions
|
||||
Document stream specifier syntax change from 46cbe4ab5c
|
||||
fftools/ffplay: fix crash when vk renderer is null
|
||||
avutil/wchar_filename: re-introduce explicit cast of void* to char*
|
||||
fate/ffmpeg: add samples dependency to fate-ffmpeg-spec-disposition
|
||||
fftools/ffmpeg_filter: treat apad filter as a source
|
||||
lavc/avcodec: fix global/private option precendence
|
||||
avfilter/framesync: fix forward EOF pts
|
||||
avcodec/vaapi_encode: fix compilation without CONFIG_VAAPI_1
|
||||
libavcodec: x86: Remove an explicit include of config.asm
|
||||
checkasm: lls: Use relative tolerances rather than absolute ones
|
||||
arm: Consistently use proper interworking function returns
|
||||
avcodec/libx265: unbreak build for X265_BUILD >= 213
|
||||
fftools: log unconnected filter output label
|
||||
fftools: do not access out of bounds filtergraph
|
||||
avcodec/mediacodecenc: Fix access of uninitialized value
|
||||
avformat/img2enc: Fix integer truncation when frame_pts is enabled
|
||||
avformat/internal: Add ff_get_frame_filename
|
||||
avformat/mov: don't return the latest stream when an item stream is expected
|
||||
|
||||
|
||||
version 7.1:
|
||||
- Raw Captions with Time (RCWT) closed caption demuxer
|
||||
@ -29,6 +244,15 @@ version 7.1:
|
||||
- LCEVC enhancement data exporting in H.26x and MP4/ISOBMFF
|
||||
- LCEVC filter
|
||||
- MV-HEVC decoding
|
||||
- minor stream specifier syntax changes:
|
||||
- when matching by metadata (:m:<key>:<val>), the colon character
|
||||
in keys or values now has to be backslash-escaped
|
||||
- in optional maps (-map ....?) with a metadata-matching stream specifier,
|
||||
the value has to be separated from the question mark by a colon, i.e.
|
||||
-map ....:m:<key>:<val>:? (otherwise it would be ambiguous whether the
|
||||
question mark is a part of <val> or not)
|
||||
- multiple stream types in a single specifier (e.g. :s:s:0) now cause an
|
||||
error, as such a specifier makes no sense
|
||||
|
||||
|
||||
version 7.0:
|
||||
@ -15,3 +15,11 @@ NOTICE
|
||||
------
|
||||
|
||||
- Non system dependencies (e.g. libx264, libvpx) are disabled by default.
|
||||
|
||||
NOTICE for Package Maintainers
|
||||
------------------------------
|
||||
|
||||
- It is recommended to build FFmpeg twice, first with minimal external dependencies so
|
||||
that 3rd party packages, which depend on FFmpegs libavutil/libavfilter/libavcodec/libavformat
|
||||
can then be built. And last build FFmpeg with full dependancies (which may in turn depend on
|
||||
some of these 3rd party packages). This avoids circular dependencies during build.
|
||||
@ -206,6 +206,7 @@ Codecs:
|
||||
libgsm.c Michel Bardiaux
|
||||
libkvazaar.c Arttu Ylä-Outinen
|
||||
libopenh264enc.c Martin Storsjo, Linjie Fu
|
||||
libopenjpeg.c Jaikrishnan Menon
|
||||
libopenjpegenc.c Michael Bradshaw
|
||||
libtheoraenc.c David Conrad
|
||||
libvorbis.c David Conrad
|
||||
@ -390,7 +391,7 @@ Muxers/Demuxers:
|
||||
dss.c Oleksij Rempel
|
||||
dtsdec.c foo86
|
||||
dv.c Roman Shaposhnik
|
||||
dvdvideodec.c [2] Marth64
|
||||
dvdvideodec.c Marth64
|
||||
electronicarts.c Peter Ross
|
||||
evc* Samsung (Dawid Kozinski)
|
||||
ffm* Baptiste Coudurier
|
||||
@ -444,8 +445,7 @@ Muxers/Demuxers:
|
||||
pva.c Ivo van Poorten
|
||||
r3d.c Baptiste Coudurier
|
||||
raw.c Michael Niedermayer
|
||||
rcwtdec.c [2] Marth64
|
||||
rcwtenc.c [2] Marth64
|
||||
rcwtenc.c Marth64
|
||||
rdt.c Ronald S. Bultje
|
||||
rl2.c Sascha Sommer
|
||||
rmdec.c, rmenc.c Ronald S. Bultje
|
||||
@ -511,9 +511,9 @@ Operating systems / CPU architectures
|
||||
Alpha [0]
|
||||
MIPS Manojkumar Bhosale, Shiyou Yin
|
||||
LoongArch [2] Shiyou Yin
|
||||
Mac OS X / PowerPC Romain Dolbeau, Guillaume Poirier
|
||||
Mac OS X / PowerPC [0]
|
||||
Amiga / PowerPC Colin Ward
|
||||
Linux / PowerPC Lauri Kasanen
|
||||
Linux / PowerPC [1] Lauri Kasanen
|
||||
RISC-V [2] Rémi Denis-Courmont
|
||||
Windows MinGW Alex Beregszaszi, Ramiro Polla
|
||||
Windows Cygwin Victor Paesa
|
||||
1
submodules/ffmpeg/Sources/FFMpeg/ffmpeg-7.1.1/RELEASE
Normal file
1
submodules/ffmpeg/Sources/FFMpeg/ffmpeg-7.1.1/RELEASE
Normal file
@ -0,0 +1 @@
|
||||
7.1.1
|
||||
15
submodules/ffmpeg/Sources/FFMpeg/ffmpeg-7.1.1/RELEASE_NOTES
Normal file
15
submodules/ffmpeg/Sources/FFMpeg/ffmpeg-7.1.1/RELEASE_NOTES
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
┌──────────────────────────────────────┐
|
||||
│ RELEASE NOTES for FFmpeg 7.1 "Péter" │
|
||||
└──────────────────────────────────────┘
|
||||
|
||||
The FFmpeg Project proudly presents FFmpeg 7.1 "Péter", about 6
|
||||
months after the release of FFmpeg 7.0.
|
||||
|
||||
A complete Changelog is available at the root of the project, and the
|
||||
complete Git history on https://git.ffmpeg.org/gitweb/ffmpeg.git
|
||||
|
||||
We hope you will like this release as much as we enjoyed working on it, and
|
||||
as usual, if you have any questions about it, or any FFmpeg related topic,
|
||||
feel free to join us on the #ffmpeg IRC channel (on irc.libera.chat) or ask
|
||||
on the mailing-lists.
|
||||
1
submodules/ffmpeg/Sources/FFMpeg/ffmpeg-7.1.1/VERSION
Normal file
1
submodules/ffmpeg/Sources/FFMpeg/ffmpeg-7.1.1/VERSION
Normal file
@ -0,0 +1 @@
|
||||
7.1.1
|
||||
@ -467,8 +467,6 @@ Optimization options (experts only):
|
||||
--disable-neon disable NEON optimizations
|
||||
--disable-dotprod disable DOTPROD optimizations
|
||||
--disable-i8mm disable I8MM optimizations
|
||||
--disable-sve disable SVE optimizations
|
||||
--disable-sve2 disable SVE2 optimizations
|
||||
--disable-inline-asm disable use of inline assembly
|
||||
--disable-x86asm disable use of standalone x86 assembly
|
||||
--disable-mipsdsp disable MIPS DSP ASE R1 optimizations
|
||||
@ -2165,8 +2163,6 @@ ARCH_EXT_LIST_ARM="
|
||||
vfp
|
||||
vfpv3
|
||||
setend
|
||||
sve
|
||||
sve2
|
||||
"
|
||||
|
||||
ARCH_EXT_LIST_MIPS="
|
||||
@ -2436,8 +2432,6 @@ TOOLCHAIN_FEATURES="
|
||||
as_arch_directive
|
||||
as_archext_dotprod_directive
|
||||
as_archext_i8mm_directive
|
||||
as_archext_sve_directive
|
||||
as_archext_sve2_directive
|
||||
as_dn_directive
|
||||
as_fpu_directive
|
||||
as_func
|
||||
@ -2467,7 +2461,6 @@ TYPES_LIST="
|
||||
kCMVideoCodecType_HEVC
|
||||
kCMVideoCodecType_HEVCWithAlpha
|
||||
kCMVideoCodecType_VP9
|
||||
kCMVideoCodecType_AV1
|
||||
kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange
|
||||
kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange
|
||||
kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange
|
||||
@ -2759,8 +2752,6 @@ vfpv3_deps="vfp"
|
||||
setend_deps="arm"
|
||||
dotprod_deps="aarch64 neon"
|
||||
i8mm_deps="aarch64 neon"
|
||||
sve_deps="aarch64 neon"
|
||||
sve2_deps="aarch64 neon sve"
|
||||
|
||||
map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
|
||||
|
||||
@ -3175,8 +3166,6 @@ av1_vaapi_hwaccel_deps="vaapi VADecPictureParameterBufferAV1_bit_depth_idx"
|
||||
av1_vaapi_hwaccel_select="av1_decoder"
|
||||
av1_vdpau_hwaccel_deps="vdpau VdpPictureInfoAV1"
|
||||
av1_vdpau_hwaccel_select="av1_decoder"
|
||||
av1_videotoolbox_hwaccel_deps="videotoolbox"
|
||||
av1_videotoolbox_hwaccel_select="av1_decoder"
|
||||
av1_vulkan_hwaccel_deps="vulkan"
|
||||
av1_vulkan_hwaccel_select="av1_decoder"
|
||||
h263_vaapi_hwaccel_deps="vaapi"
|
||||
@ -6245,11 +6234,9 @@ if enabled aarch64; then
|
||||
# internal assembler in clang 3.3 does not support this instruction
|
||||
enabled neon && check_insn neon 'ext v0.8B, v0.8B, v1.8B, #1'
|
||||
|
||||
archext_list="dotprod i8mm sve sve2"
|
||||
archext_list="dotprod i8mm"
|
||||
enabled dotprod && check_archext_insn dotprod 'udot v0.4s, v0.16b, v0.16b'
|
||||
enabled i8mm && check_archext_insn i8mm 'usdot v0.4s, v0.16b, v0.16b'
|
||||
enabled sve && check_archext_insn sve 'whilelt p0.s, x0, x1'
|
||||
enabled sve2 && check_archext_insn sve2 'sqrdmulh z0.s, z0.s, z0.s'
|
||||
|
||||
# Disable the main feature (e.g. HAVE_NEON) if neither inline nor external
|
||||
# assembly support the feature out of the box. Skip this for the features
|
||||
@ -6493,7 +6480,6 @@ check_cc intrinsics_sse2 emmintrin.h "__m128i test = _mm_setzero_si128()"
|
||||
|
||||
check_ldflags -Wl,--as-needed
|
||||
check_ldflags -Wl,-z,noexecstack
|
||||
check_ldflags -Wl,-no_warn_duplicate_libraries
|
||||
|
||||
if ! disabled network; then
|
||||
check_func getaddrinfo $network_extralibs
|
||||
@ -6711,7 +6697,6 @@ enabled videotoolbox && {
|
||||
check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVC "-framework CoreMedia"
|
||||
check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVCWithAlpha "-framework CoreMedia"
|
||||
check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_VP9 "-framework CoreMedia"
|
||||
check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_AV1 "-framework CoreMedia"
|
||||
check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange "-framework CoreVideo"
|
||||
check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange "-framework CoreVideo"
|
||||
check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange "-framework CoreVideo"
|
||||
@ -7190,7 +7175,7 @@ enabled makeinfo \
|
||||
disabled makeinfo_html && texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html
|
||||
perl -v > /dev/null 2>&1 && enable perl || disable perl
|
||||
pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
|
||||
rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout
|
||||
rsync --help 2> /dev/null | grep -q 'contimeout=' && enable rsync_contimeout || disable rsync_contimeout
|
||||
xmllint --version > /dev/null 2>&1 && enable xmllint || disable xmllint
|
||||
|
||||
check_headers linux/fb.h
|
||||
@ -7934,8 +7919,6 @@ if enabled aarch64; then
|
||||
echo "NEON enabled ${neon-no}"
|
||||
echo "DOTPROD enabled ${dotprod-no}"
|
||||
echo "I8MM enabled ${i8mm-no}"
|
||||
echo "SVE enabled ${sve-no}"
|
||||
echo "SVE2 enabled ${sve2-no}"
|
||||
fi
|
||||
if enabled arm; then
|
||||
echo "ARMv5TE enabled ${armv5te-no}"
|
||||
@ -8208,7 +8191,7 @@ cat > $TMPH <<EOF
|
||||
#define FFMPEG_CONFIG_H
|
||||
#define FFMPEG_CONFIGURATION "$(c_escape $FFMPEG_CONFIGURATION)"
|
||||
#define FFMPEG_LICENSE "$(c_escape $license)"
|
||||
#define CONFIG_THIS_YEAR 2024
|
||||
#define CONFIG_THIS_YEAR 2025
|
||||
#define FFMPEG_DATADIR "$(eval c_escape $datadir)"
|
||||
#define AVCONV_DATADIR "$(eval c_escape $datadir)"
|
||||
#define CC_IDENT "$(c_escape ${cc_ident:-Unknown compiler})"
|
||||
@ -2,37 +2,6 @@ The last version increases of all libraries were on 2024-03-07
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2024-10-xx - xxxxxxxxxx - lavu 59.41.100 - log.h
|
||||
Add AVClass.state_flags_offset and AV_CLASS_STATE_INITIALIZED.
|
||||
|
||||
2024-09-30 - xxxxxxxxxx - lavf 61.9.100 - avformat.h
|
||||
Add {nb_}coded_side_data to AVStreamGroupTileGrid.
|
||||
|
||||
2024-09-xx - xxxxxxxxxx - lavu 59
|
||||
Deprecate av_int_list_length_for_size(), av_int_list_length(), and
|
||||
av_opt_set_int_list() without replacement. All AVOptions using these
|
||||
should be replaced with AV_OPT_TYPE_FLAG_ARRAY.
|
||||
|
||||
2024-09-xx - xxxxxxxxxx - lavfi 10.6.100
|
||||
Buffersink now has array-type options
|
||||
- pixel_formats
|
||||
- colorspaces
|
||||
- colorranges
|
||||
replacing the int-list options
|
||||
- pix_fmts
|
||||
- color_spaces
|
||||
- color_ranges
|
||||
abuffersink now has array-type options
|
||||
- sample_formats
|
||||
- samplerates
|
||||
- channel_layouts
|
||||
replacing the int-list/string options
|
||||
- sample_fmts
|
||||
- sample_rates
|
||||
- ch_layouts
|
||||
|
||||
-------- 8< --------- FFmpeg 7.1 was cut here -------- 8< ---------
|
||||
|
||||
2024-09-23 - 6940a6de2f0 - lavu 59.38.100 - frame.h
|
||||
Add AV_FRAME_DATA_VIEW_ID.
|
||||
|
||||
@ -38,7 +38,7 @@ PROJECT_NAME = FFmpeg
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER =
|
||||
PROJECT_NUMBER = 7.1.1
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
@ -292,7 +292,6 @@ DVD-Video demuxer, powered by libdvdnav and libdvdread.
|
||||
Can directly ingest DVD titles, specifically sequential PGCs, into
|
||||
a conversion pipeline. Menu assets, such as background video or audio,
|
||||
can also be demuxed given the menu's coordinates (at best effort).
|
||||
Seeking is not supported at this time.
|
||||
|
||||
Block devices (DVD drives), ISO files, and directory structures are accepted.
|
||||
Activate with @code{-f dvdvideo} in front of one of these inputs.
|
||||
@ -380,11 +379,11 @@ Default is false.
|
||||
|
||||
@item menu_lu @var{int}
|
||||
The menu language to demux. In DVD, menus are grouped by language.
|
||||
Default is 0, the first language unit.
|
||||
Default is 1, the first language unit.
|
||||
|
||||
@item menu_vts @var{int}
|
||||
The VTS where the menu lives, or 0 if it is a VMG menu (root-level).
|
||||
Default is 0, VMG menu.
|
||||
Default is 1, menu of the first VTS.
|
||||
|
||||
@item pgc @var{int}
|
||||
The entry PGC to start playback, in conjunction with @option{pg}.
|
||||
@ -397,8 +396,7 @@ Default is 0, automatically resolve from value of @option{title}.
|
||||
The entry PG to start playback, in conjunction with @option{pgc}.
|
||||
Alternative to setting @option{title}.
|
||||
Chapter markers are not supported at this time.
|
||||
Default is 0, automatically resolve from value of @option{title}, or
|
||||
start from the beginning (PG 1) of the menu.
|
||||
Default is 1, the first PG of the PGC.
|
||||
|
||||
@item preindex @var{bool}
|
||||
Enable this to have accurate chapter (PTT) markers and duration measurement,
|
||||
@ -406,7 +404,6 @@ which requires a slow second pass read in order to index the chapter marker
|
||||
timestamps from NAV packets. This is non-ideal extra work for real optical drives.
|
||||
It is recommended and faster to use this option with a backup of the DVD structure
|
||||
stored on a hard drive. Not compatible with @option{pgc} and @option{pg}.
|
||||
Not applicable to menus.
|
||||
Default is 0, false.
|
||||
|
||||
@item trim @var{bool}
|
||||
@ -567,6 +564,13 @@ prefer to use #EXT-X-START if it's in playlist instead of live_start_index.
|
||||
@item allowed_extensions
|
||||
',' separated list of file extensions that hls is allowed to access.
|
||||
|
||||
@item extension_picky
|
||||
This blocks disallowed extensions from probing
|
||||
It also requires all available segments to have matching extensions to the format
|
||||
except mpegts, which is always allowed.
|
||||
It is recommended to set the whitelists correctly instead of depending on extensions
|
||||
Enabled by default.
|
||||
|
||||
@item max_reload
|
||||
Maximum number of times a insufficient list is attempted to be reloaded.
|
||||
Default value is 1000.
|
||||
@ -927,6 +927,25 @@ In case you need finer control over how valgrind is invoked, use the
|
||||
@code{--target-exec='valgrind <your_custom_valgrind_options>} option in
|
||||
your configure line instead.
|
||||
|
||||
@anchor{Maintenance}
|
||||
@chapter Maintenance process
|
||||
|
||||
@anchor{MAINTAINERS}
|
||||
@section MAINTAINERS
|
||||
|
||||
The developers maintaining each part of the codebase are listed in @file{MAINTAINERS}.
|
||||
Being listed in @file{MAINTAINERS}, gives one the right to have git write access to
|
||||
the specific repository.
|
||||
|
||||
@anchor{Becoming a maintainer}
|
||||
@section Becoming a maintainer
|
||||
|
||||
People add themselves to @file{MAINTAINERS} by sending a patch like any other code
|
||||
change. These get reviewed by the community like any other patch. It is expected
|
||||
that, if someone has an objection to a new maintainer, she is willing to object
|
||||
in public with her full name and is willing to take over maintainership for the area.
|
||||
|
||||
|
||||
@anchor{Release process}
|
||||
@chapter Release process
|
||||
|
||||
@ -96,7 +96,8 @@ static int init_filters(const char *filters_descr)
|
||||
const AVFilter *abuffersink = avfilter_get_by_name("abuffersink");
|
||||
AVFilterInOut *outputs = avfilter_inout_alloc();
|
||||
AVFilterInOut *inputs = avfilter_inout_alloc();
|
||||
static const int out_sample_rate = 8000;
|
||||
static const enum AVSampleFormat out_sample_fmts[] = { AV_SAMPLE_FMT_S16, -1 };
|
||||
static const int out_sample_rates[] = { 8000, -1 };
|
||||
const AVFilterLink *outlink;
|
||||
AVRational time_base = fmt_ctx->streams[audio_stream_index]->time_base;
|
||||
|
||||
@ -122,40 +123,34 @@ static int init_filters(const char *filters_descr)
|
||||
}
|
||||
|
||||
/* buffer audio sink: to terminate the filter chain. */
|
||||
buffersink_ctx = avfilter_graph_alloc_filter(filter_graph, abuffersink, "out");
|
||||
if (!buffersink_ctx) {
|
||||
ret = avfilter_graph_create_filter(&buffersink_ctx, abuffersink, "out",
|
||||
NULL, NULL, filter_graph);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n");
|
||||
ret = AVERROR(ENOMEM);
|
||||
goto end;
|
||||
}
|
||||
|
||||
ret = av_opt_set(buffersink_ctx, "sample_formats", "s16",
|
||||
AV_OPT_SEARCH_CHILDREN);
|
||||
ret = av_opt_set_int_list(buffersink_ctx, "sample_fmts", out_sample_fmts, -1,
|
||||
AV_OPT_SEARCH_CHILDREN);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot set output sample format\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
ret = av_opt_set(buffersink_ctx, "channel_layouts", "mono",
|
||||
AV_OPT_SEARCH_CHILDREN);
|
||||
ret = av_opt_set(buffersink_ctx, "ch_layouts", "mono",
|
||||
AV_OPT_SEARCH_CHILDREN);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot set output channel layout\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
ret = av_opt_set_array(buffersink_ctx, "samplerates", AV_OPT_SEARCH_CHILDREN,
|
||||
0, 1, AV_OPT_TYPE_INT, &out_sample_rate);
|
||||
ret = av_opt_set_int_list(buffersink_ctx, "sample_rates", out_sample_rates, -1,
|
||||
AV_OPT_SEARCH_CHILDREN);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot set output sample rate\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
ret = avfilter_init_dict(buffersink_ctx, NULL);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot initialize audio buffer sink\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the endpoints for the filter graph. The filter_graph will
|
||||
* be linked to the graph described by filters_descr.
|
||||
@ -99,6 +99,7 @@ static int init_filters(const char *filters_descr)
|
||||
AVFilterInOut *outputs = avfilter_inout_alloc();
|
||||
AVFilterInOut *inputs = avfilter_inout_alloc();
|
||||
AVRational time_base = fmt_ctx->streams[video_stream_index]->time_base;
|
||||
enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
|
||||
|
||||
filter_graph = avfilter_graph_alloc();
|
||||
if (!outputs || !inputs || !filter_graph) {
|
||||
@ -121,26 +122,20 @@ static int init_filters(const char *filters_descr)
|
||||
}
|
||||
|
||||
/* buffer video sink: to terminate the filter chain. */
|
||||
buffersink_ctx = avfilter_graph_alloc_filter(filter_graph, buffersink, "out");
|
||||
if (!buffersink_ctx) {
|
||||
ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out",
|
||||
NULL, NULL, filter_graph);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n");
|
||||
ret = AVERROR(ENOMEM);
|
||||
goto end;
|
||||
}
|
||||
|
||||
ret = av_opt_set(buffersink_ctx, "pixel_formats", "gray8",
|
||||
AV_OPT_SEARCH_CHILDREN);
|
||||
ret = av_opt_set_int_list(buffersink_ctx, "pix_fmts", pix_fmts,
|
||||
AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
ret = avfilter_init_dict(buffersink_ctx, NULL);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot initialize buffer sink\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the endpoints for the filter graph. The filter_graph will
|
||||
* be linked to the graph described by filters_descr.
|
||||
@ -171,38 +171,23 @@ static int open_output_file(const char *filename)
|
||||
* sample rate etc.). These properties can be changed for output
|
||||
* streams easily using filters */
|
||||
if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {
|
||||
const enum AVPixelFormat *pix_fmts = NULL;
|
||||
|
||||
enc_ctx->height = dec_ctx->height;
|
||||
enc_ctx->width = dec_ctx->width;
|
||||
enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio;
|
||||
|
||||
ret = avcodec_get_supported_config(dec_ctx, NULL,
|
||||
AV_CODEC_CONFIG_PIX_FORMAT, 0,
|
||||
(const void**)&pix_fmts, NULL);
|
||||
|
||||
/* take first format from list of supported formats */
|
||||
enc_ctx->pix_fmt = (ret >= 0 && pix_fmts) ?
|
||||
pix_fmts[0] : dec_ctx->pix_fmt;
|
||||
|
||||
if (encoder->pix_fmts)
|
||||
enc_ctx->pix_fmt = encoder->pix_fmts[0];
|
||||
else
|
||||
enc_ctx->pix_fmt = dec_ctx->pix_fmt;
|
||||
/* video time_base can be set to whatever is handy and supported by encoder */
|
||||
enc_ctx->time_base = av_inv_q(dec_ctx->framerate);
|
||||
} else {
|
||||
const enum AVSampleFormat *sample_fmts = NULL;
|
||||
|
||||
enc_ctx->sample_rate = dec_ctx->sample_rate;
|
||||
ret = av_channel_layout_copy(&enc_ctx->ch_layout, &dec_ctx->ch_layout);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = avcodec_get_supported_config(dec_ctx, NULL,
|
||||
AV_CODEC_CONFIG_SAMPLE_FORMAT, 0,
|
||||
(const void**)&sample_fmts, NULL);
|
||||
|
||||
/* take first format from list of supported formats */
|
||||
enc_ctx->sample_fmt = (ret >= 0 && sample_fmts) ?
|
||||
sample_fmts[0] : dec_ctx->sample_fmt;
|
||||
|
||||
enc_ctx->sample_fmt = encoder->sample_fmts[0];
|
||||
enc_ctx->time_base = (AVRational){1, enc_ctx->sample_rate};
|
||||
}
|
||||
|
||||
@ -298,10 +283,10 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
|
||||
goto end;
|
||||
}
|
||||
|
||||
buffersink_ctx = avfilter_graph_alloc_filter(filter_graph, buffersink, "out");
|
||||
if (!buffersink_ctx) {
|
||||
ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out",
|
||||
NULL, NULL, filter_graph);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n");
|
||||
ret = AVERROR(ENOMEM);
|
||||
goto end;
|
||||
}
|
||||
|
||||
@ -312,12 +297,6 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
ret = avfilter_init_dict(buffersink_ctx, NULL);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot initialize buffer sink\n");
|
||||
goto end;
|
||||
}
|
||||
} else if (dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||
char buf[64];
|
||||
buffersrc = avfilter_get_by_name("abuffer");
|
||||
@ -343,10 +322,10 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
|
||||
goto end;
|
||||
}
|
||||
|
||||
buffersink_ctx = avfilter_graph_alloc_filter(filter_graph, buffersink, "out");
|
||||
if (!buffersink_ctx) {
|
||||
ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out",
|
||||
NULL, NULL, filter_graph);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n");
|
||||
ret = AVERROR(ENOMEM);
|
||||
goto end;
|
||||
}
|
||||
|
||||
@ -373,15 +352,6 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot set output sample rate\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (enc_ctx->frame_size > 0)
|
||||
av_buffersink_set_frame_size(buffersink_ctx, enc_ctx->frame_size);
|
||||
|
||||
ret = avfilter_init_dict(buffersink_ctx, NULL);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Cannot initialize audio buffer sink\n");
|
||||
goto end;
|
||||
}
|
||||
} else {
|
||||
ret = AVERROR_UNKNOWN;
|
||||
goto end;
|
||||
@ -21,24 +21,22 @@ ffmpeg [@var{global_options}] @{[@var{input_file_options}] -i @file{input_url}@}
|
||||
inputs - including live grabbing/recording devices - filter, and transcode them
|
||||
into a plethora of output formats.
|
||||
|
||||
@command{ffmpeg} reads from an arbitrary number of inputs (which can be regular
|
||||
@command{ffmpeg} reads from an arbitrary number of input "files" (which can be regular
|
||||
files, pipes, network streams, grabbing devices, etc.), specified by the
|
||||
@code{-i} option, and writes to an arbitrary number of outputs, which are
|
||||
specified by a plain output url. Anything found on the command line which cannot
|
||||
be interpreted as an option is considered to be an output url.
|
||||
@code{-i} option, and writes to an arbitrary number of output "files", which are
|
||||
specified by a plain output url. Anything found on the command line which
|
||||
cannot be interpreted as an option is considered to be an output url.
|
||||
|
||||
Each input or output can, in principle, contain any number of elementary streams
|
||||
of different types (video/audio/subtitle/attachment/data), though the allowed
|
||||
stream counts and/or types may be limited by the container format. Selecting
|
||||
which streams from which inputs will go into which output is either done
|
||||
automatically or with the @code{-map} option (see the @ref{Stream selection}
|
||||
chapter).
|
||||
Each input or output url can, in principle, contain any number of streams of
|
||||
different types (video/audio/subtitle/attachment/data). The allowed number and/or
|
||||
types of streams may be limited by the container format. Selecting which
|
||||
streams from which inputs will go into which output is either done automatically
|
||||
or with the @code{-map} option (see the Stream selection chapter).
|
||||
|
||||
To refer to inputs/outputs in options, you must use their indices (0-based).
|
||||
E.g. the first input is @code{0}, the second is @code{1}, etc. Similarly,
|
||||
streams within an input/output are referred to by their indices. E.g. @code{2:3}
|
||||
refers to the fourth stream in the third input or output. Also see the
|
||||
@ref{Stream specifiers} chapter.
|
||||
To refer to input files in options, you must use their indices (0-based). E.g.
|
||||
the first input file is @code{0}, the second is @code{1}, etc. Similarly, streams
|
||||
within a file are referred to by their indices. E.g. @code{2:3} refers to the
|
||||
fourth stream in the third input file. Also see the Stream specifiers chapter.
|
||||
|
||||
As a general rule, options are applied to the next specified
|
||||
file. Therefore, order is important, and you can have the same
|
||||
@ -263,7 +261,6 @@ reads an input video and
|
||||
|
||||
@c man end DETAILED DESCRIPTION
|
||||
|
||||
@anchor{Stream selection}
|
||||
@chapter Stream selection
|
||||
@c man begin STREAM SELECTION
|
||||
|
||||
@ -1802,7 +1799,7 @@ Set the size of the canvas used to render subtitles.
|
||||
@section Advanced options
|
||||
|
||||
@table @option
|
||||
@item -map [-]@var{input_file_id}[:@var{stream_specifier}][:@var{view_specifier}][?] | @var{[linklabel]} (@emph{output})
|
||||
@item -map [-]@var{input_file_id}[:@var{stream_specifier}][:@var{view_specifier}][:?] | @var{[linklabel]} (@emph{output})
|
||||
|
||||
Create one or more streams in the output file. This option has two forms for
|
||||
specifying the data source(s): the first selects one or more streams from some
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user