community/guvcview to 2.0.7-4

This commit is contained in:
Kevin Mihelich 2022-02-17 19:30:10 +00:00
parent df6296a4cd
commit efd4d0e348
2 changed files with 121 additions and 3 deletions

View file

@ -8,7 +8,7 @@
pkgbase=guvcview pkgbase=guvcview
pkgname=(guvcview guvcview-common guvcview-qt) pkgname=(guvcview guvcview-common guvcview-qt)
pkgver=2.0.7 pkgver=2.0.7
pkgrel=3 pkgrel=4
pkgdesc='Simple interface for capturing and viewing video from v4l2 devices' pkgdesc='Simple interface for capturing and viewing video from v4l2 devices'
arch=('x86_64') arch=('x86_64')
url='http://guvcview.sourceforge.net/' url='http://guvcview.sourceforge.net/'
@ -17,9 +17,11 @@ depends=('ffmpeg' 'gsl' 'gtk3' 'qt5-base' 'portaudio')
makedepends=('intltool') makedepends=('intltool')
options=('!emptydirs' '!distcc') options=('!emptydirs' '!distcc')
source=("https://downloads.sourceforge.net/$pkgbase/$pkgbase-src-$pkgver-2.tar.bz2" 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' sha256sums=('f0d1d7814597d42fddf1655f3654f74efd9f27e35bbe39ee4f0d42683de85c98'
'd9c65a9bf53eb28c48f9a9126035f5ebe520923124eae507d1cb2994e2a0d08f') 'd9c65a9bf53eb28c48f9a9126035f5ebe520923124eae507d1cb2994e2a0d08f'
'dbd24333d2a2ff02759e5bc21c0088382d093065a485376e8ee037809e066001')
noextract=($pkgbase-src-$pkgver-2.tar.bz2) # missing root dir noextract=($pkgbase-src-$pkgver-2.tar.bz2) # missing root dir
prepare() { prepare() {
@ -30,6 +32,9 @@ prepare() {
# Update AppStream metadata to a newer version # Update AppStream metadata to a newer version
patch -Np1 -i ../0001-Update-AppStream-metadata-to-a-newer-version.patch patch -Np1 -i ../0001-Update-AppStream-metadata-to-a-newer-version.patch
# Fix build with FFmpeg 5
patch -p1 -i ../ffmpeg5.patch
autoreconf -fi autoreconf -fi
cd .. cd ..

View file

@ -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);