commit 913999f7f8c3e9601e24a9b67d2120e2bdbbd26e
Author: Jan Palus <[email protected]>
Date:   Tue Apr 24 16:19:49 2018 +0200

    new patch from Arch to fix build with ffmpeg 4

 ffmpeg4.patch | 219 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 guvcview.spec |   2 +
 2 files changed, 221 insertions(+)
---
diff --git a/guvcview.spec b/guvcview.spec
index 91a4a91..f442618 100644
--- a/guvcview.spec
+++ b/guvcview.spec
@@ -11,6 +11,7 @@ License:      GPL v3
 Group:         Applications/Multimedia
 Source0:       
http://downloads.sourceforge.net/guvcview/%{name}-src-%{version}.tar.gz
 # Source0-md5: f4d238ccd26e126ae6e8e6bd4a052bfc
+Patch0:                ffmpeg4.patch
 URL:           http://guvcview.sourceforge.net/
 BuildRequires: SDL2-devel >= 2.0
 BuildRequires: autoconf >= 2.50
@@ -67,6 +68,7 @@ Statyczne biblioteki guvcview.
 
 %prep
 %setup -q -n %{name}-src-%{version}
+%patch0 -p1
 
 %build
 %{__libtoolize}
diff --git a/ffmpeg4.patch b/ffmpeg4.patch
new file mode 100644
index 0000000..d390005
--- /dev/null
+++ b/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;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/guvcview.git/commitdiff/913999f7f8c3e9601e24a9b67d2120e2bdbbd26e

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to