diff options
author | Maxim Cournoyer <[email protected]> | 2024-01-07 13:16:17 -0500 |
---|---|---|
committer | Maxim Cournoyer <[email protected]> | 2024-01-09 22:10:12 -0500 |
commit | de002b93dbc3aace41e0fbfc5c717ab73c9a1aa1 (patch) | |
tree | cbc9517964ce3f5447ce211cc4a7805fdaa1dc19 /gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch | |
parent | 5a38120c6737067b19fc724b45d15c66eb9b133c (diff) |
gnu: ffmpeg-jami: Relocate to (gnu packages video).
To avoid Guile module dependency cycles, inherited packages must be defined in
the same module. Use this opportunity to simplify the patches applying
mechanism, versioning custom patches the same as for other packages.
* gnu/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch: New file.
* gnu/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch: Likewise.
* gnu/packages/patches/ffmpeg-jami-libopusdec-enable-FEC.patch: Likewise.
* gnu/packages/patches/ffmpeg-jami-libopusenc-enable-FEC.patch: Likewise.
* gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch:
Likewise.
* gnu/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch: Likewise.
* gnu/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): Register them.
* gnu/packages/jami.scm (jami-apply-custom-patches): Delete procedure.
(%ffmpeg-default-configure-flags): Delete variable.
(ffmpeg-compose-configure-flags): Delete procedure.
(ffmpeg-jami): Move to...
* gnu/packages/video.scm (ffmpeg-jami): ... here. Apply patches to origin and
repatriate configure flags.
Change-Id: Id374fae18240cd76b224915d80b61422635ccb77
Diffstat (limited to 'gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch')
-rw-r--r-- | gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch b/gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch new file mode 100644 index 0000000000..5c4bd4d3eb --- /dev/null +++ b/gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch @@ -0,0 +1,44 @@ +From dba13d03bc8e827fededc20b0ab1f574a1500f2a Mon Sep 17 00:00:00 2001 +From: Philip-Dylan Gleonec <[email protected]> +Date: Thu, 11 Feb 2021 12:25:14 +0100 +Subject: [PATCH 2/2] avcodec/libopusenc: reload packet loss at encode + +An estimation of packet loss is required by libopus to compute its FEC +data. Currently, this estimation is constant, and can not be changed +after configuration. This means an application using libopus through +ffmpeg can not adapt the packet loss estimation when the network +quality degrades. + +This patch makes the encoder reload the packet_loss AVOption before +encoding samples, if fec is enabled. This way an application can modify +the packet loss estimation by changing the AVOption. Typical use-case +is a RTP stream, where packet loss can be estimated from RTCP packets. + +Signed-off-by: Philip-Dylan Gleonec <[email protected]> +--- + libavcodec/libopusenc.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c +index 70d17f802b..c18e8ae7fa 100644 +--- a/libavcodec/libopusenc.c ++++ b/libavcodec/libopusenc.c +@@ -460,6 +460,15 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt, + int ret; + int discard_padding; + ++ if (opus->opts.fec) { ++ ret = opus_multistream_encoder_ctl(opus->enc, ++ OPUS_SET_PACKET_LOSS_PERC(opus->opts.packet_loss)); ++ if (ret != OPUS_OK) ++ av_log(avctx, AV_LOG_WARNING, ++ "Unable to set expected packet loss percentage: %s\n", ++ opus_strerror(ret)); ++ } ++ + if (frame) { + ret = ff_af_queue_add(&opus->afq, frame); + if (ret < 0) +-- +2.25.1 + |