summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO23
-rw-r--r--EncodeVideo2.cpp.patch12
-rw-r--r--PKGBUILD34
-rw-r--r--cDeviceModelDef.patch39
-rw-r--r--ffmpeg3.0.patch353
5 files changed, 386 insertions, 75 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4f919f8b4c28..1a3ef28242a7 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,9 @@
+# Generated by mksrcinfo v8
+# Sat Mar 26 00:45:54 UTC 2016
pkgbase = ffdiaporama
pkgdesc = Movie creator from photos and video clips
- pkgver = 2.1
- pkgrel = 3
+ pkgver = 2.2.D759
+ pkgrel = 1
url = http://ffdiaporama.tuxfamily.org
install = ffdiaporama.install
arch = i686
@@ -10,19 +12,20 @@ pkgbase = ffdiaporama
depends = qt5-svg
depends = qt5-tools
depends = qt5-imageformats
+ depends = qt5-multimedia
depends = ffmpeg
+ depends = pulseaudio
depends = exiv2
depends = shared-mime-info
- depends = ffdiaporama-rsc
optdepends = ffdiaporama-texturemate: Additional background-images
optdepends = ffdiaporama-openclipart: use the openclipart-library
- conflicts = ffdiaporama-devel
- source = http://download.tuxfamily.org/ffdiaporama/Packages/Stable/ffdiaporama_bin_2.1.2014.0209.tar.gz
- source = cDeviceModelDef.patch
- source = EncodeVideo2.cpp.patch
- md5sums = f9f46277153cf49f6947973778516adb
- md5sums = f4ae4748072a4ade0db2e816fbfa3dbb
- md5sums = 5924f4a2b48968839722252ad677437d
+ provides = ffdiaporama-rsc
+ source = http://download.tuxfamily.org/ffdiaporama/Packages/Devel/ffdiaporama_bin_2.2.devel.2014.0701.tar.gz
+ source = http://download.tuxfamily.org/ffdiaporama/Packages/Devel/ffdiaporama_rsc_2.2.devel.2014.0503.tar.gz
+ source = ffmpeg3.0.patch
+ md5sums = 0ca946d8db68467aefec39917e2dbb4d
+ md5sums = 37bfd8ba62dac8dcbde679aee29a7aad
+ md5sums = 945d2bc188a41d81542b18f44eeeb6bd
pkgname = ffdiaporama
diff --git a/EncodeVideo2.cpp.patch b/EncodeVideo2.cpp.patch
deleted file mode 100644
index ccad4499a563..000000000000
--- a/EncodeVideo2.cpp.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/ffDiaporama/engine/_EncodeVideo.cpp 2014-02-09 03:48:04.000000000 -0600
-+++ _EncodeVideo2.cpp 2015-03-27 11:43:47.869064000 -0600
-@@ -412,6 +412,9 @@
- VideoStream->codec->height =ImageHeight;
- VideoStream->codec->pix_fmt =PIX_FMT_YUV420P;
- VideoStream->codec->time_base =VideoFrameRate;
-+ #if FFMPEGVERSIONINT>=260
-+ VideoStream->time_base = VideoFrameRate; //new ffmpeg 2.6.0!!!!
-+ #endif
- VideoStream->codec->sample_aspect_ratio =PixelAspectRatio;
- VideoStream->sample_aspect_ratio =PixelAspectRatio;
- if ((codec->id!=AV_CODEC_ID_H264)||(!VBR)) {
diff --git a/PKGBUILD b/PKGBUILD
index b0e80a29fdf9..0dcd7f8b08b9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,38 +1,44 @@
-# Maintainer: Steffen Weber <-boenki-gmx-de->
+# Maintainer: boenki <boenki at gmx dot de>
pkgname=ffdiaporama
-pkgver=2.1
-pkgrel=3
+pkgver=2.2.D759
+pkgrel=1
pkgdesc="Movie creator from photos and video clips"
arch=('i686' 'x86_64')
url="http://ffdiaporama.tuxfamily.org"
license=('GPL2')
-conflicts=('ffdiaporama-devel')
-depends=('qt5-svg' 'qt5-tools' 'qt5-imageformats' 'ffmpeg' 'exiv2' 'shared-mime-info' 'ffdiaporama-rsc')
+depends=('qt5-svg' 'qt5-tools' 'qt5-imageformats' 'qt5-multimedia' 'ffmpeg' 'pulseaudio' 'exiv2' 'shared-mime-info')
optdepends=('ffdiaporama-texturemate: Additional background-images'
'ffdiaporama-openclipart: use the openclipart-library')
-install=$pkgname.install
-source=(http://download.tuxfamily.org/ffdiaporama/Packages/Stable/ffdiaporama_bin_2.1.2014.0209.tar.gz
- cDeviceModelDef.patch
- EncodeVideo2.cpp.patch)
-md5sums=('f9f46277153cf49f6947973778516adb'
- 'f4ae4748072a4ade0db2e816fbfa3dbb'
- '5924f4a2b48968839722252ad677437d')
+provides=('ffdiaporama-rsc')
+install=${pkgname}.install
+source=(http://download.tuxfamily.org/ffdiaporama/Packages/Devel/ffdiaporama_bin_2.2.devel.2014.0701.tar.gz
+ http://download.tuxfamily.org/ffdiaporama/Packages/Devel/ffdiaporama_rsc_2.2.devel.2014.0503.tar.gz
+ ffmpeg3.0.patch)
+md5sums=('0ca946d8db68467aefec39917e2dbb4d'
+ '37bfd8ba62dac8dcbde679aee29a7aad'
+ '945d2bc188a41d81542b18f44eeeb6bd')
prepare() {
cd ffDiaporama
- patch -p0 -i ../cDeviceModelDef.patch
- patch -p0 -i ../EncodeVideo2.cpp.patch
+ patch -p1 -i ../ffmpeg3.0.patch
}
build() {
cd ffDiaporama
qmake-qt5 ffDiaporama.pro
make
+
+ cd ../ffDiaporama_rsc
+ qmake-qt5 ffDiaporama_rsc.pro
+ make
}
package() {
cd ffDiaporama
make install INSTALL_ROOT=$pkgdir
find $pkgdir/usr/share -type f -exec chmod 644 {} +
+
+ cd ../ffDiaporama_rsc
+ make install INSTALL_ROOT=$pkgdir
}
diff --git a/cDeviceModelDef.patch b/cDeviceModelDef.patch
deleted file mode 100644
index 6da31ba73ac7..000000000000
--- a/cDeviceModelDef.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- src/ffDiaporama/engine/cDeviceModelDef.h 2014-02-09 03:48:04.000000000 -0600
-+++ cDeviceModelDef2.h 2015-03-27 11:39:25.965094000 -0600
-@@ -84,13 +84,21 @@
- #elif (LIBAVUTIL_VERSION_MICRO>=100)&&(LIBAVCODEC_VERSION_MICRO>=100)&&(LIBAVFORMAT_VERSION_MICRO>=100)&&(LIBAVDEVICE_VERSION_MICRO>=100)&&(LIBAVFILTER_VERSION_MICRO>=100)&&(LIBSWSCALE_VERSION_MICRO>=100)
- #define FFMPEG
- #include "libswresample/swresample.h"
-- #define RESAMPLE_MAX_CHANNELS SWR_CH_MAX
- #include "libavfilter/avcodec.h"
- #include "libavfilter/buffersink.h"
- #include "libavfilter/buffersrc.h"
-- #if ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(52,48,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(55,39,100))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(55,19,104))&&(LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(55,5,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(3,90,100))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(2,5,101))&&(LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(0,17,104)))
-+ #if ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(54,20,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(56,26,100))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(56,25,101))&& (LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(56,4,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(5,11,102))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(3,1,101))&& (LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(1,1,100)))
-+ #define FFMPEGVERSIONINT 260
-+ #define FFMPEGVERSION "FFmpeg 2.6 or higher"
-+ #elif ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(54,15,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(56,13,100))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(56,15,102))&& (LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(56,3,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(5,2,103))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(3,1,101))&& (LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(1,1,100)))
-+ #define FFMPEGVERSIONINT 250
-+ #define FFMPEGVERSION "FFmpeg 2.5"
-+ #elif ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(54,7,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(56,1,100))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(56,4,101))&&(LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(56,0,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(5,1,100))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(3,0,100))&&(LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(1,1,100)))
-+ #define FFMPEGVERSIONINT 247
-+ #define FFMPEGVERSION "FFmpeg 2.4.7"
-+ #elif ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(52,48,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(55,39,100))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(55,19,104))&&(LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(55,5,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(3,90,100))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(2,5,101))&&(LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(0,17,104)))
- #define FFMPEGVERSIONINT 210
-- #define FFMPEGVERSION "FFmpeg 2.1 or higher"
-+ #define FFMPEGVERSION "FFmpeg 2.1"
- #elif ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(52,38,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(55,18,102))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(55,12,100))&&(LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(55,3,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(3,79,101))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(2,3,100))&&(LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(0,17,102)))
- #define FFMPEGVERSIONINT 201
- #define FFMPEGVERSION "FFmpeg 2.0.1 or higher"
-@@ -103,6 +111,11 @@
- #else
- // unsupported version
- #endif
-+#if (FFMPEGVERSIONINT >=247)
-+ #define RESAMPLE_MAX_CHANNELS 32
-+ #else
-+ #define RESAMPLE_MAX_CHANNELS SWR_CH_MAX
-+ #endif
- #endif
- }
-
diff --git a/ffmpeg3.0.patch b/ffmpeg3.0.patch
new file mode 100644
index 000000000000..4eda96d8b4b9
--- /dev/null
+++ b/ffmpeg3.0.patch
@@ -0,0 +1,353 @@
+diff -upr ffDiaporama.r486/BUILDVERSION.txt ffDiaporama.r500/BUILDVERSION.txt
+--- ffDiaporama.r486/BUILDVERSION.txt 2014-07-01 10:37:05.000000000 +0200
++++ ffDiaporama.r500/BUILDVERSION.txt 2016-03-24 19:57:40.299426392 +0100
+@@ -1 +1 @@
+-Version 2.2_devel 20140701
++Version 2.2_devel 20160323
+diff -upr ffDiaporama.r486/src/ffDiaporama/DlgSlide/cShotComposer.cpp ffDiaporama.r500/src/ffDiaporama/DlgSlide/cShotComposer.cpp
+--- ffDiaporama.r486/src/ffDiaporama/DlgSlide/cShotComposer.cpp 2014-04-17 08:45:02.000000000 +0200
++++ ffDiaporama.r500/src/ffDiaporama/DlgSlide/cShotComposer.cpp 2016-03-13 10:54:04.000000000 +0100
+@@ -241,7 +241,8 @@ void cShotComposer::RefreshControls(bool
+ InRefreshControls=true;
+ QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+
+- if ((BlockSelectMode==SELECTMODE_ONE)&&(CurrentCompoObject)&&(CurrentCompoObject->IsVisible)) {
++ bool bEnable = CurrentCompoObject && CurrentCompoObject->IsVisible;
++ if ((BlockSelectMode==SELECTMODE_ONE)&&(CurrentCompoObject)/*&&(CurrentCompoObject->IsVisible)*/) {
+
+ qreal Ratio_X,Ratio_Y;
+ ComputeBlockRatio(CurrentCompoObject,Ratio_X,Ratio_Y);
+@@ -253,14 +254,14 @@ void cShotComposer::RefreshControls(bool
+ }
+
+ // Position, size and rotation
+- GETUI("PosSize_X")-> setEnabled(true);
+- GETUI("PosSize_Y")-> setEnabled(true);
+- GETUI("PosSize_Width")-> setEnabled(true);
+- GETUI("PosSize_Height")->setEnabled(true);
+- GETDOUBLESPINBOX("PosXEd")-> setEnabled(true);
+- GETDOUBLESPINBOX("PosYEd")-> setEnabled(true);
+- GETDOUBLESPINBOX("WidthEd")-> setEnabled(true);
+- GETDOUBLESPINBOX("HeightEd")-> setEnabled(true);
++ GETUI("PosSize_X")-> setEnabled(bEnable);
++ GETUI("PosSize_Y")-> setEnabled(bEnable);
++ GETUI("PosSize_Width")-> setEnabled(bEnable);
++ GETUI("PosSize_Height")->setEnabled(bEnable);
++ GETDOUBLESPINBOX("PosXEd")-> setEnabled(bEnable);
++ GETDOUBLESPINBOX("PosYEd")-> setEnabled(bEnable);
++ GETDOUBLESPINBOX("WidthEd")-> setEnabled(bEnable);
++ GETDOUBLESPINBOX("HeightEd")-> setEnabled(bEnable);
+
+ if (ApplicationConfig->DisplayUnit==DISPLAYUNIT_PERCENT) {
+ GETDOUBLESPINBOX("PosXEd")-> setRange(-200,200); GETDOUBLESPINBOX("PosXEd")-> setValue(CurrentCompoObject->x*100/Ratio_X);
+@@ -275,34 +276,34 @@ void cShotComposer::RefreshControls(bool
+ }
+
+ // Rotation
+- GETUI("Rotate_X")-> setEnabled(true);
+- GETSPINBOX("RotateXED")-> setEnabled(true);
+- GETUI("ResetRotateXBT")->setEnabled(true);
+- GETSLIDER("RotateXSLD")->setEnabled(true);
+- GETUI("Rotate_Y")-> setEnabled(true);
+- GETSPINBOX("RotateYED")-> setEnabled(true);
+- GETUI("ResetRotateYBT")->setEnabled(true);
+- GETSLIDER("RotateYSLD")->setEnabled(true);
+- GETUI("Rotate_Z")-> setEnabled(true);
+- GETSPINBOX("RotateZED")-> setEnabled(true);
+- GETUI("ResetRotateZBT")->setEnabled(true);
+- GETSLIDER("RotateZSLD")->setEnabled(true);
++ GETUI("Rotate_X")-> setEnabled(bEnable);
++ GETSPINBOX("RotateXED")-> setEnabled(bEnable);
++ GETUI("ResetRotateXBT")->setEnabled(bEnable);
++ GETSLIDER("RotateXSLD")->setEnabled(bEnable);
++ GETUI("Rotate_Y")-> setEnabled(bEnable);
++ GETSPINBOX("RotateYED")-> setEnabled(bEnable);
++ GETUI("ResetRotateYBT")->setEnabled(bEnable);
++ GETSLIDER("RotateYSLD")->setEnabled(bEnable);
++ GETUI("Rotate_Z")-> setEnabled(bEnable);
++ GETSPINBOX("RotateZED")-> setEnabled(bEnable);
++ GETUI("ResetRotateZBT")->setEnabled(bEnable);
++ GETSLIDER("RotateZSLD")->setEnabled(bEnable);
+
+ GETSPINBOX("RotateXED")->setValue(CurrentCompoObject->RotateXAxis); GETSLIDER("RotateXSLD")->setValue(CurrentCompoObject->RotateXAxis);
+ GETSPINBOX("RotateYED")->setValue(CurrentCompoObject->RotateYAxis); GETSLIDER("RotateYSLD")->setValue(CurrentCompoObject->RotateYAxis);
+ GETSPINBOX("RotateZED")->setValue(CurrentCompoObject->RotateZAxis); GETSLIDER("RotateZSLD")->setValue(CurrentCompoObject->RotateZAxis);
+
+ // Shape part
+- GETUI("BlockShapeStyleBT")->setEnabled(true);
+- GETUI("BlockShapeStyleED")->setEnabled(true);
+- GETUI("BackgroundFormCB")->setEnabled(true);
+- GETUI("PenSizeEd")-> setEnabled(true);
+- GETUI("PenColorCB")-> setEnabled(CurrentCompoObject->PenSize!=0);
+- GETUI("PenStyleCB")-> setEnabled(CurrentCompoObject->PenSize!=0);
+- GETUI("OpacityCB")-> setEnabled(true);
+- GETUI("ShadowEffectCB")-> setEnabled(true);
+- GETUI("ShadowEffectED")-> setEnabled(CurrentCompoObject->FormShadow!=0);
+- GETUI("ShadowColorCB")-> setEnabled(CurrentCompoObject->FormShadow!=0);
++ GETUI("BlockShapeStyleBT")->setEnabled(bEnable);
++ GETUI("BlockShapeStyleED")->setEnabled(bEnable);
++ GETUI("BackgroundFormCB")->setEnabled(bEnable);
++ GETUI("PenSizeEd")-> setEnabled(bEnable);
++ GETUI("PenColorCB")-> setEnabled(CurrentCompoObject->PenSize!=0 && bEnable);
++ GETUI("PenStyleCB")-> setEnabled(CurrentCompoObject->PenSize!=0 && bEnable);
++ GETUI("OpacityCB")-> setEnabled(bEnable);
++ GETUI("ShadowEffectCB")-> setEnabled(bEnable);
++ GETUI("ShadowEffectED")-> setEnabled(CurrentCompoObject->FormShadow!=0 && bEnable);
++ GETUI("ShadowColorCB")-> setEnabled(CurrentCompoObject->FormShadow!=0 && bEnable);
+
+ SetCBIndex(GETCOMBOBOX("BackgroundFormCB"),CurrentCompoObject->BackgroundForm);
+ GETSPINBOX("PenSizeEd")-> setValue(int(CurrentCompoObject->PenSize));
+diff -upr ffDiaporama.r486/src/ffDiaporama/DlgSlide/DlgImageComposer.cpp ffDiaporama.r500/src/ffDiaporama/DlgSlide/DlgImageComposer.cpp
+--- ffDiaporama.r486/src/ffDiaporama/DlgSlide/DlgImageComposer.cpp 2014-04-19 09:50:12.000000000 +0200
++++ ffDiaporama.r500/src/ffDiaporama/DlgSlide/DlgImageComposer.cpp 2016-03-13 10:47:30.000000000 +0100
+@@ -70,6 +70,7 @@ DlgImageComposer::DlgImageComposer(cDiap
+ // Initialise dialog
+
+ void DlgImageComposer::DoInitDialog() {
++ ToLog(LOGMSG_DEBUGTRACE,"IN:DlgImageComposer::DoInitDialog");
+ cShotComposer::DoInitDialog();
+
+ // Thumbnail part
+@@ -159,8 +160,6 @@ void DlgImageComposer::DoInitDialog() {
+ //====================================================================================================================
+
+ DlgImageComposer::~DlgImageComposer() {
+- ToLog(LOGMSG_DEBUGTRACE,"IN:DlgImageComposer::DoInitDialog");
+-
+ ffdProject->CloseUnusedLibAv(ffdProject->CurrentCol);
+ delete ui;
+ }
+diff -upr ffDiaporama.r486/src/ffDiaporama/engine/cBaseMediaFile.cpp ffDiaporama.r500/src/ffDiaporama/engine/cBaseMediaFile.cpp
+--- ffDiaporama.r486/src/ffDiaporama/engine/cBaseMediaFile.cpp 2014-06-26 06:54:45.000000000 +0200
++++ ffDiaporama.r500/src/ffDiaporama/engine/cBaseMediaFile.cpp 2016-03-13 11:03:52.000000000 +0100
+@@ -124,7 +124,7 @@ int Exiv2PatchVersion=EXIV2_PATCH_VERSI
+ #define VC_USERDATA 0x00000008
+ #define VC_FLUSHED 0x00000010
+
+-#define PIXFMT PIX_FMT_RGB24
++#define PIXFMT AV_PIX_FMT_RGB24
+ #define QTPIXFMT QImage::Format_RGB888
+
+ //****************************************************************************************************************************************************************
+@@ -2104,6 +2104,8 @@ bool cVideoFile::DoAnalyseSound(QList<qr
+ foreach (qreal Value,*Peak) MaxVal.append(Value);
+ qSort(MaxVal.begin(),MaxVal.end());
+ qreal MaxSoundValue=MaxVal.count()>0?MaxVal[MaxVal.count()*0.9]:1;
++ if( MaxSoundValue == 0 )
++ MaxSoundValue = 1;
+
+ // Adjust Peak and Moyenne values by transforming them as % of the max value
+ for (int i=0;i<Peak->count();i++) {
+@@ -2598,7 +2600,7 @@ bool cVideoFile::GetChildFullInformation
+ AVFrame *FrameRGB=ALLOCFRAME();
+ if ((FrameRGB)&&(!Thumbnail.isNull())) {
+ avpicture_fill((AVPicture *)FrameRGB,Thumbnail.bits(),PIXFMT,RealW,RealH);
+- struct SwsContext *img_convert_ctx=sws_getContext(FrameYUV->width,FrameYUV->height,(PixelFormat)FrameYUV->format,RealW,RealH,PIXFMT,SWS_FAST_BILINEAR,NULL,NULL,NULL);
++ struct SwsContext *img_convert_ctx=sws_getContext(FrameYUV->width,FrameYUV->height,(AVPixelFormat)FrameYUV->format,RealW,RealH,PIXFMT,SWS_FAST_BILINEAR,NULL,NULL,NULL);
+ if (img_convert_ctx!=NULL) {
+ int ret = sws_scale(img_convert_ctx,FrameYUV->data,FrameYUV->linesize,0,FrameYUV->height,FrameRGB->data,FrameRGB->linesize);
+ if (ret>0) {
+@@ -2919,9 +2921,9 @@ int cVideoFile::VideoFilter_Open() {
+ ToLog(LOGMSG_CRITICAL,QString("Error in cVideoFile::VideoFilter_Open : avfilter_graph_create_filter: src"));
+ return result;
+ }
+- std::vector<PixelFormat> m_formats;
+- m_formats.push_back(PIX_FMT_YUVJ420P);
+- m_formats.push_back(PIX_FMT_NONE); /* always add none to get a terminated list in Libav world */
++ std::vector<AVPixelFormat> m_formats;
++ m_formats.push_back(AV_PIX_FMT_YUVJ420P);
++ m_formats.push_back(AV_PIX_FMT_NONE); /* always add none to get a terminated list in Libav world */
+ if ((result=avfilter_graph_create_filter(&VideoFilterOut,outFilter,"out",NULL,NULL,VideoFilterGraph))<0) {
+ ToLog(LOGMSG_CRITICAL,QString("Error in cVideoFile::VideoFilter_Open : avfilter_graph_create_filter: out"));
+ return result;
+@@ -3754,7 +3756,7 @@ QImage *cVideoFile::ConvertYUVToRGB(bool
+ struct SwsContext *img_convert_ctx=sws_getContext(
+ Frame->width, // Src width
+ Frame->height, // Src height
+- (PixelFormat)Frame->format, // Src Format
++ (AVPixelFormat)Frame->format, // Src Format
+ W, // Destination width
+ H, // Destination height
+ PIXFMT, // Destination Format
+@@ -3837,11 +3839,11 @@ QImage *cVideoFile::ImageAt(bool Preview
+ int cVideoFile::getThreadFlags(AVCodecID ID) {
+ int Ret=0;
+ switch (ID) {
+- case CODEC_ID_PRORES:
+- case CODEC_ID_MPEG1VIDEO:
+- case CODEC_ID_DVVIDEO:
+- case CODEC_ID_MPEG2VIDEO: Ret=FF_THREAD_SLICE; break;
+- case CODEC_ID_H264 : Ret=FF_THREAD_FRAME|FF_THREAD_SLICE; break;
++ case AV_CODEC_ID_PRORES:
++ case AV_CODEC_ID_MPEG1VIDEO:
++ case AV_CODEC_ID_DVVIDEO:
++ case AV_CODEC_ID_MPEG2VIDEO: Ret=FF_THREAD_SLICE; break;
++ case AV_CODEC_ID_H264 : Ret=FF_THREAD_FRAME|FF_THREAD_SLICE; break;
+ default: Ret=FF_THREAD_FRAME; break;
+ }
+ return Ret;
+diff -upr ffDiaporama.r486/src/ffDiaporama/engine/cDeviceModelDef.h ffDiaporama.r500/src/ffDiaporama/engine/cDeviceModelDef.h
+--- ffDiaporama.r486/src/ffDiaporama/engine/cDeviceModelDef.h 2014-04-12 06:41:33.000000000 +0200
++++ ffDiaporama.r500/src/ffDiaporama/engine/cDeviceModelDef.h 2016-03-13 11:03:52.000000000 +0100
+@@ -53,7 +53,6 @@ extern "C" {
+
+ #include <libavutil/mathematics.h>
+ #include <libavutil/pixdesc.h>
+-#include <libavutil/audioconvert.h>
+
+ #include <libavcodec/avcodec.h>
+
+@@ -84,11 +83,16 @@ extern "C" {
+ #elif (LIBAVUTIL_VERSION_MICRO>=100)&&(LIBAVCODEC_VERSION_MICRO>=100)&&(LIBAVFORMAT_VERSION_MICRO>=100)&&(LIBAVDEVICE_VERSION_MICRO>=100)&&(LIBAVFILTER_VERSION_MICRO>=100)&&(LIBSWSCALE_VERSION_MICRO>=100)
+ #define FFMPEG
+ #include "libswresample/swresample.h"
+- #define RESAMPLE_MAX_CHANNELS SWR_CH_MAX
+- #include "libavfilter/avcodec.h"
++ #include "libavcodec/avcodec.h"
+ #include "libavfilter/buffersink.h"
+ #include "libavfilter/buffersrc.h"
+- #if ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(52,66,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(55,52,102))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(55,33,100))&& \
++ #if ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(54,15,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(56,13,100))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(56,15,102))&& \
++ (LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(56,3,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(5,2,103))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(3,1,101))&& \
++ (LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(1,1,100)))
++ #define FFMPEGVERSIONINT 250
++ #define FFMPEGVERSION "FFmpeg 2.5 or higher"
++ #define RESAMPLE_MAX_CHANNELS 32
++ #elif ((LIBAVUTIL_VERSION_INT>=AV_VERSION_INT(52,66,100))&&(LIBAVCODEC_VERSION_INT>=AV_VERSION_INT(55,52,102))&&(LIBAVFORMAT_VERSION_INT>=AV_VERSION_INT(55,33,100))&& \
+ (LIBAVDEVICE_VERSION_INT>=AV_VERSION_INT(55,10,100))&&(LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(4,2,100))&&(LIBSWSCALE_VERSION_INT>=AV_VERSION_INT(2,5,102))&& \
+ (LIBSWRESAMPLE_VERSION_INT>=AV_VERSION_INT(0,18,100)))
+ #define FFMPEGVERSIONINT 220
+@@ -108,38 +112,18 @@ extern "C" {
+ #else
+ // unsupported version
+ #endif
+-#endif
++ #if (FFMPEGVERSIONINT >=250)
++ #define RESAMPLE_MAX_CHANNELS 32
++ #else
++ #define RESAMPLE_MAX_CHANNELS SWR_CH_MAX
++ #endif
++ #endif
+ }
+
+ #ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
+ #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
+ #endif
+
+-#if !defined(FF_API_CODEC_ID)
+- #define AV_CODEC_ID_NONE CODEC_ID_NONE
+- #define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG
+- #define AV_CODEC_ID_MPEG2VIDEO CODEC_ID_MPEG2VIDEO
+- #define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
+- #define AV_CODEC_ID_H264 CODEC_ID_H264
+- #define AV_CODEC_ID_VP8 CODEC_ID_VP8
+- #define AV_CODEC_ID_FLV1 CODEC_ID_FLV1
+- #define AV_CODEC_ID_THEORA CODEC_ID_THEORA
+- #define AV_CODEC_ID_WMV1 CODEC_ID_WMV1
+- #define AV_CODEC_ID_WMV2 CODEC_ID_WMV2
+- #define AV_CODEC_ID_WMV3 CODEC_ID_WMV3
+- #define AV_CODEC_ID_PCM_S16LE CODEC_ID_PCM_S16LE
+- #define AV_CODEC_ID_MP3 CODEC_ID_MP3
+- #define AV_CODEC_ID_AAC CODEC_ID_AAC
+- #define AV_CODEC_ID_AC3 CODEC_ID_AC3
+- #define AV_CODEC_ID_VORBIS CODEC_ID_VORBIS
+- #define AV_CODEC_ID_MP2 CODEC_ID_MP2
+- #define AV_CODEC_ID_AMR_WB CODEC_ID_AMR_WB
+- #define AV_CODEC_ID_AMR_NB CODEC_ID_AMR_NB
+- #define AV_CODEC_ID_FLAC CODEC_ID_FLAC
+- #define AV_CODEC_ID_WMAV1 CODEC_ID_WMAV1
+- #define AV_CODEC_ID_WMAV2 CODEC_ID_WMAV2
+-#endif
+-
+ #if !defined(avcodec_free_frame)
+ #define avcodec_free_frame av_freep
+ #endif
+diff -upr ffDiaporama.r486/src/ffDiaporama/engine/_EncodeVideo.cpp ffDiaporama.r500/src/ffDiaporama/engine/_EncodeVideo.cpp
+--- ffDiaporama.r486/src/ffDiaporama/engine/_EncodeVideo.cpp 2014-06-23 09:39:23.000000000 +0200
++++ ffDiaporama.r500/src/ffDiaporama/engine/_EncodeVideo.cpp 2016-03-13 11:09:23.000000000 +0100
+@@ -20,7 +20,7 @@
+
+ #include "_EncodeVideo.h"
+
+-#define PIXFMT PIX_FMT_RGB24
++#define PIXFMT AV_PIX_FMT_RGB24
+ #define QTPIXFMT QImage::Format_RGB888
+
+ //*************************************************************************************************************************************************
+@@ -185,11 +185,11 @@ void cEncodeVideo::CloseEncoder() {
+ int cEncodeVideo::getThreadFlags(AVCodecID ID) {
+ int Ret=0;
+ switch (ID) {
+- case CODEC_ID_PRORES:
+- case CODEC_ID_MPEG1VIDEO:
+- case CODEC_ID_DVVIDEO:
+- case CODEC_ID_MPEG2VIDEO: Ret=FF_THREAD_SLICE; break;
+- case CODEC_ID_H264 : Ret=FF_THREAD_FRAME|FF_THREAD_SLICE; break;
++ case AV_CODEC_ID_PRORES:
++ case AV_CODEC_ID_MPEG1VIDEO:
++ case AV_CODEC_ID_DVVIDEO:
++ case AV_CODEC_ID_MPEG2VIDEO: Ret=FF_THREAD_SLICE; break;
++ case AV_CODEC_ID_H264 : Ret=FF_THREAD_FRAME|FF_THREAD_SLICE; break;
+ default: Ret=FF_THREAD_FRAME; break;
+ }
+ return Ret;
+@@ -414,8 +414,11 @@ bool cEncodeVideo::OpenVideoStream(sVide
+ // Setup codec parameters
+ VideoStream->codec->width =ImageWidth;
+ VideoStream->codec->height =ImageHeight;
+- VideoStream->codec->pix_fmt =PIX_FMT_YUV420P;
++ VideoStream->codec->pix_fmt =AV_PIX_FMT_YUV420P;
+ VideoStream->codec->time_base =VideoFrameRate;
++ #if FFMPEGVERSIONINT>=250
++ VideoStream->time_base = VideoFrameRate; //new ffmpeg 2.5.0!!!!
++ #endif
+ VideoStream->codec->sample_aspect_ratio =PixelAspectRatio;
+ VideoStream->sample_aspect_ratio =PixelAspectRatio;
+ VideoStream->codec->gop_size =12;
+@@ -441,7 +444,7 @@ bool cEncodeVideo::OpenVideoStream(sVide
+ } else if (codec->id==AV_CODEC_ID_MJPEG) {
+
+ //-qscale 2 -qmin 2 -qmax 2
+- VideoStream->codec->pix_fmt =PIX_FMT_YUVJ420P;
++ VideoStream->codec->pix_fmt =AV_PIX_FMT_YUVJ420P;
+ VideoStream->codec->qmin =2;
+ VideoStream->codec->qmax =2;
+ VideoStream->codec->bit_rate_tolerance =int(qreal(int64_t(ImageWidth)*int64_t(ImageHeight)*int64_t(VideoFrameRate.den))/qreal(VideoFrameRate.num))*10;
+diff -upr ffDiaporama.r486/src/ffDiaporama_lib/cDatabase.cpp ffDiaporama.r500/src/ffDiaporama_lib/cDatabase.cpp
+--- ffDiaporama.r486/src/ffDiaporama_lib/cDatabase.cpp 2014-04-12 07:49:47.000000000 +0200
++++ ffDiaporama.r500/src/ffDiaporama_lib/cDatabase.cpp 2016-03-13 10:44:45.000000000 +0100
+@@ -462,7 +462,8 @@ cFilesTable::cFilesTable(cDatabase *Data
+ "BasicProperties text,"\
+ "ExtendedProperties text,"\
+ "Thumbnail16 binary,"\
+- "Thumbnail100 binary"\
++ "Thumbnail100 binary,"\
++ "SoundWave text"\
+ ")";
+ CreateIndexQuery.append("CREATE INDEX idx_MediaFiles_Key ON MediaFiles (Key)");
+ CreateIndexQuery.append("CREATE INDEX idx_MediaFiles_FolderKey ON MediaFiles (FolderKey,ShortName)");
+@@ -811,7 +812,11 @@ bool cFilesTable::GetAnalyseSound(qlongl
+ QSqlQuery Query(Database->db);
+ *RealAudioDuration=0;
+ if (RealVideoDuration) *RealVideoDuration=0;
+- Query.prepare((QString("SELECT SoundWave FROM %1 WHERE Key=:Key").arg(TableName)));
++ if( !Query.prepare((QString("SELECT SoundWave FROM %1 WHERE Key=:Key").arg(TableName))) )
++ {
++ DisplayLastSQLError(&Query);
++ return false;
++ }
+ Query.bindValue(":Key",FileKey,QSql::In);
+ if (!Query.exec()) {
+ DisplayLastSQLError(&Query);
+diff -upr ffDiaporama.r486/src/ffDiaporama_lib/ImageFilters.cpp ffDiaporama.r500/src/ffDiaporama_lib/ImageFilters.cpp
+--- ffDiaporama.r486/src/ffDiaporama_lib/ImageFilters.cpp 2014-01-19 08:27:13.000000000 +0100
++++ ffDiaporama.r500/src/ffDiaporama_lib/ImageFilters.cpp 2016-03-13 10:46:02.000000000 +0100
+@@ -836,7 +836,7 @@ void BlurScanLine(float *kernel,int kern
+ scale = 0.0;
+ k = kernel;
+ src = source;
+- for (i=0;i<columns;++k,src+=offset) {
++ for (i=0;i<columns;++k,src+=offset,i++) {
+ if((i >= (x-kern_width/2)) && (i <= (x+kern_width/2))) {
+ aggregate.red +=(*k)*qRed(*src);
+ aggregate.green+=(*k)*qGreen(*src);