[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