Date: Thursday, January 27, 2022 @ 19:48:08
  Author: arojas
Revision: 1117445

ffmpeg 5 rebuild

Added:
  guvcview/trunk/ffmpeg5.patch
Modified:
  guvcview/trunk/PKGBUILD

---------------+
 PKGBUILD      |   11 +++--
 ffmpeg5.patch |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 121 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-01-27 19:48:03 UTC (rev 1117444)
+++ PKGBUILD    2022-01-27 19:48:08 UTC (rev 1117445)
@@ -5,7 +5,7 @@
 pkgbase=guvcview
 pkgname=(guvcview guvcview-common guvcview-qt)
 pkgver=2.0.7
-pkgrel=3
+pkgrel=4
 pkgdesc='Simple interface for capturing and viewing video from v4l2 devices'
 arch=('x86_64')
 url='http://guvcview.sourceforge.net/'
@@ -14,9 +14,11 @@
 makedepends=('intltool')
 options=('!emptydirs')
 
source=("https://downloads.sourceforge.net/$pkgbase/$pkgbase-src-$pkgver-2.tar.bz2";
-        '0001-Update-AppStream-metadata-to-a-newer-version.patch')
+        '0001-Update-AppStream-metadata-to-a-newer-version.patch'
+        'ffmpeg5.patch')
 sha256sums=('f0d1d7814597d42fddf1655f3654f74efd9f27e35bbe39ee4f0d42683de85c98'
-            'd9c65a9bf53eb28c48f9a9126035f5ebe520923124eae507d1cb2994e2a0d08f')
+            'd9c65a9bf53eb28c48f9a9126035f5ebe520923124eae507d1cb2994e2a0d08f'
+            'dbd24333d2a2ff02759e5bc21c0088382d093065a485376e8ee037809e066001')
 noextract=($pkgbase-src-$pkgver-2.tar.bz2) # missing root dir
 
 prepare() {
@@ -27,6 +29,9 @@
   # Update AppStream metadata to a newer version
   patch -Np1 -i ../0001-Update-AppStream-metadata-to-a-newer-version.patch
 
+  # Fix build with FFmpeg 5
+  patch -p1 -i ../ffmpeg5.patch
+
   autoreconf -fi
 
   cd ..

Added: ffmpeg5.patch
===================================================================
--- ffmpeg5.patch                               (rev 0)
+++ ffmpeg5.patch       2022-01-27 19:48:08 UTC (rev 1117445)
@@ -0,0 +1,113 @@
+diff --git a/gview_encoder/audio_codecs.c b/gview_encoder/audio_codecs.c
+index 9050ac9..12f5850 100644
+--- a/gview_encoder/audio_codecs.c
++++ b/gview_encoder/audio_codecs.c
+@@ -409,7 +409,7 @@ int encoder_set_valid_audio_codec_list ()
+       int num_codecs = 0;
+       for ( ind = 0; ind < encoder_get_audio_codec_list_size(); ++ind)
+       {
+-              AVCodec *codec = 
avcodec_find_encoder(listSupCodecs[ind].codec_id);
++              const AVCodec *codec = 
avcodec_find_encoder(listSupCodecs[ind].codec_id);
+               if (!codec)
+               {
+                       printf("ENCODER: no audio codec detected for %s\n", 
listSupCodecs[ind].description);
+diff --git a/gview_encoder/encoder.c b/gview_encoder/encoder.c
+index 8179bf0..fa10a89 100644
+--- a/gview_encoder/encoder.c
++++ b/gview_encoder/encoder.c
+@@ -223,7 +223,7 @@ void __attribute__ ((destructor)) gviewencoder_fini()
+  *
+  * returns: 1 - sample format is supported; 0 - is not supported
+  */
+-static int encoder_check_audio_sample_fmt(AVCodec *codec, enum AVSampleFormat 
sample_fmt)
++static int encoder_check_audio_sample_fmt(const AVCodec *codec, enum 
AVSampleFormat sample_fmt)
+ {
+       const enum AVSampleFormat *p = codec->sample_fmts;
+ 
+@@ -446,10 +446,6 @@ static encoder_video_context_t 
*encoder_video_init(encoder_context_t *encoder_ct
+ 
+       video_codec_data->codec_context = 
avcodec_alloc_context3(video_codec_data->codec);
+ 
+-      avcodec_get_context_defaults3 (
+-                      video_codec_data->codec_context,
+-                      video_codec_data->codec);
+-
+       if(video_codec_data->codec_context == NULL)
+       {
+               fprintf(stderr, "ENCODER: FATAL memory allocation failure 
(encoder_video_init): %s\n", strerror(errno));
+@@ -712,7 +708,6 @@ static encoder_audio_context_t 
*encoder_audio_init(encoder_context_t *encoder_ct
+       }
+ 
+       audio_codec_data->codec_context = 
avcodec_alloc_context3(audio_codec_data->codec);
+-      avcodec_get_context_defaults3 (audio_codec_data->codec_context, 
audio_codec_data->codec);
+ 
+       if(audio_codec_data->codec_context == NULL)
+       {
+diff --git a/gview_encoder/encoder.h b/gview_encoder/encoder.h
+index 11c9522..a5697c1 100644
+--- a/gview_encoder/encoder.h
++++ b/gview_encoder/encoder.h
+@@ -130,7 +130,7 @@
+  */
+ typedef struct _encoder_codec_data_t
+ {
+-      AVCodec *codec;
++      const AVCodec *codec;
+       AVDictionary *private_options;
+       AVCodecContext *codec_context;
+       AVFrame *frame;
+diff --git a/gview_encoder/video_codecs.c b/gview_encoder/video_codecs.c
+index ae86c3f..30e757b 100644
+--- a/gview_encoder/video_codecs.c
++++ b/gview_encoder/video_codecs.c
+@@ -974,7 +974,7 @@ int encoder_set_valid_video_codec_list ()
+       int num_codecs = 1; /*raw codec (no encoding) is always valid*/
+       for ( ind = 1; ind < encoder_get_video_codec_list_size(); ++ind)
+       {
+-              AVCodec *codec = 
avcodec_find_encoder(listSupCodecs[ind].codec_id);
++              const AVCodec *codec = 
avcodec_find_encoder(listSupCodecs[ind].codec_id);
+               if (!codec)
+               {
+                       printf("ENCODER: no video codec detected for %s\n", 
listSupCodecs[ind].description);
+diff --git a/gview_v4l2core/jpeg_decoder.c b/gview_v4l2core/jpeg_decoder.c
+index 8e9cf6b..82ff633 100644
+--- a/gview_v4l2core/jpeg_decoder.c
++++ b/gview_v4l2core/jpeg_decoder.c
+@@ -1350,7 +1350,7 @@ void jpeg_close_decoder()
+ 
+ typedef struct _codec_data_t
+ {
+-      AVCodec *codec;
++      const AVCodec *codec;
+       AVCodecContext *context;
+       AVFrame *picture;
+ } codec_data_t;
+@@ -1409,7 +1409,6 @@ int jpeg_init_decoder(int width, int height)
+ 
+ #if LIBAVCODEC_VER_AT_LEAST(53,6)
+       codec_data->context = avcodec_alloc_context3(codec_data->codec);
+-      avcodec_get_context_defaults3 (codec_data->context, codec_data->codec);
+ #else
+       codec_data->context = avcodec_alloc_context();
+       avcodec_get_context_defaults(codec_data->context);
+diff --git a/gview_v4l2core/uvc_h264.c b/gview_v4l2core/uvc_h264.c
+index f526b1e..e3ff5f1 100644
+--- a/gview_v4l2core/uvc_h264.c
++++ b/gview_v4l2core/uvc_h264.c
+@@ -47,7 +47,7 @@ extern int verbosity;
+ 
+ typedef struct _h264_decoder_context_t
+ {
+-      AVCodec *codec;
++      const AVCodec *codec;
+       AVCodecContext *context;
+       AVFrame *picture;
+ 
+@@ -1004,7 +1004,6 @@ int h264_init_decoder(int width, int height)
+ 
+ #if LIBAVCODEC_VER_AT_LEAST(53,6)
+       h264_ctx->context = avcodec_alloc_context3(h264_ctx->codec);
+-      avcodec_get_context_defaults3 (h264_ctx->context, h264_ctx->codec);
+ #else
+       h264_ctx->context = avcodec_alloc_context();
+       avcodec_get_context_defaults(h264_ctx->context);

Reply via email to