Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
594 commits
Select commit Hold shift + click to select a range
9d10d3a
avformat/aptxdec: Don't set AVCodecParameters.frame_size
mkver Aug 29, 2021
c8707c1
avformat/aptxdec: Don't set AV_PKT_FLAG_CORRUPT mistakenly
mkver Aug 29, 2021
e6bfb14
avcodec/aptxdec: Process data in complete blocks only
mkver Aug 29, 2021
dc7b664
avcodec/encode: Redo checks for small last audio frame
mkver Sep 15, 2022
017d976
avcodec/encode: Enable encoders to control padding of last frame
mkver Sep 15, 2022
129cbbd
avcodec/aptxenc: Process data in complete blocks of four samples only
mkver Aug 29, 2021
bbf045a
lavc/vorbisdec: use ptrdiff_t to iterate over intptr_t
Sep 19, 2022
b520342
lavc/vorbisdsp: use ptrdiff_t rather than intptr_t
Sep 19, 2022
5c15cb1
lavc/vorbisdec: use intermediate variables
Sep 19, 2022
32129d6
avcodec/vorbisdec: Move ff_vorbis_inverse_coupling() to vorbisdsp.c
mkver Sep 19, 2022
187cd27
avutil/dict: Error out in case of key == NULL
mkver Sep 14, 2022
4d7a1a4
swscale/input: Avoid calls to av_pix_fmt_desc_get()
mkver Sep 8, 2022
888a02a
swscale/output: Don't call av_pix_fmt_desc_get() in a loop
mkver Sep 8, 2022
118b36f
avcodec/mjpegdec: Avoid copying data when flipping image
mkver Apr 14, 2022
8f119b5
tests/checkasm: add a test for VorbisDSPContext
jamrial Sep 19, 2022
56e29fc
tests/mxf: Fix test requirements
mkver Sep 7, 2022
f08d529
fate/mxf: Add ProRes remux test
mkver Nov 8, 2021
48fa27e
avformat/mxf: set stream frame rates for ST 422 essence containers
palemieux Sep 6, 2022
79845ce
fate/mxf: add JPEG 2000 test
palemieux Sep 6, 2022
71364c5
fate/ffmpeg: Use transcode instead of enc_dec in shortest-sub test
mkver Sep 17, 2022
6a8b3e7
fate/ffmpeg: Set max_delay for shortest-sub
mkver Sep 17, 2022
353108b
avcodec/smc: Move transient GetByteContext from context to stack
mkver Sep 17, 2022
e27d67b
avcodec/rpzaenc: Avoid useless intermediate variable
mkver Sep 17, 2022
2e9fd62
fate/segafilm: Add tests for segafilm (de)muxer
mkver Sep 18, 2022
d438540
avformat/spdifenc: Reorder struct members to make it smaller
mkver Sep 17, 2022
e601ec3
libavformat/riffec: Zero-initialize channels in ff_get_wav_header
willcassella Sep 9, 2022
cc367a9
lavc/lpc: do not explode when windowing a 1-length array
cyanreg Sep 21, 2022
3ade6a8
x86/lpc: implement a new Welch windowing function
cyanreg Sep 19, 2022
0744782
avformat/mov: get the correct fragment stsd_id when decrypting the sa…
Sep 1, 2022
acbb277
avcodec/ac3dec: add downmix support for mono and stereo for eac3 7.1
richardpl Sep 20, 2022
0ee535b
lavc/aarch64: Add neon implementation for pix_median_abs16
hubert-mazur Sep 20, 2022
e9a6170
lavc/aarch64: Add neon implementation for vsad8_intra
hubert-mazur Sep 20, 2022
b273211
lavc/aarch64: Add neon implementation for pix_median_abs8
hubert-mazur Sep 20, 2022
55c35d8
avfilter/internal: Remove declaration of inexistent function
mkver Sep 21, 2022
5a7978a
avfilter/avfilter: Make ff_command_queue_pop() static
mkver Sep 21, 2022
2ca2d46
lavc/videotoolboxenc: Fix crash by uninitialized value
thiloborgmann Sep 15, 2022
6a150fc
avcodec/mlpenc: analyze only if there are samples
richardpl Sep 21, 2022
b9d71cd
avcodec/mjpegbdec: use init_get_bits8()
richardpl Sep 21, 2022
6a288ad
fate/lavf-*: Add missing dependency on pipe protocol
mkver Sep 18, 2022
57f3ca2
avcodec/cavsdsp: Remove unused function parameter
mkver Sep 20, 2022
fd72d8a
avcodec/blockdsp: Remove unused AVCodecContext parameter
mkver Sep 20, 2022
9beba05
avcodec/fmtconvert: Remove unused AVCodecContext parameter
mkver Sep 20, 2022
e2e3181
avcodec/avcodec: Uninitialize AVChannelLayout before overwriting it
mkver Sep 18, 2022
859d9d7
avcodec/encode: Remove dead deprecated check
mkver Sep 18, 2022
a06a2d8
avcodec/avcodec: Check for more invalid channel layouts
mkver Sep 16, 2022
90edbd3
avcodec/avcodec: Always use old channel count/layout if set
mkver Sep 18, 2022
9ffd0c4
avcodec/encode: Remove deprecated always-false checks
mkver Sep 18, 2022
cd335de
avcodec/dfpwmdec: Remove always-false check
mkver Sep 16, 2022
ce6af2d
avcodec/pcm-blurayenc: Don't presume every channel layout to be native
mkver Sep 18, 2022
5c18934
avcodec/pcm: Remove always-false check
mkver Sep 18, 2022
e607366
avcodec/libcodec2: Remove dead channel count check
mkver Sep 18, 2022
56f7b39
avcodec/libshine: Remove dead channel count check
mkver Sep 18, 2022
4668ff7
avcodec/libspeexenc: Remove dead channel count check
mkver Sep 18, 2022
17366d6
avcodec/mpegaudioenc_template: Remove dead channel count check
mkver Sep 18, 2022
03fb801
avcodec/mlpenc: Fix channel layouts
mkver Sep 17, 2022
a12338a
avcodec/mlpenc: Simplify channel layout comparisons
mkver Sep 17, 2022
65dbc83
avcodec/mlpenc: Remove dead channel layout checks
mkver Sep 17, 2022
66e297f
avcodec/dcaenc: Remove dead checks for unspec channel layouts
mkver Sep 17, 2022
ce16d18
avcodec/dcaenc: Simplify channel layout check
mkver Sep 17, 2022
dea944b
x86/lpc: fix odd scalar loop overreads/writes
cyanreg Sep 22, 2022
b67776e
x86/lpc: fix even scalar loop overreads/writes
cyanreg Sep 22, 2022
f2d75d7
fate/checkasm: add LPC test to list
cyanreg Sep 22, 2022
c9aa616
x86/lpc: Fix parameter sign extension, unbreaking checkasm-lpc on x86…
mstorsjo Sep 22, 2022
f55f817
avcodec/exr: fix skipping too long metadata values
richardpl Sep 22, 2022
af919cf
fftools/ffmpeg: fix av_display_rotation_set() type cast
quink-black Sep 1, 2022
05cff21
avutil/channel_layout: mention how the API user should treat channel …
jamrial Sep 21, 2022
14b3830
avformat/dashdec: Fix crash on invalid input/ENOMEM, fix leak
mkver Sep 20, 2022
8306074
avformat/dashdec: Reindent after the previous commit
mkver Sep 20, 2022
dd81cc2
avcodec/mjpegdec: Check for unsupported bayer case
michaelni Sep 18, 2022
7786097
avformat/mxfdec: Check run_in is within 65536
michaelni Sep 18, 2022
1182bbb
avformat/mxfdec: only probe max run in
michaelni Sep 21, 2022
c5bd689
avformat/mxfdec: Avoid some redundant writing to tables in mxf_comput…
michaelni Sep 11, 2022
1c2b626
avformat/aiffdec: Check block_duration
michaelni Sep 17, 2022
9303ba2
avformat/aiffdec: Use 64bit for block_duration use
michaelni Sep 17, 2022
db73ae0
avformat/icodec: Check nb_pal
michaelni Sep 17, 2022
08edacc
lavc/aacpsdsp: precompute constant factors
Sep 20, 2022
2bcf86d
x86/aacpsdsp: precompute constant factors
jamrial Sep 20, 2022
48615f0
x86/aacpsdsp: add ps_hybrid_analysis_fma3
jamrial Sep 20, 2022
bd7d69f
avcodec/libvpxenc: add -min-gf-interval
jzern Sep 14, 2022
a2d9592
avformat/movenc: Write auxi box for animated AVIF with alpha
Sep 20, 2022
c8c4a16
avcodec/lpc: use ptrdiff_t for length parameters
jamrial Sep 22, 2022
0627e6d
avcodec/lpc: zero the middle odd sample in the output
jamrial Sep 22, 2022
a1c6f4b
tests/checkasm/lpc: randomize buffer length
jamrial Sep 22, 2022
0922c6b
x86/lpc: use fused negative multiply-add instructions where useful
jamrial Sep 22, 2022
9cbfffa
tests/checkasm/lpc: print mismatching values
jamrial Sep 22, 2022
6ad39f0
tests/checkasm/lpc: reduce range and use signed values
cyanreg Sep 22, 2022
668f43a
tests/checkasm/lpc: correct arithmetic when randomizing buffers
cyanreg Sep 22, 2022
3241e92
x86/tx_float: adjust internal ASM call ABI again
cyanreg Sep 23, 2022
ace42cf
x86/tx_float: add 15xN PFA FFT AVX SIMD
cyanreg Sep 19, 2022
74e8541
x86/tx_float: generalize iMDCT
cyanreg Sep 23, 2022
e7a987d
lavu/tx: remove special -1 inverted lookup mode
cyanreg Sep 23, 2022
6860967
fftools/ffmpeg_filter: configure min_hard_comp unconditionally
quink-black Sep 17, 2022
7e7baf8
lavu/tx: do not steal lookup tables of subcontexts in the iMDCT
cyanreg Sep 22, 2022
10137d9
MAINTAINERS: add myself as a ffmpeg.c maintainer
elenril Sep 20, 2022
07d9300
MAINTAINERS: remove the project leader section
elenril Sep 20, 2022
e301143
opus_silk: reset midonly flag after skipping LBRR
tmatth Sep 23, 2022
c504fb8
lavc/pthread_frame: always transfer stashed hwaccel state
elenril Sep 19, 2022
750f378
x86/tx_float: add missing preprocessor wrapper for AVX2 functions
jamrial Sep 23, 2022
84f4674
avcodec: add APAC decoder
richardpl Sep 19, 2022
6c23391
avformat: add APAC demuxer
richardpl Sep 19, 2022
ec8be8a
avcodec/tiff: improve lut handling for DNG
richardpl Sep 23, 2022
0d8f43c
x86/tx_float: change a condition in a preprocessor check
jamrial Sep 23, 2022
d5a0dc0
avcodec/jpeg2000dec: Set sample aspect ratio before getting buffer
mkver Sep 23, 2022
793282a
avcodec/jpeg2000dec: Implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
mkver Sep 23, 2022
7adf750
doc/examples/extract_mvs: add motion information
chemag Sep 12, 2022
d2f4829
x86/tx_float: fix some symbol names
jamrial Sep 23, 2022
f21899d
x86/tx_float: enable AVX-only split-radix FFT codelets
cyanreg Sep 24, 2022
3c16f9e
avcodec/qoidec: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
cea1e1f
avcodec/exr: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
1e07952
avcodec/xwddec: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
eb90454
avcodec/hdrdec: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
08f6b1e
avcodec/xbmdec: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
3e49c1e
avcodec/xpmdec: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
a44a540
avcodec/cri: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
a54da08
avcodec/photocd: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 24, 2022
2f9fa7e
avcodec/mjpegbdec: Don't create unnecessary AVFrame reference
mkver Apr 14, 2022
a166b8a
avcodec: add FTR audio decoder and parser
richardpl Aug 30, 2022
257eea3
doc: mention new audio formats
richardpl Sep 24, 2022
aa79d13
avformat/cafenc: derive Opus frame size from the relevant stream para…
jamrial Sep 21, 2022
1b47190
avcodec/opusdec: stop setting deprecated swr options
jamrial Sep 23, 2022
d0349c9
avformat/ape: Check frames size
michaelni Sep 17, 2022
5b23cab
avformat/apm: Use 64bit for bit_rate computation
michaelni Sep 17, 2022
736e9e6
avformat/asfdec_o: Limit packet offset
michaelni Sep 17, 2022
d4bb4e3
avformat/cafdec: Check that nb_frasmes fits within 64bit
michaelni Sep 17, 2022
10453f5
avformat/dhav: Use 64bit seek_back
michaelni Sep 17, 2022
93db0f0
avformat/dxa: avoid bpc overflows
michaelni Sep 17, 2022
0345a88
avformat/genh: Check nb_channels for IMA ADPCM
michaelni Sep 17, 2022
b1a6812
avformat/jacosubdec: Fix overflow in get_shift()
michaelni Sep 17, 2022
7124f10
avformat/flvdec: Use 64bit for sum_flv_tag_size
michaelni Sep 18, 2022
2c14640
avformat/nutdec: Check fields
michaelni Sep 18, 2022
2cb7ee8
avformat/rmdec: check tag_size
michaelni Sep 18, 2022
981f5e4
avformat/sbgdec: clamp end_ts
michaelni Sep 18, 2022
5f529e9
avformat/sbgdec: Check ts_int in genrate_intervals
michaelni Sep 18, 2022
aa8eb1b
avformat/sdsdec: Use av_rescale() to avoid intermediate overflow in d…
michaelni Sep 18, 2022
2c789f7
avformat/xwma: Use av_rescale() for duration computation
michaelni Sep 18, 2022
529f64b
avformat/rpl: Use 64bit for duration computation
michaelni Sep 18, 2022
4075f0c
avformat/spdifdec: Use 64bit to compute bit rate
michaelni Sep 18, 2022
aa441ac
avformat/matroskadec: Error out if a timestamp is beyond duration
michaelni Sep 18, 2022
8008940
avcodec/dstdec: Check for overflow in build_filter()
michaelni Sep 10, 2022
7cd252e
avcodec/parser: Remove declaration of inexistent function
mkver Sep 23, 2022
7ae1c0d
avcodec/h264_redundant_pps_bsf: Don't remove PPS
mkver Sep 20, 2022
a7e5419
avcodec/cbs: Only write extradata if there is something to write
mkver Sep 20, 2022
843fe31
avformat/nutdec: Don't shrink packet size manually
mkver Sep 20, 2022
54b29e1
fate/cbs: Add tests for h264_redundant_pps BSF
mkver Sep 20, 2022
63bb6d6
avutil: add RGB single-precision float formats
richardpl Sep 14, 2022
7bb0afc
avutil: add RGBA single-float precision packed formats
richardpl Sep 14, 2022
baf9099
avcodec/tiff: add packed/planar 32bit float support
richardpl Sep 14, 2022
9995a76
avfilter/vf_extractplanes: add support for packed rgb float formats
richardpl Sep 14, 2022
9189711
avcodec/tiff: improve color handling in DNG
richardpl Sep 25, 2022
c077105
avcodec/pnmdec: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 25, 2022
1452445
avcodec/tiff: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
richardpl Sep 25, 2022
0ca7386
avcodec/tiff: support multiple black levels
richardpl Sep 25, 2022
cf856d8
avcodec/avcodec: Move AV_ER_* and FF_COMPLIANCE_* to defs.h
mkver Sep 20, 2022
8be6552
avutil/pixdesc: Add av_chroma_location_(enum_to_pos|pos_to_enum)
mkver Sep 21, 2022
832e656
avformat/matroska*: Use av_chroma_location_(pos_to_enum|enum_to_pos)
mkver Sep 21, 2022
a02a0e8
avcodec/avcodec: Deprecate lavc chroma pos API functions
mkver Sep 21, 2022
2b41463
avformat/internal: Don't include avcodec.h
mkver Sep 21, 2022
dd2ea01
libavcodec/qsvenc: fixy typo for min/max qp reset
Sep 23, 2022
543a46b
opus: convert encoder and decoder to lavu/tx
cyanreg Sep 23, 2022
1798301
avfilter/scale_eval: Reduce rounding error.
Sep 26, 2022
b95e2fb
lavu/cpu: detect RISC-V base extensions
Sep 26, 2022
746f1ff
lavu/riscv: initial common header for assembler macros
Sep 26, 2022
04d092e
lavc/audiodsp: RISC-V F vector_clipf
Sep 26, 2022
1edac8e
lavc/pixblockdsp: RISC-V I get_pixels
Sep 26, 2022
0c0a3de
lavu/cpu: CPU flags for the RISC-V Vector extension
Sep 26, 2022
1b6aee5
configure: probe RISC-V Vector extension
Sep 26, 2022
39357ca
lavu/riscv: fallback macros for SH{1, 2, 3}ADD
Sep 26, 2022
a6c10d0
lavu/floatdsp: RISC-V V vector_fmul_scalar
Sep 26, 2022
89b7ec6
lavu/floatdsp: RISC-V V vector_dmul_scalar
Sep 26, 2022
7058af9
lavu/floatdsp: RISC-V V vector_fmul
Sep 26, 2022
da169a2
lavu/floatdsp: RISC-V V vector_dmul
Sep 26, 2022
c3db27b
lavu/floatdsp: RISC-V V vector_fmac_scalar
Sep 26, 2022
d120ab5
lavu/floatdsp: RISC-V V vector_dmac_scalar
Sep 26, 2022
f4ea450
lavu/floatdsp: RISC-V V vector_fmul_add
Sep 26, 2022
47ce973
lavu/floatdsp: RISC-V V butterflies_float
Sep 26, 2022
9aeb6ac
lavu/floatdsp: RISC-V V vector_fmul_reverse
Sep 26, 2022
b493370
lavu/floatdsp: RISC-V V vector_fmul_window
Sep 26, 2022
cd77662
lavu/floatdsp: RISC-V V scalarproduct_float
Sep 26, 2022
c1bb19e
lavu/fixeddsp: RISC-V V butterflies_fixed
Sep 26, 2022
27da951
lavc/audiodsp: RISC-V V vector_clip_int32
Sep 26, 2022
f127a5d
lavc/audiodsp: RISC-V V vector_clipf
Sep 26, 2022
f41ae62
lavc/audiodsp: RISC-V V scalarproduct_int16
Sep 26, 2022
47a10b9
lavc/fmtconvert: RISC-V V int32_to_float_fmul_scalar
Sep 26, 2022
220dfd0
lavc/fmtconvert: RISC-V V int32_to_float_fmul_array8
Sep 26, 2022
453aba7
lavc/vorbisdsp: RISC-V V inverse_coupling
Sep 26, 2022
b0cacf4
lavc/aacpsdsp: RISC-V V add_squares
Sep 26, 2022
e180326
lavc/aacpsdsp: RISC-V V mul_pair_single
Sep 26, 2022
15c3a0b
lavc/aacpsdsp: RISC-V V hybrid_analysis
Sep 26, 2022
09f9079
lavc/aacpsdsp: RISC-V V hybrid_analysis_ileave
Sep 26, 2022
a15edb0
lavc/aacpsdsp: RISC-V V hybrid_synthesis_deint
Sep 26, 2022
c03f965
lavc/aacpsdsp: RISC-V V stereo_interpolate[0]
Sep 26, 2022
f5cd00b
ffprobe: Check for invalid matrix error when printing rotation
dwbuiten Sep 22, 2022
59cb0bd
avfilter/vf_extractplanes: add missing break; statement
BtbN Sep 27, 2022
2664b39
avocdec/snowenc: Fix left shift of negative number
mkver Sep 26, 2022
0bc7ba4
configure: remove mdct15 from the encoder/decoder's list of requirements
cyanreg Sep 27, 2022
0e402eb
format/imfdec: improve error handling when selecting tracks for playback
palemieux Sep 19, 2022
dd2e524
riscv: Use the correct path for including asm.S
mstorsjo Sep 28, 2022
c47ebfa
lavu/riscv: helper to read the vector length
Sep 27, 2022
b29ee63
lavc/idctdsp: RISC-V V put_pixels_clamped function
Sep 27, 2022
fa983b5
lavc/idctdsp: RISC-V V add_pixels_clamped function
Sep 27, 2022
2746329
lavc/idctdsp: RISC-V V put_signed_pixels_clamped function
Sep 27, 2022
676b08c
lavc/pixblockdsp: RISC-V V 8-bit get_pixels & get_pixels_unaligned
Sep 27, 2022
ebee258
lavc/pixblockdsp: RISC-V V 16-bit get_pixels & get_pixels_unaligned
Sep 27, 2022
d310131
lavc/pixblockdsp: RISC-V diff_pixels & diff_pixels_unaligned
Sep 27, 2022
4f022e6
avcodec/mjpegdec: check that index is not negative
richardpl Sep 25, 2022
bcd2e7d
avutil/version: bump minor for the new RISC-V cpu flags
jamrial Sep 28, 2022
299253a
avutil/channel_layout: move and improve the comment about unknown orders
jamrial Sep 25, 2022
a91ddce
avcodec/dirac_dwt(_template): Don't use ff_-prefix for static func
mkver Sep 25, 2022
4393331
avcodec/dirac_dwt: Avoid conversions between function pointers and void*
mkver Sep 25, 2022
fdff1b9
avcodec/codec_internal: Avoid deprecation warnings for channel_layouts
mkver Sep 25, 2022
6573e65
avcodec/aacdectab: Remove empty channel layouts
mkver Sep 26, 2022
ba07c84
avcodec/amrwbdec,lsp: Include mips headers only #if ARCH_MIPS
mkver Sep 25, 2022
e098062
avcodec/lsp: Move ff_lsp2polyf() upwards in lsp.c
mkver Sep 25, 2022
c35a670
avcodec/lsp: Make ff_lsp2polyf() static
mkver Sep 25, 2022
3d8754c
avutil/display: Drop wrong comments about matrices being allocated
mkver Sep 25, 2022
fff0105
avcodec/jpeg2000dwt: Fix left shift of negative number
mkver Sep 26, 2022
6059ea2
riscv: Fix linking without RVV; change #ifdef into #if
mstorsjo Sep 29, 2022
8651923
arm: vc1dsp: Canonicalize the syntax for aligned NEON loads/stores
mstorsjo Sep 28, 2022
6f2ad7f
aarch64: me_cmp: Avoid redundant loads in ff_pix_abs16_y2_neon
mstorsjo Sep 28, 2022
8089fe0
aarch64: me_cmp: Avoid using the non-unrolled codepath for the minimu…
mstorsjo Sep 28, 2022
76d8f0d
avcodec/ac3dsp: Remove unused parameter
mkver Sep 26, 2022
17df610
libavcodec/qsvenc: Add framerate reset support to qsv
Sep 23, 2022
29a3ba8
libavcodec/qsvenc: Add bitrate reset support to qsvenc
Sep 23, 2022
3771d54
libavcodec/qsvenc: Add pic_timing_sei reset support to qsv
Sep 23, 2022
a3c0a3e
libavcodec/qsvenc: Let runtime to set default parameter.
Sep 26, 2022
5682046
libavcodec/qsvenc: Let runtime to decide targetUsage
Sep 26, 2022
87cc318
avcodec/tiff: Remove commented-out code
mkver Sep 25, 2022
fe3c2c8
avcodec/jrevdct: Fix UB left shifts of negative numbers
mkver Sep 28, 2022
e5f6918
avcodec/mpegvideo: Fix undefined left shift of negative numbers
mkver Sep 28, 2022
66a03f4
sws/rgb2rgb: RISC-V V shuffle_bytes_xxxx functions
Sep 28, 2022
9181835
sws/rgb2rgb: RISC-V V interleaveBytes
Sep 28, 2022
a1bfb52
sws/rgb2rgb: RISC-V 64-bit V packed YUYV/UYVY to planar 4:2:2
Sep 28, 2022
6d0a7e9
avutil/pixdesc: Remove always-false checks
mkver Sep 26, 2022
571b670
avutil/pixdesc: Avoid direct access to pix fmt desc array
mkver Sep 26, 2022
5fe447b
avutil/pixdesc: Move ff_check_pixfmt_descriptors() to its only user
mkver Sep 26, 2022
36e805e
avutil/tests/pixelutils: Use av_assert0 instead for test tools
mkver Sep 26, 2022
9d52844
avutil/tests/pixelutils: Test that all non-hw pix fmts have components
mkver Sep 26, 2022
9a494b8
avcodec/mjpegdec: remove not needed operations on channel identifiers
richardpl Sep 30, 2022
4b6b75c
avcodec: add Media 100i decoder
richardpl Sep 21, 2022
b0c7352
avcodec/mjpegdec: Fix compilation
mkver Sep 30, 2022
35c939f
Merge branch 'master' into feature/cpl-tc-support
palemieux Oct 2, 2022
8b69f92
Merge branch 'feature/cpl-tc-support-v1' into feature/cpl-tc-support
palemieux Oct 2, 2022
201b84f
Fix variable initialization
palemieux Oct 2, 2022
1057ce7
Merge remote-tracking branch 'upstream/master' into feature/cpl-tc-su…
palemieux Oct 2, 2022
2a318c8
avformat/imfdec: variable initialiaztion cosmetics
palemieux Oct 2, 2022
1e291ac
Cosmetics
palemieux Oct 2, 2022
81c3324
avformat/imfdec: use CPL start timecode if available
palemieux Jul 25, 2022
c3c38ad
avformat/tests/imf: add CPL timecode test
palemieux Aug 23, 2022
306c4bb
avformat/imfdec: variable initialiaztion cosmetics
palemieux Oct 2, 2022
5153fc2
Merge branch 'feature/cpl-tc-support-v2' into feature/cpl-tc-support
palemieux Oct 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 8 additions & 1 deletion Changelog
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,14 @@ version <next>:
- ffmpeg now requires threading to be built
- ffmpeg now runs every muxer in a separate thread
- Add new mode to cropdetect filter to detect crop-area based on motion vectors and edges
- VAAPI decoding and encoding for 8bit 444 HEVC and VP9
- VAAPI decoding and encoding for 10/12bit 422, 10/12bit 444 HEVC and VP9
- WBMP (Wireless Application Protocol Bitmap) image format
- a3dscope filter
- bonk decoder and demuxer
- Micronas SC-4 audio decoder
- LAF demuxer
- APAC decoder and demuxer
- Media 100i decoders


version 5.1:
Expand All @@ -36,6 +42,7 @@ version 5.1:
- PHM image format support
- remap_opencl filter
- added chromakey_cuda filter
- added bilateral_cuda filter


version 5.0:
Expand Down
8 changes: 1 addition & 7 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,11 @@ A (CC <address>) after the name means that the maintainer prefers to be CC-ed on
patches and related discussions.


Project Leader
==============

final design decisions


Applications
============

ffmpeg:
ffmpeg.c Michael Niedermayer
ffmpeg.c Michael Niedermayer, Anton Khirnov

ffplay:
ffplay.c Marton Balint
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ ffbuild/.config: $(CONFIGURABLE_COMPONENTS)
SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS \
HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \
ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS \
ALTIVEC-OBJS VSX-OBJS RVV-OBJS MMX-OBJS X86ASM-OBJS \
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS \
MMI-OBJS LSX-OBJS LASX-OBJS OBJS SLIBOBJS SHLIBOBJS \
STLIBOBJS HOSTOBJS TESTOBJS
Expand Down
1 change: 1 addition & 0 deletions compat/cuda/cuda_runtime.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,5 +187,6 @@ static inline __device__ float __saturatef(float a) { return __nvvm_saturate_f(a
static inline __device__ float __sinf(float a) { return __nvvm_sin_approx_f(a); }
static inline __device__ float __cosf(float a) { return __nvvm_cos_approx_f(a); }
static inline __device__ float __expf(float a) { return __nvvm_ex2_approx_f(a * (float)__builtin_log2(__builtin_exp(1))); }
static inline __device__ float __powf(float a, float b) { return __nvvm_ex2_approx_f(__nvvm_lg2_approx_f(a) * b); }

#endif /* COMPAT_CUDA_CUDA_RUNTIME_H */
31 changes: 27 additions & 4 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,7 @@ Optimization options (experts only):
--disable-mmi disable Loongson MMI optimizations
--disable-lsx disable Loongson LSX optimizations
--disable-lasx disable Loongson LASX optimizations
--disable-rvv disable RISC-V Vector optimizations
--disable-fast-unaligned consider unaligned accesses slow

Developer options (useful when working on FFmpeg itself):
Expand Down Expand Up @@ -2126,6 +2127,10 @@ ARCH_EXT_LIST_PPC="
vsx
"

ARCH_EXT_LIST_RISCV="
rvv
"

ARCH_EXT_LIST_X86="
$ARCH_EXT_LIST_X86_SIMD
cpunop
Expand All @@ -2135,6 +2140,7 @@ ARCH_EXT_LIST_X86="
ARCH_EXT_LIST="
$ARCH_EXT_LIST_ARM
$ARCH_EXT_LIST_PPC
$ARCH_EXT_LIST_RISCV
$ARCH_EXT_LIST_X86
$ARCH_EXT_LIST_MIPS
$ARCH_EXT_LIST_LOONGSON
Expand Down Expand Up @@ -2642,6 +2648,8 @@ ppc4xx_deps="ppc"
vsx_deps="altivec"
power8_deps="vsx"

rvv_deps="riscv"

loongson2_deps="mips"
loongson3_deps="mips"
mmi_deps_any="loongson2 loongson3"
Expand Down Expand Up @@ -2775,9 +2783,7 @@ amv_encoder_select="jpegtables mpegvideoenc"
ape_decoder_select="bswapdsp llauddsp"
apng_decoder_select="inflate_wrapper"
apng_encoder_select="deflate_wrapper llvidencdsp"
aptx_decoder_select="audio_frame_queue"
aptx_encoder_select="audio_frame_queue"
aptx_hd_decoder_select="audio_frame_queue"
aptx_hd_encoder_select="audio_frame_queue"
asv1_decoder_select="blockdsp bswapdsp idctdsp"
asv1_encoder_select="aandcttables bswapdsp fdctdsp pixblockdsp"
Expand Down Expand Up @@ -2915,8 +2921,7 @@ notchlc_decoder_select="lzf"
nuv_decoder_select="idctdsp"
on2avc_decoder_select="mdct"
opus_decoder_deps="swresample"
opus_decoder_select="mdct15"
opus_encoder_select="audio_frame_queue mdct15"
opus_encoder_select="audio_frame_queue"
png_decoder_select="inflate_wrapper"
png_encoder_select="deflate_wrapper llvidencdsp"
prores_decoder_select="blockdsp idctdsp"
Expand Down Expand Up @@ -3149,8 +3154,12 @@ qsvvpp_select="qsv"
vaapi_encode_deps="vaapi"
v4l2_m2m_deps="linux_videodev2_h sem_timedwait"

bilateral_cuda_filter_deps="ffnvcodec"
bilateral_cuda_filter_deps_any="cuda_nvcc cuda_llvm"
chromakey_cuda_filter_deps="ffnvcodec"
chromakey_cuda_filter_deps_any="cuda_nvcc cuda_llvm"
colorspace_cuda_filter_deps="ffnvcodec"
colorspace_cuda_filter_deps_any="cuda_nvcc cuda_llvm"
hwupload_cuda_filter_deps="ffnvcodec"
scale_npp_filter_deps="ffnvcodec libnpp"
scale2ref_npp_filter_deps="ffnvcodec libnpp"
Expand Down Expand Up @@ -3530,6 +3539,7 @@ gdigrab_indev_deps="CreateDIBSection"
gdigrab_indev_extralibs="-lgdi32"
gdigrab_indev_select="bmp_decoder"
iec61883_indev_deps="libiec61883"
iec61883_indev_select="dv_demuxer"
jack_indev_deps="libjack"
jack_indev_deps_any="sem_timedwait dispatch_dispatch_h"
kmsgrab_indev_deps="libdrm"
Expand Down Expand Up @@ -5331,6 +5341,12 @@ elif enabled ppc; then
;;
esac

elif enabled riscv; then

if test_cpp_condition stddef.h "__riscv_zbb"; then
enable fast_clz
fi

elif enabled sparc; then

case $cpu in
Expand Down Expand Up @@ -6101,6 +6117,10 @@ elif enabled ppc; then
check_cpp_condition power8 "altivec.h" "defined(_ARCH_PWR8)"
fi

elif enabled riscv; then

enabled rvv && check_inline_asm rvv '".option arch, +v\nvsetivli zero, 0, e8, m1, ta, ma"'

elif enabled x86; then

check_builtin rdtsc intrin.h "__rdtsc()"
Expand Down Expand Up @@ -7587,6 +7607,9 @@ if enabled loongarch; then
echo "LSX enabled ${lsx-no}"
echo "LASX enabled ${lasx-no}"
fi
if enabled riscv; then
echo "RISC-V Vector enabled ${rvv-no}"
fi
echo "debug symbols ${debug-no}"
echo "strip symbols ${stripping-no}"
echo "optimize for size ${small-no}"
Expand Down
20 changes: 20 additions & 0 deletions doc/APIchanges
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,26 @@ libavutil: 2021-04-27

API changes, most recent first:

2022-09-26 - xxxxxxxxxx - lavc 59.48.100 - avcodec.h
Deprecate avcodec_enum_to_chroma_pos() and avcodec_chroma_pos_to_enum().
Use av_chroma_location_enum_to_pos() or av_chroma_location_pos_to_enum()
instead.

2022-09-26 - xxxxxxxxxx - lavu 57.37.100 - pixdesc.h
Add av_chroma_location_enum_to_pos() and av_chroma_location_pos_to_enum().

2022-09-26 - xxxxxxxxxx - lavc 59.47.100 - avcodec.h defs.h
Move the AV_EF_* and FF_COMPLIANCE_* defines from avcodec.h to defs.h.

2022-09-03 - xxxxxxxxxx - lavu 57.36.100 - pixfmt.h
Add AV_PIX_FMT_P012, AV_PIX_FMT_Y212, AV_PIX_FMT_XV30, AV_PIX_FMT_XV36

2022-09-03 - xxxxxxxxxx - lavu 57.35.100 - file.h
Deprecate av_tempfile() without replacement.

2022-08-03 - xxxxxxxxxx - lavu 57.34.100 - pixfmt.h
Add AV_PIX_FMT_VUYX.

2022-08-xx - xxxxxxxxxx - lavf 59 - avformat.h
Deprecate av_stream_get_end_pts() without replacement.

Expand Down
3 changes: 0 additions & 3 deletions doc/bitstream_filters.texi
Original file line number Diff line number Diff line change
Expand Up @@ -382,9 +382,6 @@ This applies a specific fixup to some Blu-ray streams which contain
redundant PPSs modifying irrelevant parameters of the stream which
confuse other transformations which require correct extradata.

A new single global PPS is created, and all of the redundant PPSs
within the stream are removed.

@section hevc_metadata

Modify metadata embedded in an HEVC stream.
Expand Down
101 changes: 81 additions & 20 deletions doc/encoders.texi
Original file line number Diff line number Diff line change
Expand Up @@ -2176,6 +2176,8 @@ Set altref noise reduction filter type: backward, forward, centered.
Set altref noise reduction filter strength.
@item rc-lookahead, lag-in-frames (@emph{lag-in-frames})
Set number of frames to look ahead for frametype and ratecontrol.
@item min-gf-interval
Set minimum golden/alternate reference frame interval (VP9 only).
@end table

@item error-resilient
Expand Down Expand Up @@ -3244,9 +3246,9 @@ the average bitrate.
than the average bitrate.

@item
@var{AVBR} - average VBR mode, when @option{maxrate} is not specified. This mode
is further configured by the @option{avbr_accuracy} and
@option{avbr_convergence} options.
@var{AVBR} - average VBR mode, when @option{maxrate} is not specified, both
@option{avbr_accuracy} and @option{avbr_convergence} are set to non-zero. This
mode is available for H264 and HEVC on Windows.
@end itemize
@end itemize

Expand Down Expand Up @@ -3300,19 +3302,6 @@ Specifies how many asynchronous operations an application performs
before the application explicitly synchronizes the result. If zero,
the value is not specified.

@item @var{avbr_accuracy}
Accuracy of the AVBR ratecontrol (unit of tenth of percent).

@item @var{avbr_convergence}
Convergence of the AVBR ratecontrol (unit of 100 frames)

The parameters @var{avbr_accuracy} and @var{avbr_convergence} are for the
average variable bitrate control (AVBR) algorithm.
The algorithm focuses on overall encoding quality while meeting the specified
bitrate, @var{target_bitrate}, within the accuracy range @var{avbr_accuracy},
after a @var{avbr_Convergence} period. This method does not follow HRD and the
instant bitrate is not capped or padded.

@item @var{preset}
This option itemizes a range of choices from veryfast (best speed) to veryslow
(best quality).
Expand Down Expand Up @@ -3344,6 +3333,48 @@ Following options can be used durning qsv encoding.
@item @var{b_quant_offset}
Supported in h264_qsv and hevc_qsv.
Change these value to reset qsv codec's qp configuration.

@item @var{max_frame_size}
Supported in h264_qsv and hevc_qsv.
Change this value to reset qsv codec's MaxFrameSize configuration.

@item @var{gop_size}
Change this value to reset qsv codec's gop configuration.

@item @var{int_ref_type}
@item @var{int_ref_cycle_size}
@item @var{int_ref_qp_delta}
@item @var{int_ref_cycle_dist}
Supported in h264_qsv and hevc_qsv.
Change these value to reset qsv codec's Intra Refresh configuration.

@item @var{qmax}
@item @var{qmin}
@item @var{max_qp_i}
@item @var{min_qp_i}
@item @var{max_qp_p}
@item @var{min_qp_p}
@item @var{max_qp_b}
@item @var{min_qp_b}
Supported in h264_qsv.
Change these value to reset qsv codec's max/min qp configuration.

@item @var{low_delay_brc}
Supported in h264_qsv and hevc_qsv.
Change this value to reset qsv codec's low_delay_brc configuration.

@item @var{framerate}
Change this value to reset qsv codec's framerate configuration.

@item @var{bit_rate}
@item @var{rc_buffer_size}
@item @var{rc_initial_buffer_occupancy}
@item @var{rc_max_rate}
Change these value to reset qsv codec's bitrate control configuration.

@item @var{pic_timing_sei}
Supported in h264_qsv and hevc_qsv.
Change this value to reset qsv codec's pic_timing_sei configuration.
@end table

@subsection H264 options
Expand Down Expand Up @@ -3447,8 +3478,10 @@ Specifies intra refresh type. The major goal of intra refresh is improvement of
error resilience without significant impact on encoded bitstream size caused by
I frames. The SDK encoder achieves this by encoding part of each frame in
refresh cycle using intra MBs. @var{none} means no refresh. @var{vertical} means
vertical refresh, by column of MBs. To enable intra refresh, B frame should be
set to 0.
vertical refresh, by column of MBs. @var{horizontal} means horizontal refresh,
by rows of MBs. @var{slice} means horizontal refresh by slices without
overlapping. In case of @var{slice}, in_ref_cycle_size is ignored. To enable
intra refresh, B frame should be set to 0.

@item @var{int_ref_cycle_size}
Specifies number of pictures within refresh cycle starting from 2. 0 and 1 are
Expand Down Expand Up @@ -3518,6 +3551,19 @@ Provides a hint to encoder about the scenario for the encoding session.
@item remotegaming
@end table

@item @var{avbr_accuracy}
Accuracy of the AVBR ratecontrol (unit of tenth of percent).

@item @var{avbr_convergence}
Convergence of the AVBR ratecontrol (unit of 100 frames)

The parameters @var{avbr_accuracy} and @var{avbr_convergence} are for the
average variable bitrate control (AVBR) algorithm.
The algorithm focuses on overall encoding quality while meeting the specified
bitrate, @var{target_bitrate}, within the accuracy range @var{avbr_accuracy},
after a @var{avbr_Convergence} period. This method does not follow HRD and the
instant bitrate is not capped or padded.

@end table

@subsection HEVC Options
Expand Down Expand Up @@ -3634,8 +3680,10 @@ Specifies intra refresh type. The major goal of intra refresh is improvement of
error resilience without significant impact on encoded bitstream size caused by
I frames. The SDK encoder achieves this by encoding part of each frame in
refresh cycle using intra MBs. @var{none} means no refresh. @var{vertical} means
vertical refresh, by column of MBs. To enable intra refresh, B frame should be
set to 0.
vertical refresh, by column of MBs. @var{horizontal} means horizontal refresh,
by rows of MBs. @var{slice} means horizontal refresh by slices without
overlapping. In case of @var{slice}, in_ref_cycle_size is ignored. To enable
intra refresh, B frame should be set to 0.

@item @var{int_ref_cycle_size}
Specifies number of pictures within refresh cycle starting from 2. 0 and 1 are
Expand Down Expand Up @@ -3681,6 +3729,19 @@ Provides a hint to encoder about the scenario for the encoding session.
@item remotegaming
@end table

@item @var{avbr_accuracy}
Accuracy of the AVBR ratecontrol (unit of tenth of percent).

@item @var{avbr_convergence}
Convergence of the AVBR ratecontrol (unit of 100 frames)

The parameters @var{avbr_accuracy} and @var{avbr_convergence} are for the
average variable bitrate control (AVBR) algorithm.
The algorithm focuses on overall encoding quality while meeting the specified
bitrate, @var{target_bitrate}, within the accuracy range @var{avbr_accuracy},
after a @var{avbr_Convergence} period. This method does not follow HRD and the
instant bitrate is not capped or padded.

@end table

@subsection MPEG2 Options
Expand Down
7 changes: 4 additions & 3 deletions doc/examples/extract_mvs.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,11 @@ static int decode_packet(const AVPacket *pkt)
const AVMotionVector *mvs = (const AVMotionVector *)sd->data;
for (i = 0; i < sd->size / sizeof(*mvs); i++) {
const AVMotionVector *mv = &mvs[i];
printf("%d,%2d,%2d,%2d,%4d,%4d,%4d,%4d,0x%"PRIx64"\n",
printf("%d,%2d,%2d,%2d,%4d,%4d,%4d,%4d,0x%"PRIx64",%4d,%4d,%4d\n",
video_frame_count, mv->source,
mv->w, mv->h, mv->src_x, mv->src_y,
mv->dst_x, mv->dst_y, mv->flags);
mv->dst_x, mv->dst_y, mv->flags,
mv->motion_x, mv->motion_y, mv->motion_scale);
}
}
av_frame_unref(frame);
Expand Down Expand Up @@ -166,7 +167,7 @@ int main(int argc, char **argv)
goto end;
}

printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags\n");
printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags,motion_x,motion_y,motion_scale\n");

/* read frames from the file */
while (av_read_frame(fmt_ctx, pkt) >= 0) {
Expand Down
1 change: 1 addition & 0 deletions doc/ffprobe.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@
<xsd:attribute name="channels" type="xsd:int"/>
<xsd:attribute name="channel_layout" type="xsd:string"/>
<xsd:attribute name="bits_per_sample" type="xsd:int"/>
<xsd:attribute name="initial_padding" type="xsd:int"/>

<xsd:attribute name="id" type="xsd:string"/>
<xsd:attribute name="r_frame_rate" type="xsd:string" use="required"/>
Expand Down
Loading