[SCM] ffdiaporama/master: Add ffmpeg_2.8.patch for ffmpeg 2.8+ support
ricotz-guest at users.alioth.debian.org
ricotz-guest at users.alioth.debian.org
Tue Apr 19 17:51:11 UTC 2016
The following commit has been merged in the master branch:
commit c233fe5e2fd1fcdc63e1046800ace859183db30b
Author: Rico Tzschichholz <ricotz at ubuntu.com>
Date: Tue Apr 19 19:46:38 2016 +0200
Add ffmpeg_2.8.patch for ffmpeg 2.8+ support
diff --git a/debian/patches/ffmpeg_2.8.patch b/debian/patches/ffmpeg_2.8.patch
new file mode 100644
index 0000000..3256bef
--- /dev/null
+++ b/debian/patches/ffmpeg_2.8.patch
@@ -0,0 +1,276 @@
+diff --git a/src/ffDiaporama/engine/_EncodeVideo.cpp b/src/ffDiaporama/engine/_EncodeVideo.cpp
+index 47ba433..63ed500 100755
+--- a/src/ffDiaporama/engine/_EncodeVideo.cpp
++++ b/src/ffDiaporama/engine/_EncodeVideo.cpp
+@@ -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;
+@@ -410,8 +410,11 @@ bool cEncodeVideo::OpenVideoStream(sVideoCodecDef *VideoCodecDef,int VideoCodecS
+ // 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;
++ #endif
+ VideoStream->codec->sample_aspect_ratio =PixelAspectRatio;
+ VideoStream->sample_aspect_ratio =PixelAspectRatio;
+ VideoStream->codec->bit_rate =VideoBitrate;
+@@ -432,7 +435,7 @@ bool cEncodeVideo::OpenVideoStream(sVideoCodecDef *VideoCodecDef,int VideoCodecS
+
+ } 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 =(ImageWidth*ImageHeight*2*VideoFrameRate.den/VideoFrameRate.num)*2;
+@@ -550,9 +553,9 @@ bool cEncodeVideo::OpenVideoStream(sVideoCodecDef *VideoCodecDef,int VideoCodecS
+ #endif
+
+ // Create and prepare VideoFrame and VideoFrameBuf
+- VideoFrame=avcodec_alloc_frame(); // Allocate structure for RGB image
++ VideoFrame=av_frame_alloc(); // Allocate structure for RGB image
+ if (!VideoFrame) {
+- ToLog(LOGMSG_CRITICAL,"EncodeVideo-OpenVideoStream: avcodec_alloc_frame() failed");
++ ToLog(LOGMSG_CRITICAL,"EncodeVideo-OpenVideoStream: av_frame_alloc() failed");
+ return false;
+ } else {
+ VideoFrameBufSize=avpicture_get_size(VideoStream->codec->pix_fmt,VideoStream->codec->width,VideoStream->codec->height);
+@@ -640,9 +643,9 @@ bool cEncodeVideo::OpenAudioStream(sAudioCodecDef *AudioCodecDef,int &AudioChann
+ return false;
+ }
+
+- AudioFrame=avcodec_alloc_frame();
++ AudioFrame=av_frame_alloc();
+ if (AudioFrame==NULL) {
+- ToLog(LOGMSG_CRITICAL,QString("EncodeVideo-OpenAudioStream:: avcodec_alloc_frame failed"));
++ ToLog(LOGMSG_CRITICAL,QString("EncodeVideo-OpenAudioStream:: av_frame_alloc() failed"));
+ return false;
+ }
+
+@@ -1078,7 +1081,7 @@ void cEncodeVideo::EncodeMusic(cDiaporamaObjectInfo *Frame,cSoundBlockList *Rend
+ if (Continue) {
+ // Init AudioFrame
+ AVRational AVR;
+- avcodec_get_frame_defaults(AudioFrame);
++ av_frame_unref(AudioFrame);
+ AVR.num =1;
+ AVR.den =AudioStream->codec->sample_rate;
+ AudioFrame->nb_samples =DestPacketSize/DestSampleSize;
+@@ -1163,7 +1166,7 @@ void cEncodeVideo::EncodeVideo(QImage *SrcImage,bool &Continue) {
+ int errcode;
+
+ if (Image) {
+- avcodec_get_frame_defaults(VideoFrame);
++ av_frame_unref(VideoFrame);
+ if (avpicture_fill(
+ (AVPicture *)VideoFrame, // Frame to prepare
+ VideoFrameBuf, // Buffer which will contain the image data
+diff --git a/src/ffDiaporama/engine/_ImageFilters.cpp b/src/ffDiaporama/engine/_ImageFilters.cpp
+index 0f8b1e1..c5b909d 100755
+--- a/src/ffDiaporama/engine/_ImageFilters.cpp
++++ b/src/ffDiaporama/engine/_ImageFilters.cpp
+@@ -845,7 +845,7 @@ void BlurScanLine(float *kernel,int kern_width,QRgb *source,QRgb *destination,in
+ 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);
+diff --git a/src/ffDiaporama/engine/cBaseMediaFile.cpp b/src/ffDiaporama/engine/cBaseMediaFile.cpp
+index 7c6a3cf..7f3cdd4 100755
+--- a/src/ffDiaporama/engine/cBaseMediaFile.cpp
++++ b/src/ffDiaporama/engine/cBaseMediaFile.cpp
+@@ -50,7 +50,7 @@ int Exiv2MajorVersion=EXIV2_MAJOR_VERSION;
+ int Eviv2MinorVersion=EXIV2_MINOR_VERSION;
+ int Exiv2PatchVersion=EXIV2_PATCH_VERSION;
+
+-#if defined(LIBAV) && (LIBAVVERSIONINT<=8)
++#if (defined(LIBAV) && (LIBAVVERSIONINT<=8))
+ //****************************************************************************************************************************************************************
+ // TAGLIB PART only if LIBAV 8 after, thumbnails are reading using libav
+ //****************************************************************************************************************************************************************
+@@ -116,11 +116,11 @@ int Exiv2PatchVersion=EXIV2_PATCH_VERSION;
+ #define VC_USERDATA 0x00000008
+ #define VC_FLUSHED 0x00000010
+
+-#define PIXFMT PIX_FMT_RGB24
++#define PIXFMT AV_PIX_FMT_RGB24
+ #define QTPIXFMT QImage::Format_RGB888
+
+-AVFrame *ALLOCFRAME() { return avcodec_alloc_frame(); }
+-void FREEFRAME(AVFrame **Buf){ avcodec_free_frame(Buf); *Buf=NULL; }
++AVFrame *ALLOCFRAME() { return av_frame_alloc(); }
++void FREEFRAME(AVFrame **Buf){ av_frame_free(Buf); *Buf=NULL; }
+
+ //****************************************************************************************************************************************************************
+
+@@ -1909,7 +1909,7 @@ bool cVideoFile::GetChildFullInformationFromFile(cCustomIcon *Icon,QStringList *
+ 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) {
+@@ -2229,9 +2229,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;
+@@ -2987,7 +2987,7 @@ QImage *cVideoFile::ConvertYUVToRGB(bool PreviewMode,AVFrame *Frame) {
+ 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
+@@ -3070,11 +3070,11 @@ QImage *cVideoFile::ImageAt(bool PreviewMode,int64_t Position,cSoundBlockList *S
+ 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 --git a/src/ffDiaporama/engine/cDeviceModelDef.h b/src/ffDiaporama/engine/cDeviceModelDef.h
+index b10c350..0303f2d 100755
+--- a/src/ffDiaporama/engine/cDeviceModelDef.h
++++ b/src/ffDiaporama/engine/cDeviceModelDef.h
+@@ -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,15 @@ 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,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,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"
++ #elif #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)))
+ #define FFMPEGVERSIONINT 210
+ #define FFMPEGVERSION "FFmpeg 2.1 or higher"
+ #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)))
+@@ -103,38 +106,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 --git a/src/ffDiaporama/ffDiaporama.pro b/src/ffDiaporama/ffDiaporama.pro
+index 62b6dc8..ef66425 100755
+--- a/src/ffDiaporama/ffDiaporama.pro
++++ b/src/ffDiaporama/ffDiaporama.pro
+@@ -83,9 +83,9 @@ unix {
+ LIBS += -lavresample #------ conditionnaly include libavresample
+ INCLUDEPATH += /usr/include/
+ } else {
+- message("Use libav 0.8+taglib in /usr/include")
+- LIBS += -ltag #------ TAGlib is used only with LIBAV 8
+- DEFINES += USETAGLIB
++ message("Use ffmpeg in /usr/include")
++ DEFINES += USELIBSWRESAMPLE
++ LIBS += -lswresample #------ default to include libavresample
+ INCLUDEPATH += /usr/include/
+ }
+
diff --git a/debian/patches/series b/debian/patches/series
index 3fc355a..8bc6cdb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,2 @@
fix_hardening_flags.patch
-libav_0.9.patch
-libav10.patch
-ffmpeg_2.9.patch
+ffmpeg_2.8.patch
--
ffdiaporama packaging
More information about the pkg-multimedia-commits
mailing list