Package: octave-video
Followup-For: Bug #1004770
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu kinetic ubuntu-patch
Control: tags -1 patch

Dear Maintainer,

As noted in this bug, octave-video FTBFS with ffmpeg 5. This patch
resolves that failure.

In Ubuntu, the attached patch was applied to achieve the following:

  * d/patches/ffmpeg5.patch: Update to FFMPEG 5 API.

Thanks for considering the patch.


-- System Information:
Debian Release: bookworm/sid
  APT prefers kinetic
  APT policy: (500, 'kinetic')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.15.0-27-generic (SMP w/32 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru octave-video-2.0.2/debian/control octave-video-2.0.2/debian/control
--- octave-video-2.0.2/debian/control   2022-07-19 08:01:01.000000000 -0500
+++ octave-video-2.0.2/debian/control   2022-08-01 14:26:51.000000000 -0500
@@ -1,8 +1,7 @@
 Source: octave-video
 Section: math
 Priority: optional
-Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com>
-XSBC-Original-Maintainer: Debian Octave Group 
<team+pkg-octave-t...@tracker.debian.org>
+Maintainer: Debian Octave Group <team+pkg-octave-t...@tracker.debian.org>
 Uploaders: Rafael Laboissière <raf...@debian.org>
 Build-Depends: debhelper-compat (= 13),
                dh-octave (>= 0.7.1),
diff -Nru octave-video-2.0.2/debian/patches/ffmpeg5.patch 
octave-video-2.0.2/debian/patches/ffmpeg5.patch
--- octave-video-2.0.2/debian/patches/ffmpeg5.patch     1969-12-31 
18:00:00.000000000 -0600
+++ octave-video-2.0.2/debian/patches/ffmpeg5.patch     2022-08-01 
14:26:51.000000000 -0500
@@ -0,0 +1,545 @@
+Index: octave-video-2.0.2/src/cap_ffmpeg_impl_ov.hpp
+===================================================================
+--- octave-video-2.0.2.orig/src/cap_ffmpeg_impl_ov.hpp
++++ octave-video-2.0.2/src/cap_ffmpeg_impl_ov.hpp
+@@ -110,6 +110,8 @@
+ #define CV_WARN(message) fprintf(stderr, "warning: %s (%s:%d)\n", message, 
__FILE__, __LINE__)
+ #endif
+ 
++#define FF_API_LOCKMGR 1
++
+ static int global_err;
+ 
+ std::string get_last_err_msg ()
+@@ -526,9 +528,9 @@
+     const char* get_video_codec_name () const
+       {
+ #if LIBAVFORMAT_BUILD > 4628
+-        return _opencv_avcodec_get_name(video_st->codec->codec_id);
++        return _opencv_avcodec_get_name(video_st->codecpar->codec_id);
+ #else
+-        return _opencv_avcodec_get_name(video_st->codec.codec_id);
++        return _opencv_avcodec_get_name(video_st->codecpar.codec_id);
+ #endif
+       }
+ 
+@@ -604,7 +606,6 @@
+ 
+ void CvCapture_FFMPEG::init()
+ {
+-    av_register_all();
+     ic = 0;
+     video_stream = -1;
+     video_st = 0;
+@@ -651,11 +652,13 @@
+ 
+     if( video_st )
+     {
++        AVCodecContext *codec;
++      avcodec_parameters_to_context(codec, video_st->codecpar);
+ #if LIBAVFORMAT_BUILD > 4628
+-        avcodec_close( video_st->codec );
++        avcodec_close( codec );
+ 
+ #else
+-        avcodec_close( &(video_st->codec) );
++        avcodec_close( &codec );
+ 
+ #endif
+         video_st = NULL;
+@@ -842,38 +845,6 @@
+ 
+ static ImplMutex _mutex;
+ 
+-static int LockCallBack(void **mutex, AVLockOp op)
+-{
+-    ImplMutex* localMutex = reinterpret_cast<ImplMutex*>(*mutex);
+-    switch (op)
+-    {
+-        case AV_LOCK_CREATE:
+-            localMutex = new ImplMutex();
+-            if (!localMutex)
+-                return 1;
+-            *mutex = localMutex;
+-            if (!*mutex)
+-                return 1;
+-        break;
+-
+-        case AV_LOCK_OBTAIN:
+-            localMutex->lock();
+-        break;
+-
+-        case AV_LOCK_RELEASE:
+-            localMutex->unlock();
+-        break;
+-
+-        case AV_LOCK_DESTROY:
+-            delete localMutex;
+-            localMutex = NULL;
+-            *mutex = NULL;
+-        break;
+-    }
+-    return 0;
+-}
+-
+-
+ static void ffmpeg_log_callback(void *ptr, int level, const char *fmt, 
va_list vargs)
+ {
+     static bool skip_header = false;
+@@ -900,12 +871,6 @@
+         avformat_network_init();
+ #endif
+ 
+-        /* register all codecs, demux and protocols */
+-        av_register_all();
+-
+-        /* register a callback function for synchronization */
+-        av_lockmgr_register(&LockCallBack);
+-
+ #ifndef NO_GETENV
+         char* debug_option = getenv("OPENCV_FFMPEG_DEBUG");
+         if (debug_option != NULL)
+@@ -919,10 +884,6 @@
+             av_log_set_level(AV_LOG_ERROR);
+         }
+     }
+-    ~InternalFFMpegRegister()
+-    {
+-        av_lockmgr_register(NULL);
+-    }
+ };
+ 
+ bool CvCapture_FFMPEG::open( const char* _filename )
+@@ -962,7 +923,7 @@
+ #else
+     av_dict_set(&dict, "rtsp_transport", "tcp", 0);
+ #endif
+-    AVInputFormat* input_format = NULL;
++    const AVInputFormat* input_format = NULL;
+     AVDictionaryEntry* entry = av_dict_get(dict, "input_format", NULL, 0);
+     if (entry != 0)
+     {
+@@ -994,7 +955,8 @@
+     for(i = 0; i < ic->nb_streams; i++)
+     {
+ #if LIBAVFORMAT_BUILD > 4628
+-        AVCodecContext *enc = ic->streams[i]->codec;
++        AVCodecContext *enc;
++      avcodec_parameters_to_context(enc, ic->streams[i]->codecpar);
+ #else
+         AVCodecContext *enc = &ic->streams[i]->codec;
+ #endif
+@@ -1015,7 +977,7 @@
+             int enc_width = enc->width;
+             int enc_height = enc->height;
+ 
+-            AVCodec *codec;
++            const AVCodec *codec;
+             if(av_dict_get(dict, "video_codec", NULL, 0) == NULL) {
+                 codec = avcodec_find_decoder(enc->codec_id);
+             } else {
+@@ -1119,7 +1081,12 @@
+         }
+ 
+         // Decode video frame
+-        #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
++        #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(59, 0, 0)
++            AVCodecContext *context;
++            avcodec_parameters_to_context(context, video_st->codecpar);
++            avcodec_send_packet(context, &packet);
++            avcodec_receive_frame(context, picture);
++        #elif LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
+             avcodec_decode_video2(video_st->codec, picture, &got_picture, 
&packet);
+         #elif LIBAVFORMAT_BUILD > 4628
+                 avcodec_decode_video(video_st->codec,
+@@ -1136,7 +1103,11 @@
+         {
+             //picture_pts = picture->best_effort_timestamp;
+             if( picture_pts == AV_NOPTS_VALUE_ )
++                #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(59, 0, 0)
++                picture_pts = picture->pkt_dts;
++                #else
+                 picture_pts = picture->pkt_pts != AV_NOPTS_VALUE_ && 
picture->pkt_pts != 0 ? picture->pkt_pts : picture->pkt_dts;
++                #endif
+ 
+             frame_number++;
+             valid = true;
+@@ -1168,18 +1139,18 @@
+         return false;
+ 
+     if( img_convert_ctx == NULL ||
+-        frame.width != video_st->codec->width ||
+-        frame.height != video_st->codec->height ||
++        frame.width != video_st->codecpar->width ||
++        frame.height != video_st->codecpar->height ||
+         frame.data == NULL )
+     {
+         // Some sws_scale optimizations have some assumptions about alignment 
of data/step/width/height
+         // Also we use coded_width/height to workaround problem with legacy 
ffmpeg versions (like n0.8)
+-        int buffer_width = video_st->codec->coded_width, buffer_height = 
video_st->codec->coded_height;
++        int buffer_width = video_st->codecpar->width, buffer_height = 
video_st->codecpar->height;
+ 
+         img_convert_ctx = sws_getCachedContext(
+                 img_convert_ctx,
+                 buffer_width, buffer_height,
+-                video_st->codec->pix_fmt,
++                (AVPixelFormat) video_st->codecpar->format,
+                 buffer_width, buffer_height,
+                 AV_PIX_FMT_BGR24,
+                 SWS_BICUBIC,
+@@ -1208,8 +1179,8 @@
+         _opencv_ffmpeg_av_image_fill_arrays(&rgb_picture, rgb_picture.data[0],
+                         AV_PIX_FMT_BGR24, buffer_width, buffer_height );
+ #endif
+-        frame.width = video_st->codec->width;
+-        frame.height = video_st->codec->height;
++        frame.width = video_st->codecpar->width;
++        frame.height = video_st->codecpar->height;
+         frame.cn = 3;
+         frame.data = rgb_picture.data[0];
+         frame.step = rgb_picture.linesize[0];
+@@ -1219,7 +1190,7 @@
+             img_convert_ctx,
+             picture->data,
+             picture->linesize,
+-            0, video_st->codec->coded_height,
++            0, video_st->codecpar->height,
+             rgb_picture.data,
+             rgb_picture.linesize
+             );
+@@ -1334,11 +1305,13 @@
+     }
+ #endif
+ 
++#if LIBAVFORMAT_BUILD <= CALC_FFMPEG_VERSION(59, 0, 0)
+     if (fps < eps_zero)
+     {
+-        fps = 1.0 / r2d(ic->streams[video_stream]->codec->time_base);
++        fps = 1.0 / r2d(ic->streams[video_stream]->codecpar->time_base);
+     }
+ #endif
++#endif
+     return fps;
+ }
+ 
+@@ -1383,7 +1356,9 @@
+         double  time_base  = r2d(ic->streams[video_stream]->time_base);
+         time_stamp += (int64_t)(sec / time_base + 0.5);
+         if (get_total_frames() > 1) av_seek_frame(ic, video_stream, 
time_stamp, AVSEEK_FLAG_BACKWARD);
+-        avcodec_flush_buffers(ic->streams[video_stream]->codec);
++      AVCodecContext *context;
++        avcodec_parameters_to_context(context, 
ic->streams[video_stream]->codecpar);
++        avcodec_flush_buffers(context);
+         if( _frame_number > 0 )
+         {
+             grabFrame();
+@@ -1499,7 +1474,7 @@
+     const char* get_video_codec_name () const
+       {
+ #if LIBAVFORMAT_BUILD > 4628
+-        return _opencv_avcodec_get_name(video_st->codec->codec_id);
++        return _opencv_avcodec_get_name(video_st->codecpar->codec_id);
+ #else
+         return _opencv_avcodec_get_name(video_st->codec.codec_id);
+ #endif
+@@ -1593,7 +1568,6 @@
+ 
+ void CvVideoWriter_FFMPEG::init()
+ {
+-    av_register_all();
+     fmt = 0;
+     oc = 0;
+     outbuf = 0;
+@@ -1659,7 +1633,6 @@
+     AVCodecContext *c;
+     AVStream *st;
+     int frame_rate, frame_rate_base;
+-    AVCodec *codec;
+ 
+ #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 10, 0)
+     st = avformat_new_stream(oc, 0);
+@@ -1673,13 +1646,13 @@
+     }
+ 
+ #if LIBAVFORMAT_BUILD > 4628
+-    c = st->codec;
++    avcodec_parameters_to_context(c, st->codecpar);
+ #else
+     c = &(st->codec);
+ #endif
+ 
+ #if LIBAVFORMAT_BUILD > 4621
+-    c->codec_id = av_guess_codec(oc->oformat, NULL, oc->filename, NULL, 
AVMEDIA_TYPE_VIDEO);
++    c->codec_id = av_guess_codec(oc->oformat, NULL, oc->url, NULL, 
AVMEDIA_TYPE_VIDEO);
+ #else
+     c->codec_id = oc->oformat->video_codec;
+ #endif
+@@ -1689,11 +1662,11 @@
+     }
+ 
+     //if(codec_tag) c->codec_tag=codec_tag;
+-    codec = avcodec_find_encoder(c->codec_id);
++    const AVCodec *codec = avcodec_find_encoder(c->codec_id);
+ 
+     c->codec_type = AVMEDIA_TYPE_VIDEO;
+ 
+-#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(54,25,0)
++#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(54,25,0) && LIBAVCODEC_BUILD < 
CALC_FFMPEG_VERSION(59, 0, 0)
+     // Set per-codec defaults
+     AVCodecID c_id = c->codec_id;
+     avcodec_get_context_defaults3(c, codec);
+@@ -1818,7 +1791,8 @@
+                                       AVFrame * picture )
+ {
+ #if LIBAVFORMAT_BUILD > 4628
+-    AVCodecContext * c = video_st->codec;
++    AVCodecContext * c;
++    avcodec_parameters_to_context(c, video_st->codecpar);
+ #else
+     AVCodecContext * c = &(video_st->codec);
+ #endif
+@@ -1845,7 +1819,10 @@
+         /* encode the image */
+         AVPacket pkt;
+         av_init_packet(&pkt);
+-#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(54, 1, 0)
++#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(59, 0, 0)
++      avcodec_send_frame(c, picture);
++      avcodec_receive_packet(c, &pkt);
++#elif LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(54, 1, 0)
+         int got_output = 0;
+         pkt.data = NULL;
+         pkt.size = 0;
+@@ -1914,7 +1891,8 @@
+ 
+     // typecast from opaque data type to implemented struct
+ #if LIBAVFORMAT_BUILD > 4628
+-    AVCodecContext *c = video_st->codec;
++    AVCodecContext *c;
++    avcodec_parameters_to_context(c, video_st->codecpar);
+ #else
+     AVCodecContext *c = &(video_st->codec);
+ #endif
+@@ -2032,7 +2010,7 @@
+ 
+     // free pictures
+ #if LIBAVFORMAT_BUILD > 4628
+-    if( video_st->codec->pix_fmt != input_pix_fmt)
++    if( video_st->codecpar->format != input_pix_fmt)
+ #else
+     if( video_st->codec.pix_fmt != input_pix_fmt)
+ #endif
+@@ -2048,7 +2026,9 @@
+ 
+     /* close codec */
+ #if LIBAVFORMAT_BUILD > 4628
+-    avcodec_close(video_st->codec);
++    AVCodecContext *context;
++    avcodec_parameters_to_context(context, video_st->codecpar);
++    avcodec_close(context);
+ #else
+     avcodec_close(&(video_st->codec));
+ #endif
+@@ -2148,8 +2128,10 @@
+         return false;
+ 
+     /* auto detect the output format from the name and fourcc code. */
+-
+-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
++#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(59, 0, 0)
++    const AVOutputFormat *format = av_guess_format(NULL, filename, NULL);
++    *fmt = *format;
++#elif LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
+     fmt = av_guess_format(NULL, filename, NULL);
+ #else
+     fmt = guess_format(NULL, filename, NULL);
+@@ -2233,7 +2215,11 @@
+ 
+     /* set file name */
+     oc->oformat = fmt;
++#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(59, 0, 0)
++    snprintf(oc->url, sizeof(oc->url), "%s", filename);
++#else
+     snprintf(oc->filename, sizeof(oc->filename), "%s", filename);
++#endif
+ 
+     /* set some options */
+     oc->max_delay = (int)(0.7*AV_TIME_BASE);  /* This reduces buffer underrun 
warnings with MPEG */
+@@ -2377,18 +2363,17 @@
+         return false;
+     }
+ 
+-    AVCodec *codec;
+     AVCodecContext *c;
+ 
+ #if LIBAVFORMAT_BUILD > 4628
+-    c = (video_st->codec);
++    avcodec_parameters_to_context(c, video_st->codecpar);
+ #else
+     c = &(video_st->codec);
+ #endif
+ 
+     c->codec_tag = fourcc;
+     /* find the video encoder */
+-    codec = avcodec_find_encoder(c->codec_id);
++    const AVCodec *codec = avcodec_find_encoder(c->codec_id);
+     if (!codec) {
+         fprintf(stderr, "Could not find encoder for codec id %d: %s\n", 
c->codec_id, icvFFMPEGErrStr(
+         #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
+Index: octave-video-2.0.2/src/cap_ffmpeg_wrapper.cc
+===================================================================
+--- octave-video-2.0.2.orig/src/cap_ffmpeg_wrapper.cc
++++ octave-video-2.0.2/src/cap_ffmpeg_wrapper.cc
+@@ -58,17 +58,30 @@
+ undocumented internal function\n\
+ @end deftypefn")
+ {
++#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(59,0,0)
++  void *fmt_iter = NULL;
++#else
+   av_register_all();
++#endif
+ 
+   octave_idx_type n = 0;
+ 
+   // first loop to get numer of output formats
++#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(59,0,0)
++  const AVOutputFormat * oformat = NULL;
++  while (oformat = av_muxer_iterate(&fmt_iter))
++    {
++      n++;
++      oformat = av_muxer_iterate(&fmt_iter);
++    }
++#else
+   AVOutputFormat * oformat = av_oformat_next(NULL);
+   while (oformat != NULL)
+     {
+       n++;
+       oformat = av_oformat_next (oformat);
+     }
++#endif
+ 
+   Cell names (n, 1);
+   Cell long_names (n, 1);
+@@ -77,7 +90,13 @@
+   Cell codecs (n, 1);
+ 
+   // second loop, now fill the cells
++#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(59,0,0)
++  // restart the iterator at NULL
++  fmt_iter = NULL;
++  oformat = av_muxer_iterate(&fmt_iter);
++#else
+   oformat = av_oformat_next(NULL);
++#endif
+   int i = 0;
+   while(oformat != NULL)
+     {
+@@ -141,7 +160,11 @@
+           }
+         }
+ 
++#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(59,0,0)
++      oformat = av_muxer_iterate(&fmt_iter);
++#else
+       oformat = av_oformat_next(oformat);
++#endif
+       i++;
+     }
+ 
+@@ -413,7 +436,9 @@
+     {
+       CvVideoWriter_FFMPEG::register_type();
+       writer_type_loaded = true;
++#if LIBAVCODEC_BUILD < CALC_FFMPEG_VERSION(59,0,0)
+       av_register_all();
++#endif
+     }
+ 
+   std::string filename = args(0).string_value ();
+@@ -432,6 +457,9 @@
+   if (fourcc.size () == 0)
+     {
+       // get tag for default codec for guessed container from filename
++#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(59,0,0)
++      const
++#endif
+       AVOutputFormat* foo = av_guess_format   (NULL, filename.c_str (), NULL);
+ 
+       // list supported codecs for guessed format
+Index: octave-video-2.0.2/src/ffmpeg_codecs.hpp
+===================================================================
+--- octave-video-2.0.2.orig/src/ffmpeg_codecs.hpp
++++ octave-video-2.0.2/src/ffmpeg_codecs.hpp
+@@ -77,71 +77,6 @@
+     unsigned int tag;
+ } AVCodecTag;
+ 
+-#if (LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(54, 51, 100))
+-#define AV_CODEC_ID_H264 CODEC_ID_H264
+-#define AV_CODEC_ID_H263 CODEC_ID_H263
+-#define AV_CODEC_ID_H263P CODEC_ID_H263P
+-#define AV_CODEC_ID_H263I CODEC_ID_H263I
+-#define AV_CODEC_ID_H261 CODEC_ID_H261
+-#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
+-#define AV_CODEC_ID_MSMPEG4V3 CODEC_ID_MSMPEG4V3
+-#define AV_CODEC_ID_MSMPEG4V2 CODEC_ID_MSMPEG4V2
+-#define AV_CODEC_ID_MSMPEG4V1 CODEC_ID_MSMPEG4V1
+-#define AV_CODEC_ID_WMV1 CODEC_ID_WMV1
+-#define AV_CODEC_ID_WMV2 CODEC_ID_WMV1
+-#define AV_CODEC_ID_DVVIDEO CODEC_ID_DVVIDEO
+-#define AV_CODEC_ID_MPEG1VIDEO CODEC_ID_MPEG1VIDEO
+-#define AV_CODEC_ID_MPEG2VIDEO CODEC_ID_MPEG2VIDEO
+-#define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG
+-#define AV_CODEC_ID_LJPEG CODEC_ID_LJPEG
+-#define AV_CODEC_ID_HUFFYUV CODEC_ID_HUFFYUV
+-#define AV_CODEC_ID_FFVHUFF CODEC_ID_FFVHUFF
+-#define AV_CODEC_ID_CYUV CODEC_ID_CYUV
+-#define AV_CODEC_ID_RAWVIDEO CODEC_ID_RAWVIDEO
+-#define AV_CODEC_ID_INDEO3 CODEC_ID_INDEO3
+-#define AV_CODEC_ID_VP3 CODEC_ID_VP3
+-#define AV_CODEC_ID_ASV1 CODEC_ID_ASV1
+-#define AV_CODEC_ID_ASV2 CODEC_ID_ASV2
+-#define AV_CODEC_ID_VCR1 CODEC_ID_VCR1
+-#define AV_CODEC_ID_FFV1 CODEC_ID_FFV1
+-#define AV_CODEC_ID_XAN_WC4 CODEC_ID_XAN_WC4
+-#define AV_CODEC_ID_MSRLE CODEC_ID_MSRLE
+-#define AV_CODEC_ID_MSVIDEO1 CODEC_ID_MSVIDEO1
+-#define AV_CODEC_ID_CINEPAK CODEC_ID_CINEPAK
+-#define AV_CODEC_ID_TRUEMOTION1 CODEC_ID_TRUEMOTION1
+-#define AV_CODEC_ID_MSZH CODEC_ID_MSZH
+-#define AV_CODEC_ID_ZLIB CODEC_ID_ZLIB
+-#define AV_CODEC_ID_SNOW CODEC_ID_SNOW
+-#define AV_CODEC_ID_4XM CODEC_ID_4XM
+-#define AV_CODEC_ID_FLV1 CODEC_ID_FLV1
+-#define AV_CODEC_ID_SVQ1 CODEC_ID_SVQ1
+-#define AV_CODEC_ID_TSCC CODEC_ID_TSCC
+-#define AV_CODEC_ID_ULTI CODEC_ID_ULTI
+-#define AV_CODEC_ID_VIXL CODEC_ID_VIXL
+-#define AV_CODEC_ID_QPEG CODEC_ID_QPEG
+-#define AV_CODEC_ID_WMV3 CODEC_ID_WMV3
+-#define AV_CODEC_ID_LOCO CODEC_ID_LOCO
+-#define AV_CODEC_ID_THEORA CODEC_ID_THEORA
+-#define AV_CODEC_ID_WNV1 CODEC_ID_WNV1
+-#define AV_CODEC_ID_AASC CODEC_ID_AASC
+-#define AV_CODEC_ID_INDEO2 CODEC_ID_INDEO2
+-#define AV_CODEC_ID_FRAPS CODEC_ID_FRAPS
+-#define AV_CODEC_ID_TRUEMOTION2 CODEC_ID_TRUEMOTION2
+-#define AV_CODEC_ID_FLASHSV CODEC_ID_FLASHSV
+-#define AV_CODEC_ID_JPEGLS CODEC_ID_JPEGLS
+-#define AV_CODEC_ID_VC1 CODEC_ID_VC1
+-#define AV_CODEC_ID_CSCD CODEC_ID_CSCD
+-#define AV_CODEC_ID_ZMBV CODEC_ID_ZMBV
+-#define AV_CODEC_ID_KMVC CODEC_ID_KMVC
+-#define AV_CODEC_ID_VP5 CODEC_ID_VP5
+-#define AV_CODEC_ID_VP6 CODEC_ID_VP6
+-#define AV_CODEC_ID_VP6F CODEC_ID_VP6F
+-#define AV_CODEC_ID_JPEG2000 CODEC_ID_JPEG2000
+-#define AV_CODEC_ID_VMNC CODEC_ID_VMNC
+-#define AV_CODEC_ID_TARGA CODEC_ID_TARGA
+-#define AV_CODEC_ID_NONE CODEC_ID_NONE
+-#endif
+-
+ const AVCodecTag codec_bmp_tags[] = {
+     { AV_CODEC_ID_H264, MKTAG('H', '2', '6', '4') },
+     { AV_CODEC_ID_H264, MKTAG('h', '2', '6', '4') },
diff -Nru octave-video-2.0.2/debian/patches/series 
octave-video-2.0.2/debian/patches/series
--- octave-video-2.0.2/debian/patches/series    2021-12-01 10:20:27.000000000 
-0600
+++ octave-video-2.0.2/debian/patches/series    2022-08-01 14:19:15.000000000 
-0500
@@ -1 +1,2 @@
 use-cxxflags.patch
+ffmpeg5.patch

Reply via email to