20:03
swscale/x86/rgb2rgb_template: Remove unnecessary SFENCE The ff_nv12ToUV_* functions don't use non-temporal stores at all. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libswscale/x86/rgb2rgb_template.c
19:23
tests/checkasm/sw_rgb: Be more strict about clobbering MMX state The MMXEXT versions of the rgb2rgb functions tested here always emit emms on their own. Therefore one can use a stricter test to ensure that it stays that way. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] tests/checkasm/sw_rgb.c
12:14
avcodec/dnxhdenc: Simplify padding It is unnecessary to first pad to 32bits; the memset later will pad everything will with zeroes anyway. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavcodec/dnxhdenc.c
12:09
avcodec/dnxhdenc: Move PutBitContext from ctx to stack Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavcodec/dnxhdenc.c
11:26
avcodec/cbs_h266_syntax_template: Use correct format specifier H266RawSliceHeader.num_entry_points is an uint32_t. Fixes -Wformat warnings: https://fate.ffmpeg.org/log.cgi?slot=aarch64-osx-clang-1200.0.32.29&time=20240604151047&log=compile Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavcodec/cbs_h266_syntax_template.c
11:21
avformat/evc: Fix format specifiers Fixes -Wformat warnings; see e.g. https://fate.ffmpeg.org/log.cgi?slot=aarch64-osx-clang-1200.0.32.29&time=20240604151047&log=compile Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavformat/evc.c
10:48
avformat/vvc: Reindent after the previous commit Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavformat/vvc.c
10:44
avformat/vvc: Fix crash on allocation failure, avoid allocations This is the VVC version of 8b5d15530127fea54e934043a64653859de07353. (Hint: This ensures that the order of NALU arrays is OPI-VPS-SPS-PPS- Prefix-SEI-Suffix-SEI, regardless of the order in the original extradata. I hope this is right.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavformat/vvc.c
09:39
avformat/vvc: Don't use ff_copy_bits() There is no benefit in using it: The fast path of copying is not taken because of misalignment; furthermore we are only dealing with a few byte here anyway, so simply copy the bytes manually, avoiding the dependency on bitstream.c in lavf (which also contains a function that is completely unused in lavf). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavformat/Makefile [DH] libavformat/bitstream.c [DH] libavformat/vvc.c [DH] (...)
09:32
avformat/vvc: Use put_bytes_output() The PutBitContext has just been flushed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavformat/vvc.c
09:20
avcodec/hevc/Makefile: Move rules for lavc/* files to lavc/Makefile If any of these files (say A) would be changed in such a way that A acquires a new dependency on another file B, building B would need to be added to all the rules that lead to A being built. Yet currently the rules for several files are spread over the lavc Makefile and the Makefile of the lavc/hevc subdir, making it more likely to be forgotten. So move the rules for these files to the lavc/Makefile. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libavcodec/Makefile [DH] (...)
21:27
swscale/x86/rgb2rgb: Detemplatize Every function in rgb2rgb_template.c is only compiled exactly once; there is no overlap at all between the MMXEXT and the SSE2 functions, so detemplatize it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libswscale/x86/rgb2rgb.c [DH] libswscale/x86/rgb2rgb_template.c
21:18
swscale/x86/rgb2rgb_template: Remove unused uyvytoyv12 Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libswscale/x86/rgb2rgb_template.c
20:47
swscale/x86/rgb2rgb: Don't unnecessarily check for inline ASM The SSE2 and AVX versions of deinterleaveBytes are external ASM. Move them out of the inline ASM template. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardtⓐoutlook.com> [DH] libswscale/x86/rgb2rgb.c [DH] libswscale/x86/rgb2rgb_template.c
16:32
sws/input: R-V V rgb24ToUV_half and bgr24ToUV_half T-Head C908: rgb24_to_uv_half_4_c: 2.0 rgb24_to_uv_half_4_rvv_i32: 3.5 rgb24_to_uv_half_64_c: 27.0 rgb24_to_uv_half_64_rvv_i32: 12.5 rgb24_to_uv_half_540_c: 223.7 rgb24_to_uv_half_540_rvv_i32: 105.2 rgb24_to_uv_half_640_c: 265.5 rgb24_to_uv_half_640_rvv_i32: 123.7 rgb24_to_uv_half_960_c: 414.5 rgb24_to_uv_half_960_rvv_i32: 249.5 SpacemiT X60: rgb24_to_uv_half_4_c: 1.7 rgb24_to_uv_half_4_rvv_i32: 4.2 rgb24_to_uv_half_64_c: 24.0 rgb24_to_uv_half_64_rvv_i32: 8.7 rgb24_to_uv_half_540_c: 199.2 rgb24_to_uv_half_540_rvv_i32: 72.5 (...)
15:36
sws/input: R-V V rgb24ToUV and bgr24ToUV T-Head C908: rgb24_to_uv_8_c: 2.7 rgb24_to_uv_8_rvv_i32: 3.2 rgb24_to_uv_128_c: 41.0 rgb24_to_uv_128_rvv_i32: 12.7 rgb24_to_uv_1080_c: 342.5 rgb24_to_uv_1080_rvv_i32: 105.7 rgb24_to_uv_1280_c: 406.0 rgb24_to_uv_1280_rvv_i32: 124.2 rgb24_to_uv_1920_c: 626.0 rgb24_to_uv_1920_rvv_i32: 186.0 SpacemiT X60: rgb24_to_uv_8_c: 2.5 rgb24_to_uv_8_rvv_i32: 3.0 rgb24_to_uv_128_c: 36.5 rgb24_to_uv_128_rvv_i32: 5.7 rgb24_to_uv_1080_c: 304.2 rgb24_to_uv_1080_rvv_i32: 49.0 rgb24_to_uv_1280_c: 360.5 rgb24_to_uv_1280_rvv_i32: 57.5 rgb24_to_uv_1920_c: 540.7 (...)
18:55
lavc/vp8dsp: R-V V vp8_idct_add T-Head C908 (cycles): vp8_idct_add_c: 312.2 vp8_idct_add_rvv_i32: 117.0 [DH] libavcodec/riscv/vp8dsp_init.c [DH] libavcodec/riscv/vp8dsp_rvv.S
16:43
aacdec_usac: remove fallback for custom maps with invalid position Not needed as every possible index is mapped. [DH] libavcodec/aac/aacdec_usac.c
16:31
aacdec_usac: tag LFE channels as such in the channel map Missed. [DH] libavcodec/aac/aacdec_usac.c
16:25
aacdec_usac: clean up nb_elems on error Require that there is a valid layout with a valid number of channels before accepting nb_elems. The value is required when flushing. Thanks to kasper93 for figuring it out. [DH] libavcodec/aac/aacdec_usac.c
16:23
aacdec: increase MAX_ELEM_ID to 64 In USAC, we set the max to 64. [DH] libavcodec/aac.h
03:04
lavc: bump minor and add APIchanges entry for new USAC profile [DH] doc/APIchanges [DH] libavcodec/version.h
03:01
aac: define a new profile for USAC This allows users to determine whether a stream is USAC or not. [DH] libavcodec/aac/aacdec_usac.c [DH] libavcodec/defs.h [DH] libavcodec/profiles.c [DH] libavcodec/profiles.h
03:00
mpeg4audio: explicitly define each AOT This makes it far easier to figure out which AOT belongs to which profile. Also, explicitly highlight the holes. [DH] libavcodec/mpeg4audio.h
02:53
mpeg4audio: rename AOT_USAC_NOSBR to AOT_USAC The issue is that AOT 45 isn't defined anywhere, and looking at the git blame, it seems to have sprung up through a reordering of the enum, and adding a hole. The spec does not define an explicit AOT for SBR and no SBR, and only uses AOT 42 (previously AOT_USAC_NOSBR), so just rename AOT_USAC to it and replace its use everywhere. [DH] libavcodec/aac/aacdec.c [DH] libavcodec/mpeg4audio.h
17:40
aacdec_usac: correctly set and use the layout map [DH] libavcodec/aac/aacdec_usac.c
17:34
checkasm/sw_rgb: test rgb24/bgr24 to yuv The line width 8 is supposed to test corner case, while the performance doesn't matter. Width 1080 is also a case of unaligned to 16. Width 1920 meant for benchmark (together with --runs options). Signed-off-by: James Almer <jamrialⓐgmail.com> [DH] tests/checkasm/sw_rgb.c