diff -pruN 0.8+dfsg-22/debian/changelog 0.8+dfsg-22ubuntu1/debian/changelog
--- 0.8+dfsg-22/debian/changelog	2021-11-18 02:00:46.000000000 +0000
+++ 0.8+dfsg-22ubuntu1/debian/changelog	2022-07-20 20:48:55.000000000 +0000
@@ -1,3 +1,33 @@
+xmms2 (0.8+dfsg-22ubuntu1) kinetic; urgency=medium
+
+  * Fix FTBFS against ffmpeg 5 (LP: #1982419)
+
+ -- Dan Bungert <daniel.bungert@canonical.com>  Wed, 20 Jul 2022 14:48:55 -0600
+
+xmms2 (0.8+dfsg-22build4) kinetic; urgency=medium
+
+  * No-change rebuild against libavcodec59
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Tue, 19 Jul 2022 13:12:30 +0000
+
+xmms2 (0.8+dfsg-22build3) jammy; urgency=medium
+
+  * No-change rebuild with Python 3.10 only
+
+ -- Graham Inggs <ginggs@ubuntu.com>  Wed, 16 Mar 2022 18:06:41 +0000
+
+xmms2 (0.8+dfsg-22build2) jammy; urgency=medium
+
+  * No-change rebuild for the perl update.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 06 Feb 2022 13:48:57 +0100
+
+xmms2 (0.8+dfsg-22build1) jammy; urgency=medium
+
+  * No-change rebuild against libssl3
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Thu, 09 Dec 2021 00:23:19 +0000
+
 xmms2 (0.8+dfsg-22) unstable; urgency=medium
 
   * QA upload.
diff -pruN 0.8+dfsg-22/debian/control 0.8+dfsg-22ubuntu1/debian/control
--- 0.8+dfsg-22/debian/control	2021-11-18 02:00:46.000000000 +0000
+++ 0.8+dfsg-22ubuntu1/debian/control	2021-12-09 00:23:19.000000000 +0000
@@ -1,7 +1,8 @@
 Source: xmms2
 Section: sound
 Priority: optional
-Maintainer: Debian QA Group <packages@qa.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian QA Group <packages@qa.debian.org>
 Standards-Version: 3.9.8
 Build-Depends: cython3,
                debhelper-compat (= 13),
diff -pruN 0.8+dfsg-22/debian/patches/ffmpeg-5-ed86b39.patch 0.8+dfsg-22ubuntu1/debian/patches/ffmpeg-5-ed86b39.patch
--- 0.8+dfsg-22/debian/patches/ffmpeg-5-ed86b39.patch	1970-01-01 00:00:00.000000000 +0000
+++ 0.8+dfsg-22ubuntu1/debian/patches/ffmpeg-5-ed86b39.patch	2022-07-20 20:48:55.000000000 +0000
@@ -0,0 +1,147 @@
+Description: ffmpeg 5 compat
+Author:      Dan Bungert <daniel.bungert@canonical.com>
+Bug-Ubuntu:  https://bugs.launchpad.net/debian/+source/xmms2/+bug/1982419
+Bug-Debian:  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004805
+Forwarded:   not-needed
+Origin:      https://github.com/xmms2/xmms2-devel/pull/11
+Last-Update: 2022-07-20
+diff --git a/src/plugins/avcodec/avcodec.c b/src/plugins/avcodec/avcodec.c
+index 23fd4615e..a5c5aa0f4 100644
+--- a/src/plugins/avcodec/avcodec.c
++++ b/src/plugins/avcodec/avcodec.c
+@@ -31,6 +31,7 @@
+ 
+ typedef struct {
+ 	AVCodecContext *codecctx;
++	AVPacket packet;
+ 
+ 	guchar *buffer;
+ 	guint buffer_length;
+@@ -149,13 +150,12 @@ xmms_avcodec_init (xmms_xform_t *xform)
+ 	data->buffer = g_malloc (AVCODEC_BUFFER_SIZE);
+ 	data->buffer_size = AVCODEC_BUFFER_SIZE;
+ 	data->codecctx = NULL;
++	data->packet.size = 0;
+ 
+ 	data->read_out_frame = av_frame_alloc ();
+ 
+ 	xmms_xform_private_data_set (xform, data);
+ 
+-	avcodec_register_all ();
+-
+ 	mimetype = xmms_xform_indata_get_str (xform,
+ 	                                      XMMS_STREAM_TYPE_MIMETYPE);
+ 	data->codec_id = mimetype + strlen ("audio/x-ffmpeg-");
+@@ -466,45 +466,37 @@ FF_INPUT_BUFFER_PADDING_SIZE long.
+ static gint
+ xmms_avcodec_internal_decode_some (xmms_avcodec_data_t *data)
+ {
+-	int got_frame = 0;
+-	gint bytes_read = 0;
+-	AVPacket packet;
++	int rc = 0;
+ 
+-	av_init_packet (&packet);
+-	packet.data = data->buffer;
+-	packet.size = data->buffer_length;
++	if (data->packet.size == 0) {
++		av_init_packet (&data->packet);
++		data->packet.data = data->buffer;
++		data->packet.size = data->buffer_length;
+ 
+-	/* clear buffers and reset fields to defaults */
+-	av_frame_unref (data->read_out_frame);
+-
+-	bytes_read = avcodec_decode_audio4 (
+-		data->codecctx, data->read_out_frame, &got_frame, &packet);
++		rc = avcodec_send_packet(data->codecctx, &data->packet);
++		if (rc == AVERROR_EOF)
++			rc = 0;
++	}
+ 
+-	/* The DTS decoder of ffmpeg is buggy and always returns
+-	 * the input buffer length, get frame length from header */
+-	/* FIXME: Is ^^^^ still true? */
+-	if (!strcmp (data->codec_id, "dca") && bytes_read > 0) {
+-		bytes_read = ((int)data->buffer[5] << 12) |
+-		             ((int)data->buffer[6] << 4) |
+-		             ((int)data->buffer[7] >> 4);
+-		bytes_read = (bytes_read & 0x3fff) + 1;
++	if (rc == 0) {
++		rc = avcodec_receive_frame(data->codecctx, data->read_out_frame);
++		if (rc < 0) {
++			data->packet.size = 0;
++			data->buffer_length = 0;
++			if (rc == AVERROR(EAGAIN)) rc = 0;
++			else if (rc == AVERROR_EOF) rc = 1;
++		}
++		else
++			rc = 1;
+ 	}
+ 
+-	if (bytes_read < 0 || bytes_read > data->buffer_length) {
++	if (rc < 0) {
++		data->packet.size = 0;
+ 		XMMS_DBG ("Error decoding data!");
+ 		return -1;
+ 	}
+ 
+-	if (bytes_read < data->buffer_length) {
+-		data->buffer_length -= bytes_read;
+-		g_memmove (data->buffer,
+-		           data->buffer + bytes_read,
+-		           data->buffer_length);
+-	} else {
+-		data->buffer_length = 0;
+-	}
+-
+-	return got_frame ? 1 : 0;
++	return rc;
+ }
+ 
+ static void
+diff --git a/src/plugins/avcodec/wscript b/src/plugins/avcodec/wscript
+index 00b182b24..4b6227437 100644
+--- a/src/plugins/avcodec/wscript
++++ b/src/plugins/avcodec/wscript
+@@ -1,7 +1,7 @@
+ from waftools.plugin import plugin
+ 
+ ## Code fragments for configuration
+-avcodec_decode_audio4_fragment = """
++avcodec_send_packet_fragment = """
+ #ifdef HAVE_LIBAVCODEC_AVCODEC_H
+ # include "libavcodec/avcodec.h"
+ #else
+@@ -9,11 +9,9 @@ avcodec_decode_audio4_fragment = """
+ #endif
+ int main(void) {
+     AVCodecContext *ctx;
+-    AVFrame *frame;
+-    int got_frame;
+     AVPacket *pkt;
+ 
+-    avcodec_decode_audio4 (ctx, frame, &got_frame, pkt);
++    avcodec_send_packet (ctx, pkt);
+ 
+     return 0;
+ }
+@@ -40,12 +38,12 @@ def plugin_configure(conf):
+     conf.check_cc(header_name="avcodec.h", uselib="avcodec", type="cshlib", mandatory=False)
+     conf.check_cc(header_name="libavcodec/avcodec.h", uselib="avcodec", type="cshlib", mandatory=False)
+ 
+-    # mandatory function avcodec_decode_audio4 available since
+-    # * ffmpeg: commit e4de716, lavc 53.40.0, release 0.9
+-    # * libav: commit 0eea212, lavc 53.25.0, release 0.8
+-    conf.check_cc(fragment=avcodec_decode_audio4_fragment, uselib="avcodec",
+-                  uselib_store="avcodec_decode_audio4",
+-                  msg="Checking for function avcodec_decode_audio4", mandatory=True)
++    # mandatory function avcodec_send_packet available since
++    # * ffmpeg: commit 7fc329e, lavc 57.37.100, release 3.1
++    # * libav: commit 05f6670, lavc 57.16.0, release 12
++    conf.check_cc(fragment=avcodec_send_packet_fragment, uselib="avcodec",
++                  uselib_store="avcodec_send_packet",
++                  msg="Checking for function avcodec_send_packet", mandatory=True)
+ 
+     # non-mandatory function avcodec_free_frame since
+     # * ffmpeg: commit 46a3595, lavc 54.59.100, release 1.0
diff -pruN 0.8+dfsg-22/debian/patches/series 0.8+dfsg-22ubuntu1/debian/patches/series
--- 0.8+dfsg-22/debian/patches/series	2021-02-06 12:55:30.000000000 +0000
+++ 0.8+dfsg-22ubuntu1/debian/patches/series	2022-07-20 20:48:55.000000000 +0000
@@ -23,3 +23,4 @@ libcdio-paranoia.diff
 upgrade-waf-2.0.20.patch
 use-modern-waf.patch
 fix-python-enum-declaration.patch
+ffmpeg-5-ed86b39.patch
