Skip to content

Feature: refactor DTLS to merge it into tls_openssl.c #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 270 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
270 commits
Select commit Hold shift + click to select a range
0e4c0db
avcodec/vvc/intra: refact out lmcs_scale_chroma and add_residual
QSXW May 14, 2025
fd5d754
avcodec/vvc: add adaptive color transform support
QSXW May 14, 2025
a65d028
Changelog: VVC supports all content of SCC
QSXW May 14, 2025
88f2ccd
cbs_apv: Fix memory leak on metadata parse failure
fhvwy May 14, 2025
b5f26c4
avcodec/utvideoenc: Don't advertise unsupported option
mkver May 16, 2025
0105ff5
avcodec/libaribb24: change new lines to \n in ASS header
kasper93 May 10, 2024
597186b
avcodec/libaribcaption: change new lines to \n in ASS header
kasper93 May 10, 2024
eb6dc95
avcodec/libzvbi-teletextdec: change new lines to \n in ASS header
kasper93 May 10, 2024
f297ebf
tests/swscale: improve colorization of speedup
haasn Apr 23, 2025
51e9124
swscale/graph: expose ff_sws_graph_add_pass
haasn Feb 21, 2025
bc9696b
swscale/graph: make noop loop more robust
haasn Mar 6, 2025
d959447
swscale/graph: move vshift() and shift_img() to shared header
haasn Mar 6, 2025
6072e27
swscale/graph: prefer bools to ints
haasn Mar 6, 2025
06cee0c
doc: add swscale rewrite design document
haasn Mar 7, 2025
2070cc1
fftools/graphprint: Fix leak of graphprint object
fhvwy May 17, 2025
c18d1b6
fftools/graphprint: Fix leak of graph section header string
fhvwy May 17, 2025
20502ba
ffmpeg: Don't print graphs if there are no outputs yet
fhvwy May 17, 2025
0021484
avformat/mpegts: update stream info when PMT ES stream_type changes
pkoshevoy May 18, 2025
9fadd6d
doc: add htmlxref.cnf
jamrial May 14, 2025
95c43c6
tests/fate/pixfmt: fix definition of 16bit tests
jamrial May 18, 2025
bd2dcfa
tests/fate/matroska: Add container cropping test
mkver May 16, 2025
2fb6416
ogg/flac: implement header packet skip in chained ogg bitstreams.
toots May 6, 2025
9c5ed57
ogg/opus: implement header packet skip in chained ogg bitstreams.
toots May 6, 2025
c55d65a
configure: correct liboapv feature support
GyanD May 18, 2025
b6803bf
aarch64: increase default alignment for functions and constants
ramiropolla May 15, 2025
fd18ae8
avcodec/x86/vp9: Add AVX-512ICL for 16x16 and 32x32 8bpc inverse tran…
gramner-twoorioles May 16, 2025
ebbc7ff
ffv1enc_vulkan: merge all encoder variants into one file
cyanreg May 1, 2025
a4078ab
vulkan/ffv1: synchronize get_pred implementations between encoder and…
cyanreg May 1, 2025
69f83ba
ffv1enc_vulkan: get rid of temporary data for the setup shader
cyanreg May 2, 2025
7c0a8c0
ffv1enc_vulkan: unify EC code between setup and encode
cyanreg May 2, 2025
5259502
ffv1enc_vulkan: minor EC optimizations
cyanreg May 2, 2025
bd41838
ffv1enc_vulkan: switch to 2-line cache, unify prediction code
cyanreg May 1, 2025
8a2d921
ffv1_common: minor RGB optimization
cyanreg May 2, 2025
f69db91
ffv1enc_vulkan: use ff_get_encode_buffer
cyanreg May 3, 2025
a24ea37
vulkan_ffv1: fix PCM + cached symbol reader
cyanreg May 3, 2025
0156680
ffv1enc_vulkan: implement the cached EC writer from the decoder
cyanreg May 3, 2025
7576410
ffv1enc_vulkan: implement RCT search for level >= 4
cyanreg Nov 20, 2024
cb8f4b6
vulkan/ffv1: unify encode and decode get/put primitives
cyanreg May 6, 2025
7b45d9c
vulkan_ffv1: pipe through slice decoding status
cyanreg May 6, 2025
435db9b
vulkan: enable VK_KHR_shader_subgroup_rotate
cyanreg May 6, 2025
7c3c5c8
hwcontext_vulkan: correct image transfer usage flags
cyanreg May 12, 2025
eabb628
hwcontext_vulkan: only try exporting DMABUF memory on !WIN32 and only…
cyanreg May 12, 2025
4f7bc62
avformat/allformats: Move avisynth and dvdvideo under external librar…
quink-black May 12, 2025
1249776
Makefile: Remove postproc from ALLFFLIBS
quink-black May 12, 2025
f414038
configure: identify loong64 for loongarch
yinshiyou May 13, 2025
842fa19
hwcontext_vulkan: fix build with old Vulkan header versions
cyanreg May 20, 2025
431e2ca
avcodec/cuviddec: print error when queueing frames fails
BtbN May 20, 2025
d5a9f7b
avcodec/cuviddec: only flush cuvid when output queue is empty
BtbN May 20, 2025
66f5323
avcodec/rv60dec: Avoid branch when decoding cbp16
mkver May 18, 2025
bd63c37
avformat/avformat: Remove outdated io_close2 documentation
mkver May 17, 2025
36af32f
avcodec/tests/.gitignore: Add apv test tool
mkver May 17, 2025
a6f7b32
avcodec/ratecontrol: Fix wrong sizeof expression
mkver May 6, 2025
e12cbf6
avcodec/tests/avcodec: Check only frame-mt decoders set update_thread…
mkver May 16, 2025
a1e4be5
avcodec/mpegvideo_dec: Move ff_mpv_report_decode_progress() to h263dec.c
mkver May 16, 2025
5649767
avcodec/mpeg12dec: Set save_chroma_format also for VCR2
mkver May 16, 2025
562192e
avcodec/mpeg12dec: Remove redundant save_width/height
mkver May 16, 2025
f5f890f
avcodec/mpeg12dec: Remove nonsense comment
mkver May 17, 2025
0b3dae6
avcodec/mpeg12enc: Combine put_bits()
mkver May 17, 2025
0468b86
avcodec/svq3: Factor out decoding extradata
mkver May 15, 2025
cb54eca
avcodec/svq3: Improve returned error codes
mkver May 15, 2025
eacde6e
avcodec/svq3: Deduplicate allocating dummy frame
mkver May 15, 2025
b8ec4f7
avcodec/svq3: Allocate motion_val jointly
mkver May 15, 2025
f362a19
avcodec/svq3: Allocate picture buffers during init
mkver May 15, 2025
b981288
tests/fate/qt: Use passthrough fps_mode for svq3-watermark
mkver May 15, 2025
b6f84cd
avcodec/svq3: Improve returning last picture
mkver May 15, 2025
004cc60
avutil/avassert: Add av_unreachable() and av_assume() macros
mkver Oct 3, 2021
fc9e2a9
avcodec/amrwbdec: Mark default switch as unreachable
mkver Oct 3, 2021
b5824a6
avcodec/proresenc_anatoliy: Mark impossible case as unreachable
mkver Oct 3, 2021
7a27357
avcodec/mpeg4videodec: Mark impossible switch case as unreachable
mkver Oct 3, 2021
fc520cc
avcodec/pcm-dvdenc: Mark unreachable default cases as unreachable
mkver Oct 3, 2021
d7d1379
avcodec/vlc: Make code more readable with av_unreachable()
mkver Oct 3, 2021
22e6e4e
avcodec/utvideoenc: Remove always-false pixel format check
mkver Oct 3, 2021
988e319
avcodec/dolby_e_parse: Use av_unreachable instead of av_assert0(0)
mkver Oct 3, 2021
4484e9b
avcodec/put_bits: Allow to mark places where PutBitContext is flushed
mkver May 24, 2024
2df9c8d
avcodec/e?ac3enc: Inform compiler about PutBitContext being blank
mkver May 24, 2024
831a0d0
avcodec/speedhqenc: Use av_unreachable() for unreachable condition
mkver May 24, 2024
57696f7
avcodec/wmaenc: Use av_unreachable() instead of av_assert0(0)
mkver May 24, 2024
ef58de7
avcodec/mpegvideo_{dec,motion}: Mark unreachable code as unreachable
mkver May 24, 2024
5d0e8fa
avcodec/vlc: Make assert check more strict
mkver Oct 3, 2021
a359172
avcodec/mpegvideo encs: Add put_bits_assume_flushed() to encode_header
mkver May 6, 2025
2282a37
avcodec/rv20enc: Use av_assert1() instead of av_assert0()
mkver May 6, 2025
0bdb691
avcodec/vp9: Replace av_assert(0) by av_unreachable()
mkver May 6, 2025
85fb345
avcodec/adpcm: Use av_unreachable() instead of av_assert0()
mkver May 6, 2025
5653e0b
avcodec/mjpegenc_common: Use av_unreachable() instead of av_assert0(0)
mkver May 6, 2025
328ba54
avcodec/4xm: Use av_unreachable() instead of av_assert0(0)
mkver May 6, 2025
2a5ee83
avcodec/atrac3: Use av_unreachable() instead of av_assert1(0)
mkver May 6, 2025
f1b3e51
avcodec/amfenc_h264: improve B-frame usability and simplify options
OvchinnikovDmitrii May 16, 2025
4099d53
avfilter/vf_interlace_vulkan: fix FPS and PTS calculation
haasn May 21, 2025
c8b09fb
avutil/refstruct: Remove redundant check
mkver May 19, 2025
36ec921
avformat/dhav: fix backward scanning for get_duration and optimize se…
justinruggles Mar 21, 2025
2a180c7
libavformat/rtpdec_opus: Set duration field on Opus AVPacket
jbaudanza May 12, 2025
f566392
libavformat/rtpdec_opus: add fmtp parsing of sprop-maxcapturerate
Sep 26, 2022
b9b44e1
rtpdec: Set bitrate for pcm-mulaw audio
Sep 27, 2022
977d1a2
vulkan/ffv1: fix sync issue in cached bitstream reader/writer
cyanreg May 22, 2025
e93a43b
doc/examples/filter_audio: use av_err2str
tmatth May 22, 2025
9b9a287
doc/examples/qsv_decode: use av_err2str
tmatth May 22, 2025
db5e0e2
build: remove unused SLIBOBJS variable
ramiropolla May 16, 2025
a16c053
swscale/swscale_unscaled: fix planarCopyWrapper() for yuv444p => yuva…
ramiropolla May 18, 2025
0c1d87d
swscale/swscale_unscaled: fix packed30togbra10() for formats with bpc…
ramiropolla May 18, 2025
748e960
swscale/swscale_unscaled: fix packed16togbra16() for formats with bpc…
ramiropolla May 18, 2025
d028cf0
swscale/swscale_unscaled: fix planarRgbToplanarRgbWrapper() for forma…
ramiropolla May 18, 2025
8eae65d
avcodec/lcevcdec: don't try to write to output frames directly
jamrial May 16, 2025
1b3f484
avfilter/avfiltergraph: fix regression in picking channel layout
richardpl May 22, 2025
622a72b
tests/fate/ac3: add a second ac3_fixed encoder test
jamrial May 22, 2025
9c6c653
avformat/imfdec: inherit opaque from parent AVFormatContext
kasper93 May 17, 2025
a79720e
avformat/matroskadec: Accept WebVTT subtitles with empty cues
May 20, 2025
4f623b4
avfilter/vf_libplacebo: implement rotation option
haasn May 16, 2025
559317c
avfilter/vf_libplacebo: add shader_cache option
haasn May 14, 2025
8c509ba
tests/fate/ac3: Make ac3-fixed-encode-2 bitexact across arches
mkver May 23, 2025
56b85b6
aacdec_ac: fix signed overflow in ff_aac_ac_update_context()
cyanreg May 22, 2025
cbdb5e2
ffv1enc_vulkan: fix array overflow
g-maxime May 23, 2025
363a7a3
lavc/vvc/plt: validate run and signalled_entries
nuomi2021 May 17, 2025
a18b2c2
lavc/vvc: Detect subpic overlaps at CTU level
frankplow May 18, 2025
6700893
lavc/vvc: Avoid UB in DB strength derivation for PLT CUs
frankplow May 17, 2025
0382291
lavc/vvc: Fix divide-by-zero in LMCS param derivation
frankplow May 24, 2025
ae0f71a
lavc/h2645_parse: More descriptive NALU header error
frankplow May 22, 2025
0401ca7
avcodec/asvenc: Don't waste bits encoding non-visible part
mkver May 22, 2025
05a5e2b
avcodec/asvenc: Combine writing bits
mkver May 22, 2025
a5ff6ea
avcodec/asvenc: Simplify writing extradata
mkver May 22, 2025
ef95a8d
avcodec/mpegvideo_enc: Use av_unreachable() for unreachable code
mkver May 16, 2025
ded08d0
avcodec/msmpeg4dec: Use av_unreachable() for unreachable code
mkver May 16, 2025
0d73ce4
avcodec/h263dec: Use av_unreachable() for unreachable code
mkver May 16, 2025
7ae2027
avcodec/pcm: Use av_unreachable() for unreachable code
mkver May 21, 2025
9918741
avcodec/mpegvideo_enc: Set gob_index once during init
mkver May 17, 2025
a0a136e
avcodec/h263dec: Move calculating gob_index to {intel,itu}h263dec.c
mkver May 17, 2025
f887a2b
avcodec/mpeg4videodec: Don't initialize unused parts of RLTables
mkver May 17, 2025
295abb1
avcodec/mpegvideo_enc: Reduce stack usage
mkver May 18, 2025
d75a398
avcodec/mpeg4videoenc: Simplify creating LUT
mkver May 18, 2025
2a59cb0
avcodec/mpeg4video: Nuke ff_mpeg4_init_rl_intra()
mkver May 18, 2025
f7bd2a5
avcodec/mpeg4videoenc: Remove no-output code
mkver May 18, 2025
7267e4d
avcodec/mpeg4videoenc: Split writing blocks into intra and inter
mkver May 18, 2025
6af1bcb
avcodec/mpeg4videoenc: Use smaller scope for variable
mkver May 18, 2025
eb5d900
avcodec/mpeg4videodec: Remove unnecessary ff_xvid_idct_init()
mkver May 19, 2025
6349a33
avcodec/xvididct: Remove always-true checks
mkver May 20, 2025
2e8a3e6
avcodec/idctdsp: Only try to initialize xvid idct if it is used
mkver May 20, 2025
f2c04fd
avcodec/mpegvideo_dec: Document which codecs take which codepath
mkver May 20, 2025
778c0a4
avcodec/mpegvideo_dec: Simplify check for unquantizing inter blocks
mkver May 20, 2025
ed73675
avcodec/mpegvideo: Move mpeg_quant to {Mpeg4Dec,MPVEnc}Context
mkver May 20, 2025
8987c29
avcodec/mpegvideo: Check h263_aic, not h263_plus for allocating dc_val
mkver May 20, 2025
da5c2a4
avcodec/ituh263enc: Don't use h263_plus field
mkver May 21, 2025
ac1e6d2
avcodec/mpegvideo: Remove h263_plus
mkver May 21, 2025
43a6988
avcodec/mpeg4videodec: Use union to save space
mkver May 21, 2025
df967d0
configure: Use MSYSTEM_CARCH for default arch on msys2
rbqvq May 23, 2025
eda0ac7
avcodec/x86/vp9: Add AVX-512ICL for 16x16 and 32x32 10bpc inverse tra…
gramner-twoorioles May 21, 2025
c79bce9
avformat/movenc: disallow buggy flags combination
GyanD May 26, 2025
9d22944
Makefile: Split ALLFFLIBS
michaelni May 22, 2025
c395ad7
vulkan_ffv1: small cleanup for golomb
cyanreg May 26, 2025
3cbe341
vulkan_ffv1: fix golomb coding for non-RGB streams
cyanreg May 26, 2025
a6bcc77
avcodec/ffv1enc: Fix explicitly set -slicecrc 2
mkver May 25, 2025
1c78db8
avcodec/vc2enc: Use LUT to avoid repeated av_log2()
mkver May 24, 2025
54c865f
swscale/utils: Fix potential race when initializing xyz tables
mkver May 24, 2025
bf6d3dc
ffv1enc_vulkan: allow slicecrc=2
cyanreg May 27, 2025
92e310e
avformat/matroskadec: Fix VfW extradata size
mkver May 25, 2025
4cb4255
fftools/resources: add missing extensions to .gitignore
BtbN May 16, 2025
af94383
ffbuild: correctly silence and tag new css/html steps
BtbN May 16, 2025
aa38270
fftools/makefile: Remove resources from ffprobe
softworkz May 18, 2025
75a5e09
fftools/ffmpeg: Free print_graph option variables
softworkz May 20, 2025
a0ac89e
fftools/graphprint: Fix memory leaks
softworkz May 20, 2025
b7d44dd
fftools/tf_mermaid: Add missing uninit and fix leaks
softworkz May 20, 2025
8a936b8
avformat/matroska: Support JPEG2000 for demuxing
mkver May 25, 2025
96d4bcb
avformat/matroskaenc: Use native id V_FFV1 instead of V_MS/VFW/FOURCC
mkver May 25, 2025
c2521c0
avutil/vulkan: add YUVA pixel formats support
haasn Feb 27, 2025
0a4cdf8
avutil/vulkan: automatically enable shader device address usage bit
haasn May 18, 2025
02f45a7
avfilter/vf_gblur_vulkan: omit unnecessary buffer usage flag
haasn May 18, 2025
7e783fa
avfilter/vf_blackdetect: add alpha option
haasn Feb 27, 2025
0894cfb
avfilter/blackdetect_vulkan: add hw accelerated blackdetect filter
haasn Feb 18, 2025
9568e40
avutil/vf_scdet_vulkan: add new filter
haasn Feb 20, 2025
75960ac
avcodec/asvenc: Fix crash with unaligned pointers/linesizes
mkver May 27, 2025
ab37c7e
ffv1enc: do not hardcode 1024 slices
cyanreg May 29, 2025
8d45dc8
avcodec/dovi_rpuenc: Avoid intermediate codec par in ff_dovi_configure()
mkver May 30, 2025
0adfe15
avcodec/dovi_rpuenc: Use av_cold for ff_dovi_configure init functions
mkver May 30, 2025
1b5a291
avcodec/dovi_rpuenc: Use av_unreachable() instead of av_assert0(0)
mkver May 30, 2025
27c5e4b
avcodec/libaomenc: Increase code locality
mkver May 30, 2025
6704077
avcodec/ffv1enc_template: Fix remaining space check
michaelni May 13, 2025
f6986e7
avcodec/speexdec: Pass and check remaining packets to decode functions
michaelni May 8, 2025
791a333
avcodec/hevc/hevcdec: Check num_entry_point_offsets
michaelni May 8, 2025
ba3d4c2
libavformat/oggdec.{c, h}: Add new_extradata, use it to pass extradat…
toots May 24, 2025
c9cc61d
ogg/vorbis: factor out header processing logic.
toots May 24, 2025
574f634
ogg/vorbis: implement header packet skip in chained ogg bitstreams.
toots May 24, 2025
5030564
libavformat/oggdec.h: Change paket function documentation to return 1…
toots May 24, 2025
1a7e802
avformat/demux: use io_close2 when closing avfromat
kasper93 May 17, 2025
61a70e8
avcodec/dvenc: Check for unaligned pointers, strides
mkver May 27, 2025
20ddada
avcodec/pixblockdsp: Improve 8 vs 16 bit check
mkver May 27, 2025
17d5f30
avcodec/pixblockdsp: Pass bits_per_raw_sample directly
mkver May 27, 2025
fbf5cfa
avcodec/pixblockdsp: Fix get_pixels alignment documentation
mkver May 27, 2025
23761c7
avcodec/asvenc,dvenc: Optimize unaligned checks away if possible
mkver May 27, 2025
0435cd5
avfilter/x86/vf_spp: Remove permutation-specific code
mkver May 27, 2025
848ceb1
Revert "ogg/vorbis: implement header packet skip in chained ogg bitst…
michaelni May 31, 2025
e618f7d
avcodec/cbs_h2645: add cbs_sei_h274_types
QSXW Apr 27, 2025
bf3a729
avcodec/cbs_sei_syntax_template: add sei message film_grain_character…
QSXW Apr 27, 2025
ab5df96
avcodec/vvc: support decoding prefix and suffix nal units
QSXW Apr 27, 2025
1c87e36
avcodec/vvc/sei: add decode_film_grain_characteristics
QSXW Apr 27, 2025
1608d60
avcodec/vvc/dec: export sei to the frame when the frame starts
QSXW Apr 27, 2025
a8d949b
avcodec/vvc/dec: support applying film grain by the decoder
QSXW Apr 27, 2025
312f8ef
avcodec/vvc/dec: support removing film grain params from side data
QSXW Apr 27, 2025
942cf59
avcodec/h274: add H274SEIPictureHash struct
QSXW Apr 27, 2025
8dfc24c
avcodec/vvc/sei: add decode_decoded_picture_hash
QSXW Apr 27, 2025
9620c95
avcodec/h274: add ff_h274_hash functions
QSXW Apr 27, 2025
23e9912
avcodec/vvcdec: verify picture hash
QSXW Apr 27, 2025
d140648
avcodec/cbs_sei_syntax_template: add sei message sei_display_orientation
QSXW Apr 27, 2025
40bc5e1
avcodec/vvc/sei: add decode_display_orientation
QSXW Apr 27, 2025
97137e3
avcodec/vvc/sei: add decode_content_light_level_info
QSXW Apr 27, 2025
33d511b
avcodec/cbs_sei_syntax_template: add sei message frame_field_information
QSXW Apr 27, 2025
299544b
avcodec/h274: add H274SEIFrameFieldInfo struct
QSXW Apr 27, 2025
870fa13
avcodec/vvc/sei: add decode_frame_field_info
QSXW Apr 27, 2025
761f75d
avcodec/vvc: support fields
QSXW Apr 27, 2025
f6d2f38
avcodec/vvc/sei: add decode_ambient_viewing_environment
QSXW Apr 27, 2025
a02e880
avcodec/vvc/sei: add decode_mastering_display_colour_volume
QSXW Apr 27, 2025
6c29123
avformat/movenc: fix VVC encoding with leading pictures
Apr 16, 2025
c80002a
avcodec/h2645_vui: Ensure color primaries/trc/space isn't reserved value
quink-black May 22, 2025
9a19ba4
tests/fate/cbs: Add hevc metadata set color test
quink-black May 22, 2025
6411680
tests/fate/hevc: Fix dependancy for hevc-alpha
quink-black May 22, 2025
3d9b284
tests: Add fate-hevc-color-reserved
quink-black May 22, 2025
56cf1c0
avformat/movenc: Fix flush fragment
quink-black May 22, 2025
8ea2b99
avformat/movenc: Reduce loop iterations in mov_flush_fragment
quink-black May 23, 2025
1f03471
fftools/ffmpeg_filter: make FilterGraphPriv private again
jamrial May 28, 2025
6ede1e3
fftools/ffmpeg_filter: make InputFilterPriv and OutputFilterPriv priv…
jamrial May 28, 2025
0742239
fftools/graph/graphprint: Fix races when initializing graphprint
mkver May 30, 2025
b4c5397
fftools/textformat/avtextformat: Avoid relocations
mkver Jun 1, 2025
06cd908
fftools/resources/resman: Don't alloc ResourceManager, fix race
mkver Jun 1, 2025
6d5e18b
fftools/resources/resman: Use assert for always-false condition
mkver Jun 1, 2025
4947e56
fftools/resources/resman: Use proper logcontext
mkver Jun 1, 2025
6f452ad
fftools/textformat/avtextformat: Fix races when initializing formatters
mkver Jun 1, 2025
5c5c7df
fftools/ffprobe: Factor writing common side data types out
mkver Jun 1, 2025
e3b0320
fftools/ffprobe: Fix indentation
mkver Jun 1, 2025
688f394
fftools/graph/graphprint: Remove redundant avio_flush()
mkver Jun 1, 2025
fa45e20
tests/fate/mov: Fix fate-mov-mp4-frag-flush requirements
mkver Jun 1, 2025
9416ffd
avcodec/ac3dec: Hardcode tables to save space
mkver May 23, 2025
20caa5c
avcodec/ac3dec: Deduplicate mantissas and their init code
mkver May 24, 2025
11723b3
avcodec/ac3: Move gain value defines to ac3defs.h
mkver May 24, 2025
dbd2ca3
avcodec/ac3{dec,enc}: Deduplicate gain levels table
mkver May 24, 2025
2d5f5e8
avcodec/ac3dec: Deduplicate tables
mkver May 29, 2025
6d45668
avcodec/hpeldsp: Remove duplicate pel functions
mkver May 30, 2025
83b3469
avcodec/x86/hpeldsp_init: Use ff_avg_pixels16_mmxext
mkver May 30, 2025
09aeeeb
avcodec/hpeldsp_init: Detemplatize
mkver May 30, 2025
93e53e2
avcodec/vc1dsp: Fix vc1op_pixels_func semantics
mkver May 30, 2025
afb9136
fftools/Makefile: clean files from fftools/{graph,textformat}/
ramiropolla May 27, 2025
854b869
Add myself to MAINTAINERS for dxv/dxvenc
emmaworley May 30, 2025
6fdb54d
lavc/hashtable: create generic robin hood hash table
emmaworley May 30, 2025
2de0d09
lavc/dxvenc: migrate DXT1 encoder to lavc hashtable
emmaworley May 30, 2025
d4556c9
lavc/dxvenc: improve compatibility with Resolume products
emmaworley May 30, 2025
2e4fc7e
FFmpeg: Add Whip Muxer support for subsecond latency streaming
T-bagwell Jul 8, 2023
1133939
avformat/whip: fix build error on latest commit
JackLau1222 Apr 22, 2025
c84f12e
avformat/dtls: add dtls implement
JackLau1222 Apr 22, 2025
066af9e
tls: fix typo
JackLau1222 May 12, 2025
7820b45
tls: use c->underlying_host for accuracy
JackLau1222 May 12, 2025
7d8c1f6
tls_openssl: Merge two info callback functions into one
JackLau1222 May 16, 2025
8aae778
avformat/whip: optimize code
JackLau1222 May 17, 2025
b70bc90
configure: fix build when openssl is not enable
JackLau1222 May 17, 2025
16eaf6b
avformat/tls_openssl: clear code
JackLau1222 May 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Changelog
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ version <next>:
- APV decoder and APV raw bitstream muxing and demuxing
- APV parser
- APV encoding support through a libopenapv wrapper
- VVC decoder supports all content of SCC (Screen Content Coding):
IBC (Inter Block Copy), Palette Mode and ACT (Adaptive Color Transform


version 7.1:
Expand Down
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ Codecs:
dss_sp.c Oleksij Rempel
dv.c Roman Shaposhnik
dvbsubdec.c Anshul Maheshwari
dxv.*, dxvenc.* Emma Worley
eacmv*, eaidct*, eat* Peter Ross
exif.c, exif.h Thilo Borgmann
ffv1* [2] Michael Niedermayer
Expand Down
13 changes: 9 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,20 @@ vpath %/fate_config.sh.template $(SRC_PATH)
TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options

ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale swresample
ALLFFLIBS = \
avcodec \
avdevice \
avfilter \
avformat \
avutil \
swscale \
swresample \

# $(FFLIBS-yes) needs to be in linking order
FFLIBS-$(CONFIG_AVDEVICE) += avdevice
FFLIBS-$(CONFIG_AVFILTER) += avfilter
FFLIBS-$(CONFIG_AVFORMAT) += avformat
FFLIBS-$(CONFIG_AVCODEC) += avcodec
FFLIBS-$(CONFIG_POSTPROC) += postproc
FFLIBS-$(CONFIG_SWRESAMPLE) += swresample
FFLIBS-$(CONFIG_SWSCALE) += swscale

Expand Down Expand Up @@ -104,8 +110,7 @@ SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS \
ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS \
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS \
MMI-OBJS LSX-OBJS LASX-OBJS RV-OBJS RVV-OBJS RVVB-OBJS \
OBJS SLIBOBJS SHLIBOBJS STLIBOBJS HOSTOBJS TESTOBJS \
SIMD128-OBJS
OBJS SHLIBOBJS STLIBOBJS HOSTOBJS TESTOBJS SIMD128-OBJS

define RESET
$(1) :=
Expand Down
24 changes: 21 additions & 3 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ External library support:
--enable-liblensfun enable lensfun lens correction [no]
--enable-libmodplug enable ModPlug via libmodplug [no]
--enable-libmp3lame enable MP3 encoding via libmp3lame [no]
--enable-liboapv enable APV encoding/decoding via liboapv [no]
--enable-liboapv enable APV encoding via liboapv [no]
--enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv [no]
Expand Down Expand Up @@ -2661,6 +2661,7 @@ CONFIG_EXTRA="
vp56dsp
vp8dsp
vulkan_encode
vvc_sei
wma_freqs
wmv2dsp
"
Expand Down Expand Up @@ -2910,6 +2911,7 @@ mpegvideoenc_select="aandcttables fdctdsp me_cmp mpegvideo pixblockdsp"
msmpeg4dec_select="h263_decoder"
msmpeg4enc_select="h263_encoder"
vc1dsp_select="h264chroma qpeldsp startcode"
vvc_sei_select="atsc_a53 golomb"
wmv2dsp_select="qpeldsp"

# decoders / encoders
Expand Down Expand Up @@ -3147,7 +3149,7 @@ vp6f_decoder_select="vp6_decoder"
vp7_decoder_select="h264pred videodsp vp8dsp"
vp8_decoder_select="h264pred videodsp vp8dsp"
vp9_decoder_select="videodsp vp9_parser vp9_superframe_split_bsf"
vvc_decoder_select="cabac cbs_h266 golomb videodsp"
vvc_decoder_select="cabac cbs_h266 golomb videodsp vvc_sei"
wcmv_decoder_select="inflate_wrapper"
webp_decoder_select="vp8_decoder exif"
wmalossless_decoder_select="llauddsp"
Expand Down Expand Up @@ -3747,6 +3749,7 @@ wav_demuxer_select="riffdec"
wav_muxer_select="riffenc"
webm_chunk_muxer_select="webm_muxer"
webm_dash_manifest_demuxer_select="matroska_demuxer"
whip_muxer_deps_any="dtls_protocol"
wtv_demuxer_select="mpegts_demuxer riffdec"
wtv_muxer_select="mpegts_muxer riffenc"
xmv_demuxer_select="riffdec"
Expand Down Expand Up @@ -3845,6 +3848,9 @@ srtp_protocol_select="rtp_protocol srtp"
tcp_protocol_select="network"
tls_protocol_deps_any="gnutls openssl schannel securetransport libtls mbedtls"
tls_protocol_select="tcp_protocol"
# TODO: Support libtls, mbedtls, and gnutls.
dtls_protocol_deps_any="openssl"
dtls_protocol_select="udp_protocol"
udp_protocol_select="network"
udplite_protocol_select="network"
unix_protocol_deps="sys_un_h"
Expand Down Expand Up @@ -3879,6 +3885,7 @@ ass_filter_deps="libass"
avgblur_opencl_filter_deps="opencl"
avgblur_vulkan_filter_deps="vulkan spirv_compiler"
azmq_filter_deps="libzmq"
blackdetect_vulkan_filter_deps="vulkan spirv_compiler"
blackframe_filter_deps="gpl"
blend_vulkan_filter_deps="vulkan spirv_compiler"
boxblur_filter_deps="gpl"
Expand Down Expand Up @@ -3986,6 +3993,7 @@ vpp_amf_filter_deps="amf"
scale_qsv_filter_deps="libmfx"
scale_qsv_filter_select="qsvvpp"
scdet_filter_select="scene_sad"
scdet_vulkan_filter_deps="vulkan spirv_compiler"
select_filter_select="scene_sad"
sharpness_vaapi_filter_deps="vaapi"
showcqt_filter_deps="avformat swscale"
Expand Down Expand Up @@ -4159,6 +4167,8 @@ if test "$target_os_default" = aix; then
arch_default=$(uname -p)
strip_default="strip -X32_64"
nm_default="nm -g -X32_64"
elif test "$MSYSTEM_CARCH" != ""; then
arch_default="$MSYSTEM_CARCH"
else
arch_default=$(uname -m)
fi
Expand Down Expand Up @@ -5293,7 +5303,7 @@ case "$arch" in
arm*|iPad*|iPhone*)
arch="arm"
;;
loongarch*)
loongarch*|loong64)
arch="loongarch"
;;
mips*|IP*)
Expand Down Expand Up @@ -7192,6 +7202,14 @@ enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/r
}
enabled vapoursynth && require_headers "vapoursynth/VSScript4.h vapoursynth/VapourSynth4.h"

enabled openssl && {
enabled whip_muxer && {
$pkg_config --exists --print-errors "openssl >= 1.0.1k" ||
require_pkg_config openssl "openssl >= 1.0.1k" openssl/ssl.h SSL_library_init ||
require_pkg_config openssl "openssl >= 1.0.1k" openssl/ssl.h OPENSSL_init_ssl
}
}


if enabled gcrypt; then
GCRYPT_CONFIG="${cross_prefix}libgcrypt-config"
Expand Down
3 changes: 3 additions & 0 deletions doc/APIchanges
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2025-03-28

API changes, most recent first:

2025-05-21 - xxxxxxxxxx - lavu 60.3.100 - avassert.h
Add av_unreachable() and av_assume() macros.

2025-02-xx - xxxxxxxxxx - lavfi 10.10.100 - avfilter.h
Add avfilter_link_get_hw_frames_ctx().

Expand Down
4 changes: 1 addition & 3 deletions doc/examples/filter_audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ int main(int argc, char *argv[])
AVFilterGraph *graph;
AVFilterContext *src, *sink;
AVFrame *frame;
uint8_t errstr[1024];
float duration;
int err, nb_frames, i;

Expand Down Expand Up @@ -354,7 +353,6 @@ int main(int argc, char *argv[])
return 0;

fail:
av_strerror(err, errstr, sizeof(errstr));
fprintf(stderr, "%s\n", errstr);
fprintf(stderr, "%s\n", av_err2str(err));
return 1;
}
7 changes: 2 additions & 5 deletions doc/examples/qsv_decode.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,11 +219,8 @@ int main(int argc, char **argv)
ret = decode_packet(decoder_ctx, frame, sw_frame, NULL, output_ctx);

finish:
if (ret < 0) {
char buf[1024];
av_strerror(ret, buf, sizeof(buf));
fprintf(stderr, "%s\n", buf);
}
if (ret < 0)
fprintf(stderr, "%s\n", av_err2str(ret));

avformat_close_input(&input_ctx);

Expand Down
30 changes: 29 additions & 1 deletion doc/filters.texi
Original file line number Diff line number Diff line change
Expand Up @@ -8634,7 +8634,7 @@ Filter out noisy pixels from @code{bitplane} set above.
Default is disabled.
@end table

@section blackdetect
@section blackdetect, blackdetect_vulkan

Detect video intervals that are (almost) completely black. Can be
useful to detect chapter transitions, commercials, or invalid
Expand Down Expand Up @@ -8687,6 +8687,12 @@ the input video format, the range is [0-255] for YUV full-range
formats and [16-235] for YUV non full-range formats.

Default value is 0.10.

@item alpha
If true, check the alpha channel instead of the luma channel. Detects frames
which are (almost) transparent, instead of frames which are almost black.

Default value is disabled.
@end table

The following example sets the maximum pixel threshold to the minimum
Expand Down Expand Up @@ -16259,6 +16265,16 @@ and @code{(oh-ph)/2}.
Set the output placement width/height expressions, default values are @code{ow}
and @code{oh}.

@item rotate
Rotate the input frame clockwise by the specified angle.

@table @samp
@item 0, 360
@item 90
@item 180
@item 270
@end table

@item fps
Set the output frame rate. This can be rational, e.g. @code{60000/1001}. If
set to the special string @code{none} (the default), input timestamps will
Expand Down Expand Up @@ -16311,6 +16327,18 @@ to double the input image resolution:
-vf "libplacebo=w=iw*2:h=ih*2:extra_opts='upscaler=custom\:upscaler_preset=ewa_lanczos\:upscaler_blur=0.9812505644269356'"
@end example


@item shader_cache
File path of a cache directory that libplacebo will use to store and load
cached shader objects. This cache is not cleaned up automatically. If the
path does not end in a directory separator, the generated filenames will be
effectively prefixed by the last path component. All directories must already
exist.

@example
-vf "libplacebo=shader_cache=/tmp/pl-shader-"
@end example

@item colorspace
@item color_primaries
@item color_trc
Expand Down
6 changes: 6 additions & 0 deletions doc/htmlxref.cnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ffmpeg mono ./ffmpeg.html
ffmpeg-filters mono ./ffmpeg-filters.html
ffmpeg-formats mono ./ffmpeg-formats.html
ffmpeg-resampler mono ./ffmpeg-resampler.html
ffmpeg-scaler mono ./ffmpeg-scaler.html
ffmpeg-utils mono ./ffmpeg-utils.html
47 changes: 47 additions & 0 deletions doc/muxers.texi
Original file line number Diff line number Diff line change
Expand Up @@ -3879,4 +3879,51 @@ ffmpeg -f webm_dash_manifest -i video1.webm \
manifest.xml
@end example

@anchor{whip}
@section whip

WebRTC (Real-Time Communication) muxer that supports sub-second latency streaming according to
the WHIP (WebRTC-HTTP ingestion protocol) specification.

It uses HTTP as a signaling protocol to exchange SDP capabilities and ICE lite candidates. Then,
it uses STUN binding requests and responses to establish a session over UDP. Subsequently, it
initiates a DTLS handshake to exchange the SRTP encryption keys. Lastly, it splits video and
audio frames into RTP packets and encrypts them using SRTP.

Ensure that you use H.264 without B frames and Opus for the audio codec. For example, to convert
an input file with @command{ffmpeg} to WebRTC:
@example
ffmpeg -re -i input.mp4 -acodec libopus -ar 48000 -ac 2 \
-vcodec libx264 -profile:v baseline -tune zerolatency -threads 1 -bf 0 \
-f whip "http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream"
@end example

For this example, we have employed low latency options, resulting in an end-to-end latency of
approximately 150ms.

@subsection Options

This muxer supports the following options:

@table @option

@item handshake_timeout @var{integer}
Set the timeout in milliseconds for ICE and DTLS handshake.
Default value is 5000.

@item pkt_size @var{integer}
Set the maximum size, in bytes, of RTP packets that send out.
Default value is 1500.

@item authorization @var{string}
The optional Bearer token for WHIP Authorization.

@item cert_file @var{string}
The optional certificate file path for DTLS.

@item key_file @var{string}
The optional private key file path for DTLS.

@end table

@c man end MUXERS
Loading