diff -Nru motion-4.3.2/debian/changelog motion-4.3.2/debian/changelog --- motion-4.3.2/debian/changelog 2022-07-19 06:58:55.000000000 -0600 +++ motion-4.3.2/debian/changelog 2022-07-26 13:27:55.000000000 -0600 @@ -1,3 +1,9 @@ +motion (4.3.2-1ubuntu1) kinetic; urgency=medium + + * Backport FFMPEG 5 fixes (LP: #1982886) + + -- Dan Bungert Tue, 26 Jul 2022 13:27:55 -0600 + motion (4.3.2-1build1) kinetic; urgency=medium * No-change rebuild against libavcodec59 diff -Nru motion-4.3.2/debian/patches/ffmpeg-5.patch motion-4.3.2/debian/patches/ffmpeg-5.patch --- motion-4.3.2/debian/patches/ffmpeg-5.patch 1969-12-31 17:00:00.000000000 -0700 +++ motion-4.3.2/debian/patches/ffmpeg-5.patch 2022-07-26 13:27:55.000000000 -0600 @@ -0,0 +1,133 @@ +Description: Backport ffmpeg 5 fixes. +Author: Dan Bungert +Origin: https://github.com/Motion-Project/motion/pull/1351/commits/fc9ed24c467006a463684f7db2f760a61f1eebe0 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1982886 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004629 +Forwarded: not-needed +Last-Update: 2022-07-26 +--- a/src/ffmpeg.c ++++ b/src/ffmpeg.c +@@ -340,7 +340,7 @@ + + if (ffmpeg->tlapse == TIMELAPSE_APPEND){ + ffmpeg->oc->oformat = av_guess_format ("mpeg2video", NULL, NULL); +- if (ffmpeg->oc->oformat) ffmpeg->oc->oformat->video_codec = MY_CODEC_ID_MPEG2VIDEO; ++ if (ffmpeg->oc->oformat) ffmpeg->oc->video_codec_id = MY_CODEC_ID_MPEG2VIDEO; + retcd = snprintf(ffmpeg->filename,PATH_MAX,"%s.mpg",basename); + if ((!ffmpeg->oc->oformat) || + (retcd < 0) || (retcd >= PATH_MAX)){ +@@ -362,7 +362,7 @@ + if (strcmp(codec_name, "msmpeg4") == 0) { + ffmpeg->oc->oformat = av_guess_format("avi", NULL, NULL); + retcd = snprintf(ffmpeg->filename,PATH_MAX,"%s.avi",basename); +- if (ffmpeg->oc->oformat) ffmpeg->oc->oformat->video_codec = MY_CODEC_ID_MSMPEG4V2; ++ if (ffmpeg->oc->oformat) ffmpeg->oc->video_codec_id = MY_CODEC_ID_MSMPEG4V2; + } + + if (strcmp(codec_name, "swf") == 0) { +@@ -373,13 +373,13 @@ + if (strcmp(codec_name, "flv") == 0) { + ffmpeg->oc->oformat = av_guess_format("flv", NULL, NULL); + retcd = snprintf(ffmpeg->filename,PATH_MAX,"%s.flv",basename); +- if (ffmpeg->oc->oformat) ffmpeg->oc->oformat->video_codec = MY_CODEC_ID_FLV1; ++ if (ffmpeg->oc->oformat) ffmpeg->oc->video_codec_id = MY_CODEC_ID_FLV1; + } + + if (strcmp(codec_name, "ffv1") == 0) { + ffmpeg->oc->oformat = av_guess_format("avi", NULL, NULL); + retcd = snprintf(ffmpeg->filename,PATH_MAX,"%s.avi",basename); +- if (ffmpeg->oc->oformat) ffmpeg->oc->oformat->video_codec = MY_CODEC_ID_FFV1; ++ if (ffmpeg->oc->oformat) ffmpeg->oc->video_codec_id = MY_CODEC_ID_FFV1; + } + + if (strcmp(codec_name, "mov") == 0) { +@@ -390,19 +390,19 @@ + if (strcmp(codec_name, "mp4") == 0) { + ffmpeg->oc->oformat = av_guess_format("mp4", NULL, NULL); + retcd = snprintf(ffmpeg->filename,PATH_MAX,"%s.mp4",basename); +- if (ffmpeg->oc->oformat) ffmpeg->oc->oformat->video_codec = MY_CODEC_ID_H264; ++ if (ffmpeg->oc->oformat) ffmpeg->oc->video_codec_id = MY_CODEC_ID_H264; + } + + if (strcmp(codec_name, "mkv") == 0) { + ffmpeg->oc->oformat = av_guess_format("matroska", NULL, NULL); + retcd = snprintf(ffmpeg->filename,PATH_MAX,"%s.mkv",basename); +- if (ffmpeg->oc->oformat) ffmpeg->oc->oformat->video_codec = MY_CODEC_ID_H264; ++ if (ffmpeg->oc->oformat) ffmpeg->oc->video_codec_id = MY_CODEC_ID_H264; + } + + if (strcmp(codec_name, "hevc") == 0) { + ffmpeg->oc->oformat = av_guess_format("mp4", NULL, NULL); + retcd = snprintf(ffmpeg->filename,PATH_MAX,"%s.mp4",basename); +- if (ffmpeg->oc->oformat) ffmpeg->oc->oformat->video_codec = MY_CODEC_ID_HEVC; ++ if (ffmpeg->oc->oformat) ffmpeg->oc->video_codec_id = MY_CODEC_ID_HEVC; + } + + //Check for valid results +@@ -422,7 +422,7 @@ + return -1; + } + +- if (ffmpeg->oc->oformat->video_codec == MY_CODEC_ID_NONE) { ++ if (ffmpeg->oc->video_codec_id == MY_CODEC_ID_NONE) { + MOTION_LOG(ERR, TYPE_ENCODER, NO_ERRNO, _("Could not get the codec")); + ffmpeg_free_context(ffmpeg); + free(codec_name); +@@ -721,7 +721,7 @@ + } else { + ffmpeg->codec = avcodec_find_encoder_by_name(&ffmpeg->codec_name[codec_name_len+1]); + if ((ffmpeg->oc->oformat) && (ffmpeg->codec != NULL)) { +- ffmpeg->oc->oformat->video_codec = ffmpeg->codec->id; ++ ffmpeg->oc->video_codec_id = ffmpeg->codec->id; + } else if (ffmpeg->codec == NULL) { + MOTION_LOG(WRN, TYPE_ENCODER, NO_ERRNO + ,_("Preferred codec %s not found") +@@ -730,7 +730,7 @@ + } + } + if (!ffmpeg->codec) +- ffmpeg->codec = avcodec_find_encoder(ffmpeg->oc->oformat->video_codec); ++ ffmpeg->codec = avcodec_find_encoder(ffmpeg->oc->video_codec_id); + if (!ffmpeg->codec) { + MOTION_LOG(ERR, TYPE_ENCODER, NO_ERRNO + ,_("Codec %s not found"), ffmpeg->codec_name); +@@ -818,7 +818,7 @@ + } + } + +- ffmpeg->ctx_codec->codec_id = ffmpeg->oc->oformat->video_codec; ++ ffmpeg->ctx_codec->codec_id = ffmpeg->oc->video_codec_id; + ffmpeg->ctx_codec->codec_type = AVMEDIA_TYPE_VIDEO; + ffmpeg->ctx_codec->bit_rate = ffmpeg->bps; + ffmpeg->ctx_codec->width = ffmpeg->width; +@@ -1320,7 +1320,7 @@ + + #if (LIBAVFORMAT_VERSION_MAJOR >= 58) || ((LIBAVFORMAT_VERSION_MAJOR == 57) && (LIBAVFORMAT_VERSION_MINOR >= 41)) + stream_in = ffmpeg->rtsp_data->transfer_format->streams[0]; +- ffmpeg->oc->oformat->video_codec = stream_in->codecpar->codec_id; ++ ffmpeg->oc->video_codec_id = stream_in->codecpar->codec_id; + + ffmpeg->video_st = avformat_new_stream(ffmpeg->oc, NULL); + if (!ffmpeg->video_st) { +--- a/src/ffmpeg.h ++++ b/src/ffmpeg.h +@@ -44,11 +44,18 @@ + #endif // HAVE_FFMPEG + + #ifdef HAVE_FFMPEG ++ ++#if (LIBAVCODEC_VERSION_MAJOR >= 59) ++typedef const AVCodec my_AVCodec; /* Version independent for AVCodec*/ ++#else ++typedef AVCodec my_AVCodec; /* Version independent for AVCodec*/ ++#endif ++ + struct ffmpeg { + AVFormatContext *oc; + AVStream *video_st; + AVCodecContext *ctx_codec; +- AVCodec *codec; ++ my_AVCodec *codec; + AVPacket pkt; + AVFrame *picture; /* contains default image pointers */ + AVDictionary *opts; diff -Nru motion-4.3.2/debian/patches/series motion-4.3.2/debian/patches/series --- motion-4.3.2/debian/patches/series 2019-03-24 21:31:31.000000000 -0600 +++ motion-4.3.2/debian/patches/series 2022-07-26 13:27:55.000000000 -0600 @@ -1 +1,2 @@ change-paths_set-debian-paths.patch +ffmpeg-5.patch