[SCM] ffdiaporama/master: Apply patch to fix build with ffmpeg 3.0

sramacher at users.alioth.debian.org sramacher at users.alioth.debian.org
Mon Mar 14 20:50:06 UTC 2016


The following commit has been merged in the master branch:
commit 959cf86862f016c3ffdcadf1d74b9e338b762b14
Author: Sebastian Ramacher <sramacher at debian.org>
Date:   Mon Mar 14 21:14:34 2016 +0100

    Apply patch to fix build with ffmpeg 3.0

diff --git a/debian/patches/ffmpeg_2.9.patch b/debian/patches/ffmpeg_2.9.patch
new file mode 100644
index 0000000..db609b8
--- /dev/null
+++ b/debian/patches/ffmpeg_2.9.patch
@@ -0,0 +1,161 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
+Last-Update: <2015-11-02>
+
+--- ffdiaporama-1.5.orig/src/engine/cBaseMediaFile.cpp
++++ ffdiaporama-1.5/src/engine/cBaseMediaFile.cpp
+@@ -1571,7 +1571,7 @@ void cVideoFile::CloseCodecAndFile() {
+     }
+ 
+     if (FrameBufferYUV!=NULL) {
+-        av_free(FrameBufferYUV);
++        av_frame_free(&FrameBufferYUV);
+         FrameBufferYUV=NULL;
+     }
+     FrameBufferYUVReady=false;
+@@ -1680,7 +1680,7 @@ void cVideoFile::ReadAudioFrame(bool Pre
+                     int SizeDecoded     =(AVCODEC_MAX_AUDIO_FRAME_SIZE*3)/2;
+                     int Len             =avcodec_decode_audio3(AudioStream->codec,(int16_t *)BufferToDecode,&SizeDecoded,&PacketTemp);
+                     #else
+-                    AVFrame *Frame      =avcodec_alloc_frame();
++                    AVFrame *Frame      =av_frame_alloc();
+                     int     SizeDecoded =0;
+                     int     Len         =avcodec_decode_audio4(AudioStream->codec,Frame,&SizeDecoded,&PacketTemp);
+                     #endif
+@@ -1723,7 +1723,7 @@ void cVideoFile::ReadAudioFrame(bool Pre
+                         LastAudioReadedPosition =int(FramePosition*1000);    // Keep NextPacketPosition for determine next time if we need to seek
+                     }
+                     #ifndef LIBAV_07
+-                    av_free(Frame);
++                    av_frame_free(&Frame);
+                     #endif
+                 }
+             }
+@@ -1857,9 +1857,9 @@ void cVideoFile::ReadAudioFrame(bool Pre
+                 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 ffmpeg 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 ffmpeg world */
+             AVBufferSinkParams *buffersink_params=av_buffersink_params_alloc();
+             buffersink_params->pixel_fmts=&m_formats[0];
+             #ifdef FF_API_OLD_VSINK_API
+@@ -2043,11 +2048,8 @@ void cVideoFile::ReadAudioFrame(bool Pre
+                 return VC_ERROR;
+             }
+             while (Ret>=0) {
+-                AVFilterBufferRef *m_pBufferRef=NULL;
+-                Ret=av_buffersink_read(VideoFilterOut,&m_pBufferRef);
++                Ret=av_buffersink_get_frame(VideoFilterOut,FrameBufferYUV);
+                 if (Ret<0) break;
+-                avfilter_copy_buf_props(FrameBufferYUV,m_pBufferRef);
+-                FrameBufferYUV->opaque=m_pBufferRef;
+             }
+         #endif
+         return VC_BUFFER;
+@@ -2212,7 +2219,7 @@ QImage *cVideoFile::ReadVideoFrame(bool
+     }
+ 
+     // Allocate structure for YUV image
+-    if (FrameBufferYUV==NULL) FrameBufferYUV=avcodec_alloc_frame();
++    if (FrameBufferYUV==NULL) FrameBufferYUV=av_frame_alloc();
+     if (FrameBufferYUV==NULL) return NULL;
+ 
+     bool            DataInBuffer        =false;
+@@ -2281,13 +2288,6 @@ QImage *cVideoFile::ReadVideoFrame(bool
+         if (av_read_frame(ffmpegVideoFile,StreamPacket)==0) {
+ 
+             if (StreamPacket->stream_index==VideoStreamNumber) {
+-                #if LIBAVFILTER_VERSION_INT>=AV_VERSION_INT(3,1,0)
+-                if (FrameBufferYUV->opaque) {
+-                    avfilter_unref_buffer((AVFilterBufferRef *)FrameBufferYUV->opaque);
+-                    FrameBufferYUV->opaque=NULL;
+-                }
+-                #endif
+-
+                 int FrameDecoded=0;
+                 if (avcodec_decode_video2(VideoStream->codec,FrameBufferYUV,&FrameDecoded,StreamPacket)<0)
+                     ToLog(LOGMSG_INFORMATION,"IN:cVideoFile::ReadVideoFrame : avcodec_decode_video2 return an error");
+@@ -2380,9 +2380,9 @@ QImage *cVideoFile::ReadVideoFrame(bool
+ }
+ 
+ //====================================================================================================================
+-//#define PIXFMT      PIX_FMT_BGRA
++//#define PIXFMT      AV_PIX_FMT_BGRA
+ //#define QTPIXFMT    QImage::Format_ARGB32_Premultiplied
+-#define PIXFMT      PIX_FMT_RGB24
++#define PIXFMT      AV_PIX_FMT_RGB24
+ #define QTPIXFMT    QImage::Format_RGB888
+ 
+ QImage *cVideoFile::ConvertYUVToRGB(bool PreviewMode) {
+@@ -2401,7 +2401,7 @@ QImage *cVideoFile::ConvertYUVToRGB(bool
+     //if (PreviewMode && (H>270)) { if ((H==1088)&&(W=1920)) { NewH=271; NewW=480; } else { NewH=270; NewW=NewH*(double(W)/double(H)); } }    // H=270
+ 
+     QImage   RetImage(NewW,NewH,QTPIXFMT);
+-    AVFrame *FrameBufferRGB =avcodec_alloc_frame();  // Allocate structure for RGB image
++    AVFrame *FrameBufferRGB =av_frame_alloc();  // Allocate structure for RGB image
+ 
+     if (FrameBufferRGB!=NULL) {
+ 
+@@ -2440,7 +2440,7 @@ QImage *cVideoFile::ConvertYUVToRGB(bool
+         }
+ 
+         // free FrameBufferRGB because we don't need it in the future
+-        av_free(FrameBufferRGB);
++        av_frame_free(&FrameBufferRGB);
+     }
+ 
+     //return FinalImage;
+--- ffdiaporama-1.5.orig/src/engine/cDeviceModelDef.h
++++ ffdiaporama-1.5/src/engine/cDeviceModelDef.h
+@@ -57,7 +57,7 @@ extern "C" {
+ 
+     #include <libavutil/mathematics.h>
+     #include <libavutil/pixdesc.h>
+-    #include <libavutil/audioconvert.h>
++    #include <libavutil/channel_layout.h>
+ 
+     #include <libavcodec/avcodec.h>
+ 
+--- ffdiaporama-1.5.orig/src/ffDiaporama/DlgRenderVideo/DlgRenderVideo.cpp
++++ ffdiaporama-1.5/src/ffDiaporama/DlgRenderVideo/DlgRenderVideo.cpp
+@@ -1558,12 +1558,12 @@ void DlgRenderVideo::WriteRenderedMusicT
+         }
+ 
+             // Init frame
+-            AVFrame *frame=avcodec_alloc_frame();
++            AVFrame *frame=av_frame_alloc();
+             if (frame->extended_data!=frame->data) {
+                 av_free(frame->extended_data);
+                 frame->extended_data=NULL;
+             }
+-            avcodec_get_frame_defaults(frame);
++            av_frame_unref(frame);
+             frame->nb_samples=WriteWAV->RenderMusic.SoundPacketSize/(WriteWAV->AudioCodecContext->channels*av_get_bytes_per_sample(WriteWAV->AudioCodecContext->sample_fmt));
+ 
+             // fill buffer
+@@ -1601,7 +1601,7 @@ void DlgRenderVideo::WriteRenderedMusicT
+                 CustomMessageBox(this,QMessageBox::Critical,QApplication::translate("DlgRenderVideo","Render video"),"Error encoding sound!");
+                 *Continue=false;
+             }
+-            av_free(frame);
++            av_frame_free(&frame);
+ 
+         av_free(PacketSound);
+     }
+--- ffdiaporama-1.5.orig/src/ffDiaporama/mainwindow.cpp
++++ ffdiaporama-1.5/src/ffDiaporama/mainwindow.cpp
+@@ -383,9 +383,6 @@ MainWindow::~MainWindow() {
+ 
+     // Close some libav additionnals
+     #ifdef LIBAV_08
+-        #if defined(VIDEO_LIBAVFILTER) || defined(AUDIO_LIBAVFILTER)
+-            avfilter_uninit();
+-        #endif
+         avformat_network_deinit();
+     #endif
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 48238b7..3fc355a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 fix_hardening_flags.patch
 libav_0.9.patch
 libav10.patch
+ffmpeg_2.9.patch

-- 
ffdiaporama packaging



More information about the pkg-multimedia-commits mailing list