diff --git a/abi_used_libs b/abi_used_libs
--- a/abi_used_libs
+++ b/abi_used_libs
@@ -1,6 +1,6 @@
libSDL2-2.0.so.0
-libavcodec.so.57
-libavutil.so.55
+libavcodec.so.58
+libavutil.so.56
libc.so.6
libgdk-3.so.0
libglib-2.0.so.0
diff --git a/files/ffmpeg4.patch b/files/ffmpeg4.patch
new file mode 100644
--- /dev/null
+++ b/files/ffmpeg4.patch
@@ -0,0 +1,219 @@
+Index: guvcview-src-2.0.5/guvcview/gui_gtk3_callbacks.c
+===================================================================
+--- guvcview-src-2.0.5.orig/guvcview/gui_gtk3_callbacks.c
++++ guvcview-src-2.0.5/guvcview/gui_gtk3_callbacks.c
+@@ -2158,9 +2158,9 @@
+ gtk_grid_attach (GTK_GRID(table), lbl_me_method, 0, line, 1 ,1);
+ gtk_widget_show (lbl_me_method);
+
+- GtkWidget *me_method = gtk_spin_button_new_with_range(1,10,1);
++ GtkWidget *me_method = gtk_entry_new();
+ gtk_editable_set_editable(GTK_EDITABLE(me_method),TRUE);
+- gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_method), defaults->me_method);
++ gtk_entry_set_text(me_method, defaults->me_method);
+
+ gtk_grid_attach (GTK_GRID(table), me_method, 1, line, 1 ,1);
+ gtk_widget_show (me_method);
+@@ -2246,7 +2246,7 @@
+ defaults->qblur = (float) gtk_spin_button_get_value (GTK_SPIN_BUTTON(qblur));
+ defaults->subq = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(subq));
+ defaults->framerefs = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(framerefs));
+- defaults->me_method = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_method));
++ defaults->me_method = gtk_entry_get_text (me_method);
+ defaults->mb_decision = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(mb_decision));
+ defaults->max_b_frames = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(max_b_frames));
+ defaults->num_threads = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(num_threads));Index: guvcview-src-2.0.5/guvcview/gui_qt5_callbacks.cpp
+===================================================================
+--- guvcview-src-2.0.5.orig/guvcview/gui_qt5_callbacks.cpp
++++ guvcview-src-2.0.5/guvcview/gui_qt5_callbacks.cpp
+@@ -1590,10 +1590,8 @@ void MainWindow::video_codec_properties(
+ framerefs->setValue(defaults->framerefs);
+ form.addRow(_("framerefs: "), framerefs);
+ /*me method*/
+- QSpinBox *me_method = new QSpinBox(&dialog);
+- me_method->setRange(1, 10);
+- me_method->setSingleStep(1);
+- me_method->setValue(defaults->me_method);
++ QLabel *me_method = new QLabel(&dialog);
++ me_method->setText(defaults->me_method);
+ form.addRow(_("me method: "), me_method);
+ /*mb decision*/
+ QSpinBox *mb_decision = new QSpinBox(&dialog);
+@@ -1645,7 +1643,7 @@ void MainWindow::video_codec_properties(
+ defaults->qblur = qblur->value();
+ defaults->subq = subq->value();
+ defaults->framerefs = framerefs->value();
+- defaults->me_method = me_method->value();
++ defaults->me_method = me_method->text().toLatin1().data();
+ defaults->mb_decision = mb_decision->value();
+ defaults->max_b_frames = max_b_frames->value();
+ defaults->num_threads = num_threads->value();
+Index: guvcview-src-2.0.5/gview_encoder/encoder.c
+===================================================================
+--- guvcview-src-2.0.5.orig/gview_encoder/encoder.c
++++ guvcview-src-2.0.5/gview_encoder/encoder.c
+@@ -445,10 +445,8 @@ static encoder_video_context_t *encoder_
+ #if !LIBAVCODEC_VER_AT_LEAST(56,60)
+ video_codec_data->codec_context->me_method = video_defaults->me_method;
+ #else
+- if( video_defaults->codec_id == AV_CODEC_ID_H264 && video_defaults->me_method > 4)
+- video_defaults->me_method = X264_ME_HEX;
+-
+- av_dict_set_int(&video_codec_data->private_options, "motion-est", video_defaults->me_method, 0);
++ if(video_defaults->me_method)
++ av_dict_set(&video_codec_data->private_options, "motion-est", video_defaults->me_method, 0);
+ #endif
+
+ #if !LIBAVCODEC_VER_AT_LEAST(57,00)
+Index: guvcview-src-2.0.5/gview_encoder/gviewencoder.h
+===================================================================
+--- guvcview-src-2.0.5.orig/gview_encoder/gviewencoder.h
++++ guvcview-src-2.0.5/gview_encoder/gviewencoder.h
+@@ -104,7 +104,7 @@ typedef struct _video_codec_t
+ char codec_name[20]; //lavc codec_name
+ int mb_decision; //lavc mb_decision
+ int trellis; //lavc trellis quantization
+- int me_method; //lavc motion estimation method
++ const char* me_method; //lavc motion estimation method
+ int mpeg_quant; //lavc mpeg quantization
+ int max_b_frames; //lavc max b frames
+ int num_threads; //lavc num threads
+Index: guvcview-src-2.0.5/gview_encoder/video_codecs.c
+===================================================================
+--- guvcview-src-2.0.5.orig/gview_encoder/video_codecs.c
++++ guvcview-src-2.0.5/gview_encoder/video_codecs.c
+@@ -97,7 +97,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "none",
+ .mb_decision = 0,
+ .trellis = 0,
+- .me_method = 0,
++ .me_method = NULL,
+ .mpeg_quant = 0,
+ .max_b_frames = 0,
+ .num_threads = 0,
+@@ -133,7 +133,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "mjpeg",
+ .mb_decision = 0,
+ .trellis = 0,
+- .me_method = ME_EPZS,
++ .me_method = "epsz",
+ .mpeg_quant = 0,
+ .max_b_frames = 0,
+ .num_threads = 0,
+@@ -169,7 +169,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "mpeg1video",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 1,
+- .me_method = ME_EPZS,
++ .me_method = "epsz",
+ .mpeg_quant = 0,
+ .max_b_frames = 0,
+ .num_threads = 1,
+@@ -205,11 +205,11 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "flv",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 1,
+- .me_method = ME_EPZS,
++ .me_method = "epsz",
+ .mpeg_quant = 0,
+ .max_b_frames = 0,
+ .num_threads = 1,
+- .flags = CODEC_FLAG_4MV
++ .flags = AV_CODEC_FLAG_4MV
+ },
+ {
+ .valid = 1,
+@@ -241,7 +241,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "wmv1",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 1,
+- .me_method = ME_EPZS,
++ .me_method = "epsz",
+ .mpeg_quant = 0,
+ .max_b_frames = 0,
+ .num_threads = 1,
+@@ -277,7 +277,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "mpeg2video",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 1,
+- .me_method = ME_EPZS,
++ .me_method = "epsz",
+ .mpeg_quant = 0,
+ .max_b_frames = 0,
+ .num_threads = 1,
+@@ -313,7 +313,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "msmpeg4v3",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 1,
+- .me_method = ME_EPZS,
++ .me_method = "epsz",
+ .mpeg_quant = 0,
+ .max_b_frames = 0,
+ .num_threads = 1,
+@@ -349,7 +349,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "mpeg4",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 1,
+- .me_method = ME_EPZS,
++ .me_method = "epsz",
+ .mpeg_quant = 1,
+ .max_b_frames = 0,
+ .num_threads = 1,
+@@ -385,7 +385,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "libx264",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 0,
+- .me_method = X264_ME_HEX,
++ .me_method = "hex",
+ .mpeg_quant = 1,
+ .max_b_frames = 16,
+ .num_threads = 4,
+@@ -426,7 +426,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "libx265",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 0,
+- .me_method = ME_HEX,
++ .me_method = "hex",
+ .mpeg_quant = 1,
+ .max_b_frames = 16,
+ .num_threads = 4,
+@@ -463,7 +463,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "libvpx_vp8",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 0,
+- .me_method = ME_HEX,
++ .me_method = "hex",
+ .mpeg_quant = 1,
+ .max_b_frames = 0,
+ .num_threads = 4,
+@@ -500,7 +500,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "libvpx_vp9",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 0,
+- .me_method = ME_HEX,
++ .me_method = "hex",
+ .mpeg_quant = 1,
+ .max_b_frames = 16,
+ .num_threads = 4,
+@@ -537,7 +537,7 @@ static video_codec_t listSupCodecs[] =
+ .codec_name = "libtheora",
+ .mb_decision = FF_MB_DECISION_RD,
+ .trellis = 0,
+- .me_method = ME_HEX,
++ .me_method = "hex",
+ .mpeg_quant = 1,
+ .max_b_frames = 0,
+ .num_threads = 4,
+Index: guvcview-src-2.0.5/gview_v4l2core/uvc_h264.c
+===================================================================
+--- guvcview-src-2.0.5.orig/gview_v4l2core/uvc_h264.c
++++ guvcview-src-2.0.5/gview_v4l2core/uvc_h264.c
+@@ -1039,7 +1039,7 @@ int h264_init_decoder(int width, int hei
+ exit(-1);
+ }
+
+- h264_ctx->context->flags2 |= CODEC_FLAG2_FAST;
++ h264_ctx->context->flags2 |= AV_CODEC_FLAG2_FAST;
+ h264_ctx->context->pix_fmt = AV_PIX_FMT_YUV420P;
+ h264_ctx->context->width = width;
+ h264_ctx->context->height = height;
diff --git a/package.yml b/package.yml
--- a/package.yml
+++ b/package.yml
@@ -1,10 +1,10 @@
name : guvcview
version : 2.0.5
-release : 13
+release : 14
source :
- https://jaist.dl.sourceforge.net/project/guvcview/source/guvcview-src-2.0.5.tar.gz : a86beb5993a8449ed3cbcc6ec2a238ef0b90138b6cbe2afab4456d37f44c41a0
homepage : http://guvcview.sourceforge.net/
-license : GPL-2.0
+license : GPL-2.0-or-later
component : multimedia.video
summary : Simple GTK interface for capturing and viewing video from devices
description: |
@@ -22,6 +22,8 @@
- pkgconfig(portaudio-2.0)
- pkgconfig(sdl2)
setup : |
+ %patch -p1 < $pkgfiles/ffmpeg4.patch
+
%configure --disable-static
build : |
%make
diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml
--- a/pspec_x86_64.xml
+++ b/pspec_x86_64.xml
@@ -6,7 +6,7 @@
Pierre-Yves
pyu@riseup.net
- GPL-2.0
+ GPL-2.0-or-later
multimedia.video
Simple GTK interface for capturing and viewing video from devices
Simple GTK interface for capturing and viewing video from devices
@@ -20,13 +20,75 @@
multimedia.video
- /usr/bin
- /usr/lib64/lib*.so.*
+ /usr/bin/guvcview
+ /usr/lib64/libgviewaudio-2.0.so.2
+ /usr/lib64/libgviewaudio-2.0.so.2.0.0
+ /usr/lib64/libgviewencoder-2.0.so.2
+ /usr/lib64/libgviewencoder-2.0.so.2.0.0
+ /usr/lib64/libgviewrender-2.0.so.2
+ /usr/lib64/libgviewrender-2.0.so.2.0.0
+ /usr/lib64/libgviewv4l2core-2.0.so.2
+ /usr/lib64/libgviewv4l2core-2.0.so.2.0.0
/usr/share/appdata/guvcview.appdata.xml
/usr/share/applications/guvcview.desktop
- /usr/share/doc
- /usr/share/locale
- /usr/share/man
+ /usr/share/doc/guvcview/AUTHORS
+ /usr/share/doc/guvcview/COPYING
+ /usr/share/doc/guvcview/ChangeLog
+ /usr/share/doc/guvcview/INSTALL
+ /usr/share/doc/guvcview/README.md
+ /usr/share/locale/bg/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/bg/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/bs/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/bs/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/cs/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/cs/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/da/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/da/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/de/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/de/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/en_AU/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/en_AU/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/es/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/es/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/eu/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/eu/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/fo/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/fo/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/fr/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/fr/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/gl/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/gl/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/he/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/he/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/hr/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/hr/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/it/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/it/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/ja/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/ja/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/lv/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/lv/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/nl/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/nl/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/pl/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/pl/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/pt/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/pt/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/pt_BR/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/pt_BR/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/ru/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/ru/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/si/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/si/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/sr/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/sr/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/tr/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/tr/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/uk/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/uk/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/locale/zh_TW/LC_MESSAGES/guvcview.mo
+ /usr/share/locale/zh_TW/LC_MESSAGES/gview_v4l2core.mo
+ /usr/share/man/man1/guvcview.1
/usr/share/menu/guvcview
/usr/share/pixmaps/guvcview/audio_controls.png
/usr/share/pixmaps/guvcview/camera.png
@@ -44,17 +106,27 @@
programming.devel
- guvcview
+ guvcview
- /usr/include/
- /usr/lib64/lib*.so
- /usr/lib64/pkgconfig/*.pc
+ /usr/include/guvcview-2/libgviewaudio/gviewaudio.h
+ /usr/include/guvcview-2/libgviewencoder/gviewencoder.h
+ /usr/include/guvcview-2/libgviewrender/gviewrender.h
+ /usr/include/guvcview-2/libgviewv4l2core/gview.h
+ /usr/include/guvcview-2/libgviewv4l2core/gviewv4l2core.h
+ /usr/lib64/libgviewaudio.so
+ /usr/lib64/libgviewencoder.so
+ /usr/lib64/libgviewrender.so
+ /usr/lib64/libgviewv4l2core.so
+ /usr/lib64/pkgconfig/libgviewaudio.pc
+ /usr/lib64/pkgconfig/libgviewencoder.pc
+ /usr/lib64/pkgconfig/libgviewrender.pc
+ /usr/lib64/pkgconfig/libgviewv4l2core.pc
-
- 2018-04-30
+
+ 2018-08-10
2.0.5
Packaging update
Pierre-Yves