Page MenuHomeSolus

Update ffmpeg to 4.3.2
ClosedPublic

Authored by aleksvor on Sun, Feb 21, 9:38 AM.

Details

Summary

Summarized changelog:

  • avcodec/vp8: Move end check into MB loop in vp78_decode_mv_mb_modes().
  • avformat/wavdec: Consider AV_INPUT_BUFFER_PADDING_SIZE in set_spdif().
  • avcodec/jpeg2000dec: Check atom_size in jp2_find_codestream().
  • avformat/avidec: Use 64bit in get_duration().
  • avcodec/hevc_sei: Check payload size in decode_nal_sei_message().
  • avcodec/nvenc: fix timestamp offset ticks logic.
  • avformat/wavdec: Check avio_get_str16le() for failure.
  • avformat/avidec: dv does not support palettes.
  • avformat/utils: check for integer overflow in av_get_frame_filename2().
  • avformat/mpegts: Increase pcr_incr width to 64bit.
  • avcodec/h264idct_template: Fix integer overflow in ff_h264_chroma422_dc_dequant_idct().
  • avcodec/hevc_cabac: Limit value in coeff_abs_level_remaining_decode() tighter.
  • avformat/wavdec: Refuse to read chunks bigger than the filesize in w64_read_header().
  • avcodec/hevcpred_template: Fix diagonal chroma availability in 4:2:2 edge case in intra_pred.
  • avcodec/hevcdec: Check slice_cb_qp_offset / slice_cr_qp_offset.
  • avformat/avidec: Fix io_fsize overflow.
  • lavf/srt: fix build fail when used the libsrt 1.4.1.
  • x86/yuv2rgb: fix crashes when storing data on unaligned buffers.
  • checkasm/vf_blend: use the correct depth parameters to initialize the blend modes.
  • x86/vf_blend: fix warnings about trailing empty parameters.
  • x86/h264_deblock: fix warning about trailing empty parameter.
  • avutil/x86inc: fix warnings when assembling with NASM 2.15.

Full changelog here.

Packaging changes:

  • Removed caca support. The rationale for it:
    • There is probably no use for terminal-based output on modern desktop OS.
    • libcaca is barely maintaned and was initially added to Solus to provide binary compatibility with DOSBox builds from GOG.
  • Enabled rubberband filter, which allows to use librubberband to stretch and pitch-shift audio while transcoding.

Depends on D10414, D10536.

Test Plan
  1. Transcoded H264 video to AV1 using libaom-av1.
  2. Transcoded H264 video to HEVC using libx265.
  3. Played back local video and YouTube livestream in mpv.
  4. Reencoded FLAC file, using rubberband to decrease and increase the tempo of the audio. Tested both resulting files in Audacious.

Diff Detail

Repository
R742 ffmpeg
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

aleksvor created this revision.Sun, Feb 21, 9:38 AM
aleksvor requested review of this revision.Sun, Feb 21, 9:38 AM
aleksvor updated this revision to Diff 25497.Sun, Feb 21, 10:36 AM

Changed enabled features:

  1. Removed caca support. The rationale for it:
    • There is probably no use for terminal-based output on modern desktop OS.
    • libcaca is barely maintaned and was initially added to Solus to provide binary compatibility with DOSBox builds from GOG.
  2. Enabled rubberband filter, which allows to use librubberband to stretch and pitch-shift audio while transcoding.
aleksvor added inline comments.Sun, Feb 21, 10:42 AM
abi_symbols
267–268

These ABI removals are probably safe, as these symbols appeared recently in D10381 with addition of SRT support and rebuild against newer glslang. Likely these are some exported symbols from statically compiled libglslang.

aleksvor edited the summary of this revision. (Show Details)Sun, Feb 21, 10:53 AM
aleksvor edited the test plan for this revision. (Show Details)
JoshStrobl accepted this revision.Wed, Mar 3, 5:28 PM
JoshStrobl added a subscriber: JoshStrobl.

LGTM, thanks!

This revision is now accepted and ready to land.Wed, Mar 3, 5:28 PM
This revision was automatically updated to reflect the committed changes.