Andreas Rheinhardt: > This is the second version of my init_vlc patchset [1]. Given the > feedback I received for the last version I stressed thread-safety of > init functions of decoders. As a consequence, the amount of decoders > with FF_CODEC_CAP_INIT_THREADSAFE increased by 25 (some of them were > already thread-safe, just the flag was missing). I am not finished yet*, > but I don't see a reason to postpone sending this patchset already. > > It now saves 146KiB from the binary (and much more when using hardcoded > tables). > > [1]: https://ffmpeg.org/pipermail/ffmpeg-devel/2020-November/272127.html > > Two patches of this patchset (#55 and #161) change MIPS code; this is > untested as I don't have a MIPS. Would be nice if someone could test it. > > *: AAC needs much more work (e.g. these decoders claim to be > init-threadsafe, but aren't). > Will apply the patches that don't depend on ff_init_vlc_from_lengths() tomorrow, namely: avcodec/mpegaudiodec_template: Don't use unnecessarily many VLC bits avcodec/mv30: Don't check for errors for complete VLCs avcodec/imm4: Don't use too big VLC table avcodec/aac*: Make initializing ff_aac_pow*sf_tab thread-safe avcodec/aactab: Fix conflicting types for ff_aac_codebook* avcodec/qdmc: Don't check for errors for complete VLCs avcodec/hqx: Don't check for errors for complete VLCs avcodec/hqx: Inline constants avcodec/intrax8: Make ff_intrax8_common_init() thread-safe avcodec/intrax8: Replace always-false check by assert avcodec/atrac9tab: Add missing static to internal table avcodec/atrac9dec: Replace av_free() by av_freep() in close function avcodec/atrac9dec: Don't use unnecessarily large VLC tables avcodec/atrac9dec: Use least max_depth in calls to get_vlc2() avcodec/atrac9dec: Don't confuse max_depth of VLC with max codelength avcodec/truemotion2: Mark decoder as init-threadsafe avcodec/g2meet: Use least max_depth in get_vlc2() avcodec/sheervideo: Add av_cold to build_vlc() avcodec/mss4: Mark decoder as init-threadsafe avcodec/rv40vlc2: Make VLC smaller avcodec/qdm2: Remove outdated comment avcodec/mpegaudiodsp: Make initializing synth windows thread-safe avcodec/mpegaudiodsp: Make ff_mpadsp_init() thread-safe avcodec/fft_template, fft_init_table: Make ff_fft_init() thread-safe avcodec/mpegaudiodsp: Combine initializing float and int tables avcodec/motionpixels: Make decoder init-threadsafe avcodec/motionpixels: Use symbols table avcodec/motionpixels: Don't check for errors for complete VLC avcodec/motionpixels: Be more strict when parsing Huffman trees avcodec/motionpixels: Only create VLC iff it is going to be used avcodec/mimic: Mark decoder as init-threadsafe avcodec/mimic: Cleanup generically upon init failure avcodec/rv10: Make initializing static RV10 VLCs thread-safe avcodec/smacker: Mark decoders as init-threadsafe avcodec/tscc2: Mark tscc2 decoder as init-threadsafe
- Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".